Plug-in Chroma

Le plug-in Chroma fournit des implémentations d'indexeur et de récupérateur qui utilisent la base de données vectorielle Chroma en mode client/serveur.

Installation

npm i --save genkitx-chromadb

Configuration

Pour utiliser ce plug-in, spécifiez-le lorsque vous initialisez Genkit:

import { genkit } from 'genkit';
import { chroma } from 'genkitx-chromadb';

const ai = genkit({
  plugins: [
    chroma([
      {
        collectionName: 'bob_collection',
        embedder: textEmbedding004,
      },
    ]),
  ],
});

Vous devez spécifier une collection Chroma et le modèle d'embedding que vous souhaitez utiliser. En outre, deux paramètres facultatifs sont disponibles:

  • clientParams: si vous n'exécutez pas votre serveur Chroma sur la même machine que votre flux Genkit, vous devez spécifier des options d'authentification. Si vous n'exécutez pas non plus une configuration de serveur Chroma par défaut, vous pouvez spécifier un ChromaClientParams object Chroma à transmettre au client Chroma:

    clientParams: {
      path: "http://192.168.10.42:8000",
    }
    
  • embedderOptions: utilisez ce paramètre pour transmettre des options à l'outil d'intégration:

    embedderOptions: { taskType: 'RETRIEVAL_DOCUMENT' },
    

Utilisation

Importez les références du récupérateur et de l'indexeur comme suit:

import { chromaRetrieverRef } from 'genkitx-chromadb';
import { chromaIndexerRef } from 'genkitx-chromadb';

Utilisez ensuite les références avec ai.retrieve() et 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 });

Consultez la page Génération augmentée de récupération pour en savoir plus sur les indexeurs et les récupérateurs.