@caleblawson/pinecone
v0.10.2
Published
Pinecone vector store provider for Mastra
Readme
@mastra/pinecone
Vector store implementation for Pinecone, using the official @pinecone-database/pinecone SDK with added telemetry support.
Installation
pnpm add @mastra/pineconeUsage
import { PineconeVector } from '@mastra/pinecone';
const vectorStore = new PineconeVector(
'your-api-key',
'optional-environment-url'
);
// Create a new index
await vectorStore.createIndex({ indexName: 'my-index', dimension: 1536, metric: 'cosine' });
// Add vectors
const vectors = [[0.1, 0.2, ...], [0.3, 0.4, ...]];
const metadata = [{ text: 'doc1' }, { text: 'doc2' }];
const ids = await vectorStore.upsert({ indexName: 'my-index', vectors, metadata });
// Query vectors
const results = await vectorStore.query({
indexName: 'my-index',
queryVector: [0.1, 0.2, ...],
topK: 10, // topK
filter: { text: { $eq: 'doc1' } }, // optional filter
includeVector: false, // includeValues
});Configuration
Required:
apiKey: Your Pinecone API key
Optional:
environment: Your Pinecone environment URL (controller host URL)
Features
- Serverless deployment on AWS (us-east-1)
- Vector similarity search with cosine, euclidean, and dot product metrics
- Automatic batching for large upserts (100 vectors per request)
- Built-in telemetry support
- Metadata filtering
- Optional vector inclusion in query results
- Automatic UUID generation for vectors
- Built on top of @pinecone-database/pinecone SDK
Methods
createIndex({indexName, dimension, metric?}): Create a new indexupsert({indexName, vectors, metadata?, ids?}): Add or update vectorsquery({indexName, queryVector, topK?, filter?, includeVector?}): Search for similar vectorslistIndexes(): List all indexesdescribeIndex(indexName): Get index statisticsdeleteIndex(indexName): Delete an index
