コア概念
Casibaseのユーザーとして、少なくとも4つのコアコンセプトを習得する必要があります: Provider
, Storage
, Chat
, Vector
。
プロバイダー(Providers)
プロバイダーはCasibaseのバックボーンであり、不可欠なサービスと外部システムとの統合を提供します。 Providerクラスの定義は次のとおりです:
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"`
}
Casibaseには2つの主要なプロバイダタイプがあります:
ストレージプロバイダー ストレージプロバイダーはCasibase内のデータのストレージと検索を容易にします。 以下を含む様々なストレージオプションをサポートしています:
- AWS
- Azure
- ローカルファイルシステム
AIプロバイダー AIプロバイダーはCasibaseでAI関連のタスクやサービスを処理する責任があります。 以下を含む複数のAIモデルと技術をサポートしています:
- OpenAI
- ChatGLM
- InternLM
ベクトル(Vectors)
Casibase内のベクトルは、異なる種類のデータの数値表現を表します。 これらのベクトルは、情報の効率的な処理と分析を可能にします。 利用可能なベクトルタイプの一部は、次のとおりです:
- テキストベクトル
- 画像ベクトル
- … ...(その他のベクトルタイプ)
Vectorクラスの定義は次のとおりです:
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"`
}
チャット(Chats)
チャットは、CasibaseのユーザーとAIモデルのインタラクティブなコミュニケーションの中心にあります。 それらは3つの重要なコンポーネントで構成されています:
- 質問(Question):情報やヘルプを求めるユーザーの入力またはクエリ。
- クエリプロンプト(Query Prompt):AIモデルによる処理のために準備されたユーザーの質問のフォーマット版。
- 回答(Answer):ユーザーの質問に対するAI生成の応答で、関連情報やソリューションを提供します。
Chatクラスの定義は次のとおりです:
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"`
}
埋め込み(Embedding)
埋め込みとは、テキストや画像などの様々なデータを高密度なベクトル表現に変換するプロセスです。 このステップは、Casibase内で効率的なデータ処理と分析を容易にするために不可欠です。
埋め込みにより、チャットの質問とストレージ内の知識ファイルが、次の知識検索に使用されるベクトルに変換されます。
Casibaseのデフォルトの埋め込みメソッドは、OpenAIによって毎分最大3回の呼び出し率で提供されます。 埋め込みやさらなる処理を容易にするために、ナレッジファイル間の結合を最小限に抑えることをお勧めします。