Concepts fondamentaux
En tant qu'utilisateur de Casibase, vous devriez au minimum être familier avec 4 concepts fondamentaux : Provider
(Fournisseur), Storage
(Stockage), Chat
(Discussion) et Vector
(Vecteur).
Fournisseurs (Providers)
Les fournisseurs sont le pilier central de Casibase, fournissant des services fondamentaux et s'intégrant avec des systèmes externes. La définition de la classe Provider est la suivante :
type Provider struct {
Owner string `xorm:"varchar(100) notnull pk" json:"owner"`
Name string `xorm:"varchar(100) notnull pk" json:"name"`
CreatedTime string `xorm:"varchar(100)" json:"createdTime"`
DisplayName string `xorm:"varchar(100)" json:"displayName"`
Category string `xorm:"varchar(100)" json:"category"`
Type string `xorm:"varchar(100)" json:"type"`
ClientId string `xorm:"varchar(100)" json:"clientId"`
ClientSecret string `xorm:"varchar(2000)" json:"clientSecret"`
ProviderUrl string `xorm:"varchar(200)" json:"providerUrl"`
}
Il existe deux types principaux de fournisseurs dans Casibase :
Fournisseurs de stockage (Storage Providers). Les fournisseurs de stockage sont responsables du stockage et de la récupération des données dans Casibase. Ils prennent en charge diverses options de stockage, notamment :
- AWS
- Azure
- Système de fichiers local
Fournisseurs d'IA (AI Providers). Les fournisseurs d'IA sont responsables du traitement des tâches et services liés à l'IA dans Casibase. Ils prennent en charge divers modèles et technologies d'IA, notamment :
- OpenAI
- ChatGLM
- InternLM
Vecteurs (Vectors)
Les vecteurs dans Casibase représentent des représentations numériques de différents types de données. Ces vecteurs permettent un traitement et une analyse efficaces de l'information. Les types de vecteurs disponibles comprennent :
- Vecteurs de texte
- Vecteurs d'image
- ... (autres types de vecteurs)
La définition de la classe Vector est la suivante :
type Vector struct {
Owner string `xorm:"varchar(100) notnull pk" json:"owner"`
Name string `xorm:"varchar(100) notnull pk" json:"name"`
CreatedTime string `xorm:"varchar(100)" json:"createdTime"`
DisplayName string `xorm:"varchar(100)" json:"displayName"`
Store string `xorm:"varchar(100)" json:"store"`
File string `xorm:"varchar(100)" json:"file"`
Text string `xorm:"mediumtext" json:"text"`
Data []float64 `xorm:"mediumtext" json:"data"`
}
Discussions (Chats)
Les discussions sont au cœur de l'interaction entre les utilisateurs et les modèles d'IA dans Casibase. Elles se composent de trois éléments fondamentaux :
- Question : L'entrée ou la requête de l'utilisateur, cherchant des informations ou de l'aide.
- Requête (Query Prompt) : Version formatée de la question de l'utilisateur, préparée pour le traitement par le modèle d'IA.
- Réponse (Answer) : Réponse générée par l'IA à la question de l'utilisateur, fournissant des informations pertinentes ou des solutions.
La définition de la classe Chat est la suivante :
type Chat struct {
Owner string `xorm:"varchar(100) notnull pk" json:"owner"`
Name string `xorm:"varchar(100) notnull pk" json:"name"`
CreatedTime string `xorm:"varchar(100)" json:"createdTime"`
UpdatedTime string `xorm:"varchar(100)" json:"updatedTime"`
DisplayName string `xorm:"varchar(100)" json:"displayName"`
Category string `xorm:"varchar(100)" json:"category"`
Type string `xorm:"varchar(100)" json:"type"`
User1 string `xorm:"varchar(100)" json:"user1"`
User2 string `xorm:"varchar(100)" json:"user2"`
Users []string `xorm:"varchar(100)" json:"users"`
MessageCount int `json:"messageCount"`
}
Intégration
L'intégration est le processus de conversion de divers types de données (comme le texte et les images) en représentations vectorielles denses. Cette étape est cruciale pour un traitement et une analyse efficaces des données dans Casibase.
Par l'intégration, les questions dans les discussions et les fichiers de connaissances dans le stockage seront convertis en vecteurs pour l'étape suivante de recherche de connaissances.
La méthode d'intégration par défaut dans Casibase est fournie par OpenAI et peut être appelée au maximum trois fois par minute. Nous recommandons de minimiser le couplage entre les fichiers de connaissances pour faciliter l'intégration et le traitement ultérieur.