Chroma 插件

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 集合和要使用的嵌入模型。此外,还有两个可选参数:

  • clientParams:如果您不是在与 Genkit 流程相同的机器上运行 Chroma 服务器,则需要指定身份验证选项;或者,如果您未运行默认的 Chroma 服务器配置,则可以指定要传递给 Chroma 客户端的 Chroma ChromaClientParams 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 });

如需大致了解索引器和检索器,请参阅检索增强生成页面。