Skip to main content
Use Pinecone as your vector database for storing and retrieving document embeddings.

Installation

Install Pinecone:
pip install hypertic[pinecone]

Setup

Set your Pinecone API key as an environment variable:
export PINECONE_API_KEY=...
Create a Pinecone instance with an embedder:
import os
from hypertic.vectordb import PineconeDB
from hypertic.embedders import OpenAIEmbedder

# Create embedder
embedder = OpenAIEmbedder(
    api_key=os.getenv("OPENAI_API_KEY"),
    model="text-embedding-3-small"
)

# Create Pinecone instance
vector_db = PineconeDB(
    collection="my-collection",
    embedder=embedder,
    dimension=1536,
    metric="cosine",
    api_key=os.getenv("PINECONE_API_KEY")
)

Usage

Pinecone supports both sync and async operations:
# Add documents
vector_db.add(
    files=["data/index.pdf", "data/sample.txt"],
    metadatas=[
        {"source": "invoice.pdf", "type": "invoice"},
        {"source": "sample.txt", "type": "text"}
    ]
)

# Create retriever
retriever = vector_db.as_retriever(k=3)

# Search documents
docs = retriever.search("invoice payment")
print(docs)

Configuration Options

  • collection - Name of your Pinecone collection/index
  • embedder - Embedder instance for generating embeddings
  • dimension - Dimension of the embeddings (e.g., 1536 for text-embedding-3-small)
  • metric - Distance metric for similarity search (e.g., “cosine”, “euclidean”, “dotproduct”)
  • api_key - Your Pinecone API key
For more details, see the Pinecone documentation.