Chroma プラグインは、クライアント/サーバー モードで Chroma ベクトル データベースを使用するインデクサーとリトリーバーの実装を提供します。
インストール
npm i --save genkitx-chromadb
構成
このプラグインを使用するには、Genkit の初期化時に指定します。
import { genkit } from 'genkit';
import { chroma } from 'genkitx-chromadb';
const ai = genkit({
plugins: [
chroma([
{
collectionName: 'bob_collection',
embedder: textEmbedding004,
},
]),
],
});
Chroma コレクションと使用するエンベディング モデルを指定する必要があります。また、次の 2 つのオプション パラメータがあります。
clientParams
: Genkit フローと同じマシンで Chroma サーバーを実行していない場合は、認証オプションを指定する必要があります。また、デフォルトの Chroma サーバー構成を実行していない場合は、Chroma クライアントに渡す ChromaChromaClientParams object
を指定できます。clientParams: { path: "http://192.168.10.42:8000", }
embedderOptions
: このパラメータを使用して、エンベディング ツールにオプションを渡します。embedderOptions: { taskType: 'RETRIEVAL_DOCUMENT' },
用途
次のように、取得ツールとインデックス エンジンの参照をインポートします。
import { chromaRetrieverRef } from 'genkitx-chromadb';
import { chromaIndexerRef } from 'genkitx-chromadb';
次に、ai.retrieve()
と ai.index()
で参照を使用します。
// To use the index you configured when you loaded the plugin:
let docs = await ai.retrieve({ retriever: chromaRetrieverRef, query });
// To specify an index:
export const bobFactsRetriever = chromaRetrieverRef({
collectionName: 'bob-facts',
});
docs = await ai.retrieve({ retriever: bobFactsRetriever, query });
// To use the index you configured when you loaded the plugin:
await ai.index({ indexer: chromaIndexerRef, documents });
// To specify an index:
export const bobFactsIndexer = chromaIndexerRef({
collectionName: 'bob-facts',
});
await ai.index({ indexer: bobFactsIndexer, documents });
インデクサーとリトリーバーの一般的な説明については、検索拡張生成のページをご覧ください。