Il plug-in Chroma fornisce implementazioni di indicizzatori e retriever che utilizzano il database di vettori Chroma in modalità client/server.
Installazione
npm i --save genkitx-chromadb
Configurazione
Per utilizzare questo plug-in, specificalo quando avvii Genkit:
import { genkit } from 'genkit';
import { chroma } from 'genkitx-chromadb';
const ai = genkit({
plugins: [
chroma([
{
collectionName: 'bob_collection',
embedder: textEmbedding004,
},
]),
],
});
Devi specificare una raccolta Chroma e il modello di embedding che vuoi utilizzare. Inoltre, sono disponibili due parametri facoltativi:
clientParams
: se non esegui il server Chroma sulla stessa macchina del flusso Genkit, devi specificare le opzioni di autenticazione oppure non esegui una configurazione predefinita del server Chroma. Puoi specificare unChromaClientParams object
Chroma da passare al client Chroma:clientParams: { path: "http://192.168.10.42:8000", }
embedderOptions
: utilizza questo parametro per passare le opzioni all'embedder:embedderOptions: { taskType: 'RETRIEVAL_DOCUMENT' },
Utilizzo
Importa i riferimenti del recuperatore e dell'indice come segue:
import { chromaRetrieverRef } from 'genkitx-chromadb';
import { chromaIndexerRef } from 'genkitx-chromadb';
Poi, utilizza i riferimenti con ai.retrieve()
e 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 });
Consulta la pagina Retrieval Augmented Generation (RAG) per una discussione generale su indicizzatori e retriever.