Plug-in Chroma

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 un ChromaClientParams 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.