メインコンテンツへスキップ

コア概念

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回の呼び出し率で提供されます。 埋め込みやさらなる処理を容易にするために、ナレッジファイル間の結合を最小限に抑えることをお勧めします。