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

Installation

Install ChromaDB:
pip install hypertic[chromadb]

Setup

Create a ChromaDB instance with an embedder:
import os
from hypertic.vectordb import ChromaDB
from hypertic.embedders import OpenAIEmbedder

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

# Create ChromaDB instance
vector_db = ChromaDB(
    collection="my_collection",
    embedder=embedder,
    path="./chromadb_data"  # Optional: persistent storage path
)

Usage

ChromaDB 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 the collection to use
  • embedder - Embedder instance for generating embeddings
  • path - Optional path for persistent storage (if not provided, uses in-memory storage)
For more details, see the ChromaDB documentation.