Плагин 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
: если вы не используете сервер Chroma на том же компьютере, что и поток Genkit, вам необходимо указать параметры аутентификации или по другим причинам вы не используете конфигурацию сервера Chroma по умолчанию, вы можете указатьChromaClientParams object
для передачи клиент Chroma: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 });
См. страницу генерации с расширенным поиском для общего обсуждения индексаторов и ретриверов.