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 的一般讨论。