Pinecone - Mem0

Documentation Index

Fetch the complete documentation index at: /llms.txt

Use this file to discover all available pages before exploring further.

Pinecone is a fully managed vector database designed for machine learning applications, offering high performance vector search with low latency at scale. It’s particularly well-suited for semantic search, recommendation systems, and other AI-powered applications.

New: Pinecone integration now supports custom namespaces! Use the namespace parameter to logically separate data within the same index. This is especially useful for multi-tenant or multi-user applications.

Note: Before configuring Pinecone, you need to select an embedding model (e.g., OpenAI, Cohere, or custom models) and ensure the embedding_model_dims in your config matches your chosen model’s dimensions. For example, OpenAI’s text-embedding-3-small uses 1536 dimensions.

Usage

Python

TypeScript

import os
from mem0 import Memory

os.environ["OPENAI_API_KEY"] = "sk-xx"
os.environ["PINECONE_API_KEY"] = "your-api-key"

# Example using serverless configuration
config = {
    "vector_store": {
        "provider": "pinecone",
        "config": {
            "collection_name": "testing",
            "embedding_model_dims": 1536,  # Matches OpenAI's text-embedding-3-small
            "namespace": "my-namespace", # Optional: specify a namespace for multi-tenancy
            "serverless_config": {
                "cloud": "aws",  # Choose between 'aws' or 'gcp' or 'azure'
                "region": "us-east-1"
            },
            "metric": "cosine"
        }
    }
}

m = Memory.from_config(config)
messages = [\
    {"role": "user", "content": "I'm planning to watch a movie tonight. Any recommendations?"},\
    {"role": "assistant", "content": "How about thriller movies? They can be quite engaging."},\
    {"role": "user", "content": "I'm not a big fan of thriller movies but I love sci-fi movies."},\
    {"role": "assistant", "content": "Got it! I'll avoid thriller recommendations and suggest sci-fi movies in the future."}\
]
m.add(messages, user_id="alice", metadata={"category": "movies"})
import { Memory } from 'mem0ai/oss';

// Set OPENAI_API_KEY and PINECONE_API_KEY in your environment
const config = {
  vectorStore: {
    provider: 'pinecone',
    config: {
      collectionName: 'testing',
      embeddingModelDims: 1536, // Matches OpenAI's text-embedding-3-small
      namespace: 'my-namespace', // Optional: specify a namespace for multi-tenancy
      serverlessConfig: {
        cloud: 'aws', // 'aws' | 'gcp' | 'azure'
        region: 'us-east-1',
      },
      metric: 'cosine',
    },
  },
};

const memory = new Memory(config);
const messages = [\
    {"role": "user", "content": "I'm planning to watch a movie tonight. Any recommendations?"},\
    {"role": "assistant", "content": "How about thriller movies? They can be quite engaging."},\
    {"role": "user", "content": "I'm not a big fan of thriller movies but I love sci-fi movies."},\
    {"role": "assistant", "content": "Got it! I'll avoid thriller recommendations and suggest sci-fi movies in the future."}\
]
await memory.add(messages, { userId: "alice", metadata: { category: "movies" } });

Config

Here are the parameters available for configuring Pinecone:

Parameter Description Default Value
collection_name Name of the index/collection Required
embedding_model_dims Dimensions of the embedding model (must match your chosen embedding model) Required
client Existing Pinecone client instance None
api_key API key for Pinecone Environment variable: PINECONE_API_KEY
environment Pinecone environment None
serverless_config Configuration for serverless deployment (AWS or GCP or Azure) None
pod_config Configuration for pod-based deployment None
hybrid_search Whether to enable hybrid search False
metric Distance metric for vector similarity "cosine"
batch_size Batch size for operations 100
namespace Namespace for the collection, useful for multi-tenancy. None
Parameter Description Default Value
collectionName Name of the index/collection Required
embeddingModelDims Dimensions of the embedding model (must match your chosen embedding model) 1536
client Existing Pinecone client instance undefined
apiKey API key for Pinecone Environment variable: PINECONE_API_KEY
serverlessConfig Configuration for serverless deployment (cloud, region) undefined
podConfig Configuration for pod-based deployment (environment, podType, pods, replicas, shards) undefined
metric Distance metric for vector similarity (cosine, dotproduct, euclidean) "cosine"
batchSize Batch size for insert operations 100
namespace Namespace for the collection, useful for multi-tenancy. undefined
extraParams Extra parameters spread into the Pinecone createIndex call {}

Important: You must choose either serverless_config or pod_config for your deployment, but not both.

Serverless Config Example

Python

TypeScript

config = {
    "vector_store": {
        "provider": "pinecone",
        "config": {
            "collection_name": "memory_index",
            "embedding_model_dims": 1536,  # For OpenAI's text-embedding-3-small
            "namespace": "my-namespace",  # Optional: custom namespace
            "serverless_config": {
                "cloud": "aws",  # or "gcp" or "azure"
                "region": "us-east-1"  # Choose appropriate region
            }
        }
    }
}
const config = {
  vectorStore: {
    provider: 'pinecone',
    config: {
      collectionName: 'memory_index',
      embeddingModelDims: 1536, // For OpenAI's text-embedding-3-small
      namespace: 'my-namespace', // Optional: custom namespace
      serverlessConfig: {
        cloud: 'aws', // 'gcp' | 'azure'
        region: 'us-east-1', // Choose appropriate region
      },
    },
  },
};

Pod Config Example

Python

TypeScript

config = {
    "vector_store": {
        "provider": "pinecone",
        "config": {
            "collection_name": "memory_index",
            "embedding_model_dims": 1536,  # For OpenAI's text-embedding-ada-002
            "namespace": "my-namespace",  # Optional: custom namespace
            "pod_config": {
                "environment": "gcp-starter",
                "replicas": 1,
                "pod_type": "starter"
            }
        }
    }
}
const config = {
  vectorStore: {
    provider: 'pinecone',
    config: {
      collectionName: 'memory_index',
      embeddingModelDims: 1536, // For OpenAI's text-embedding-ada-002
      namespace: 'my-namespace', // Optional: custom namespace
      podConfig: {
        environment: 'gcp-starter',
        replicas: 1,
        podType: 'starter',
      },
    },
  },
};