Pinecone

The PineconeStore class provides an interface to Pinecone’s vector database.

Constructor Options

apiKey:

string
Pinecone API key

environment:

string
Pinecone environment (e.g., "us-west1-gcp")

indexName:

string
Name of your Pinecone index

Methods

createIndex()

indexName:

string
Name of the index to create

dimension:

number
Vector dimension size

metric?:

'cosine' | 'euclidean' | 'dotproduct'
Distance metric for similarity search

upsert()

vectors:

number[][]
Array of embedding vectors

metadata?:

Record<string, any>[]
Metadata for each vector

namespace?:

string
Optional namespace for organization

query()

vector:

number[]
Query vector to find similar vectors

topK?:

number
Number of results to return

filter?:

Record<string, any>
Metadata filters for the query

listIndexes()

Returns an array of index names as strings.

describeIndex()

indexName:

string
Name of the index to describe

Returns:

interface IndexStats {
  dimension: number;
  count: number;
  metric: "cosine" | "euclidean" | "dotproduct";
}

deleteIndex()

indexName:

string
Name of the index to delete

Response Types

Query results are returned in this format:

interface QueryResult {
  id: string;
  score: number;
  metadata: Record<string, any>;
}

Error Handling

The store throws typed errors that can be caught:

try {
  await store.query(queryVector);
} catch (error) {
  if (error instanceof VectorStoreError) {
    console.log(error.code); // 'connection_failed' | 'invalid_dimension' | etc
    console.log(error.details); // Additional error context
  }
}

Environment Variables

Required environment variables:

  • PINECONE_API_KEY: Your Pinecone API key
  • PINECONE_ENVIRONMENT: Pinecone environment (e.g., ‘us-west1-gcp’)

MIT 2024 © Nextra.