Firebase Genkit#
Genkit - фреймворк для создания, развертывания и мониторинга готовых к производству приложений с искусственным интеллектом.
Можно создавать приложения, генерирующие пользовательский контент, использующие семантический поиск, обрабатывающие неструктурированные входные данные, отвечающие на вопросы по бизнес-данным, автономно принимающие решения, координирующие вызовы инструментов и многое другое.
Можно использовать Vector DB для индексирования/семантического поиска данных в приложениях Genkit посредством плагина Vector DB-Genkit.
В настоящее время 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,
},
]),
],
// ...
});
Нужно указать имя коллекции, модель встраивания, которую хотите использовать, и параметры клиента Vector DB. Кроме того, существует несколько дополнительных параметров:
embedderOptions: Дополнительные параметры для передачи опций встроенному модулю:embedderOptions: { taskType: 'RETRIEVAL_DOCUMENT' },contentPayloadKey: Название поля полезной нагрузки с содержимым документа. По умолчаниюcontent.contentPayloadKey: 'content';metadataPayloadKey: Название поля полезной нагрузки с метаданными документа. По умолчаниюmetadata.metadataPayloadKey: 'metadata';collectionCreateOptions: Дополнительные параметры, используемые при создании коллекции Vector DB.
Использование#
Импортируйте ссылки на ретривер и индескатор следующим образом:
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 });
За общим обсуждением индексаторов и ретриверов можно обратиться к разделу Генерация с использованием извлечения информации .