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 });

За общим обсуждением индексаторов и ретриверов можно обратиться к разделу Генерация с использованием извлечения информации .

Дополнительная документация#