Kernkonzepte
Als Casibase-Benutzer sollten Sie mit mindestens 4 Kernkonzepten vertraut sein: Provider, Storage (Speicher), Chat und Vector (Vektor).
Provider
Provider sind die Grundpfeiler von Casibase, die grundlegende Dienste bereitstellen und mit externen Systemen integrieren. Die Definition der Provider-Klasse lautet wie folgt:
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"`
}
In Casibase gibt es zwei Haupttypen von Providern:
- Storage Provider. Storage Provider sind für die Speicherung und den Abruf von Daten in Casibase verantwortlich. Es unterstützt verschiedene Speicheroptionen, darunter: - AWS
- Azure
- Lokales Dateisystem
 
- AI Provider. AI Provider sind für die Verarbeitung von KI-bezogenen Aufgaben und Diensten in Casibase verantwortlich. Es unterstützt verschiedene KI-Modelle und -Technologien, darunter: - OpenAI
- ChatGLM
- InternLM
 
Vektoren
Vektoren in Casibase repräsentieren numerische Darstellungen verschiedener Datentypen. Diese Vektoren ermöglichen eine effiziente Verarbeitung und Analyse von Informationen. Verfügbare Vektortypen umfassen:
- Textvektoren
- Bildvektoren
- ... (andere Vektortypen)
Die Definition der Vector-Klasse lautet wie folgt:
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"`
}
Chat
Chats sind der Kern der interaktiven Kommunikation zwischen Benutzern und KI-Modellen in Casibase. Sie bestehen aus drei grundlegenden Komponenten:
- Frage (Question): Die Eingabe oder Anfrage des Benutzers, der Informationen oder Hilfe sucht.
- Abfrage-Prompt (Query Prompt): Eine formatierte Version der Benutzerfrage, die für die Verarbeitung durch das KI-Modell vorbereitet wird.
- Antwort (Answer): Die vom KI generierte Antwort auf die Benutzerfrage, die relevante Informationen oder Lösungen bietet.
Die Definition der Chat-Klasse lautet wie folgt:
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"`
}
Einbettung
Embedding ist der Prozess der Umwandlung verschiedener Datentypen (wie Text und Bilder) in dichte Vektordarstellungen. Dieser Schritt ist entscheidend für die effiziente Datenverarbeitung und -analyse in Casibase.
- Durch Embedding werden Fragen in Chats und Wissensdateien im Speicher in Vektoren umgewandelt, die für die nachfolgende Wissenssuche verwendet werden. 
- Die Standard-Embedding-Methode von Casibase wird von OpenAI bereitgestellt und kann bis zu dreimal pro Minute aufgerufen werden. Wir empfehlen, die Kopplung zwischen Wissensdateien zu minimieren, um das Embedding und die weitere Verarbeitung zu erleichtern.