Firebase Genkit

Genkit 是一个用于构建、部署和监控生产级 AI 应用的框架。

您可以构建生成自定义内容、使用语义搜索、处理非结构化输入、利用您的业务数据回答问题、自主决策、编排工具调用等的应用。

您可以通过 Qdrant-Genkit 插件在您的 Genkit 应用中使用 Qdrant 进行数据索引/语义检索。

Genkit 当前支持 JavaScript/TypeScript (Node.js) 的服务器端开发,并正在积极开发 Go 支持。

安装

npm i genkitx-qdrant

配置

要使用此插件,请在调用 configureGenkit() 时指定它

import { qdrant } from 'genkitx-qdrant';
import { textEmbeddingGecko } from '@genkit-ai/vertexai';

export default configureGenkit({
  plugins: [
    qdrant([
      {
        clientParams: {
          host: 'localhost',
          port: 6333,
        },
        collectionName: 'some-collection',
        embedder: textEmbeddingGecko,
      },
    ]),
  ],
  // ...
});

您需要指定集合名称、要使用的嵌入模型以及 Qdrant 客户端参数。此外,还有一些可选参数 

  • embedderOptions:传递给嵌入器的附加选项

    embedderOptions: { taskType: 'RETRIEVAL_DOCUMENT' },
    
  • contentPayloadKey:包含文档内容的 payload 字段名称。默认为“content”。

    contentPayloadKey: 'content';
    
  • metadataPayloadKey:包含文档元数据的 payload 字段名称。默认为“metadata”。

    metadataPayloadKey: 'metadata';
    
  • collectionCreateOptions:创建 Qdrant 集合时的附加选项

使用方法

像这样导入 retriever 和 indexer 引用

import { qdrantIndexerRef, qdrantRetrieverRef } from 'genkitx-qdrant';
import { Document, index, retrieve } from '@genkit-ai/ai/retriever';

然后,将引用传递给 retrieve()index()

// To specify an indexer:
export const qdrantIndexer = qdrantIndexerRef({
  collectionName: 'some-collection',
  displayName: 'Some Collection indexer',
});

await index({ indexer: qdrantIndexer, documents });
// To specify a retriever:
export const qdrantRetriever = qdrantRetrieverRef({
  collectionName: 'some-collection',
  displayName: 'Some Collection Retriever',
});

let docs = await retrieve({ retriever: qdrantRetriever, query });

您可以参考检索增强生成,了解关于 indexers 和 retrievers 的一般讨论。

进一步阅读

此页面是否有用?

感谢您的反馈!🙏

很抱歉听到这个消息。😔 您可以在 GitHub 上编辑此页面,或者创建一个 GitHub issue。