Pinecone Vector Database
The Pinecone plugin provides indexer and retriever implementations that use the Pinecone cloud vector database.
Pinecone is a cloud-native vector database that provides fast, scalable similarity search for AI applications. It offers managed infrastructure with automatic scaling and high availability.
Installation
Section titled “Installation”npm install genkitx-pineconeConfiguration
Section titled “Configuration”To use this plugin, specify it when you initialize Genkit:
import { genkit } from 'genkit';import { pinecone } from 'genkitx-pinecone';
import { googleAI } from "@genkit-ai/google-genai";
const ai = genkit({ plugins: [ pinecone([ { indexId: 'bob-facts', embedder: googleAI.embedder('gemini-embedding-001'), }, ]), ],});You must specify a Pinecone index ID and the embedding model you want to use.
In addition, you must configure Genkit with your Pinecone API key. There are two ways to do this:
- Set the
PINECONE_API_KEYenvironment variable. - Specify it in the
clientParamsoptional parameter:
clientParams: { apiKey: ..., }The value of this parameter is a PineconeConfiguration object, which gets passed to the Pinecone client; you can use it to pass any parameter the client supports.
Import retriever and indexer references like so:
import { pineconeRetrieverRef } from 'genkitx-pinecone';import { pineconeIndexerRef } from 'genkitx-pinecone';Then, use these references with ai.retrieve() and ai.index():
// To use the index you configured when you loaded the plugin:let docs = await ai.retrieve({ retriever: pineconeRetrieverRef, query });
// To specify an index:export const bobFactsRetriever = pineconeRetrieverRef({ indexId: 'bob-facts',});docs = await ai.retrieve({ retriever: bobFactsRetriever, query });// To use the index you configured when you loaded the plugin:await ai.index({ indexer: pineconeIndexerRef, documents });
// To specify an index:export const bobFactsIndexer = pineconeIndexerRef({ indexId: 'bob-facts',});await ai.index({ indexer: bobFactsIndexer, documents });See the Retrieval-augmented generation page for a general discussion on indexers and retrievers.