pythonintermediate

ChromaDB Persistent Vector Store

Create, persist, and query a ChromaDB vector store for semantic document retrieval.

python
import chromadb
from chromadb.utils.embedding_functions import OpenAIEmbeddingFunction

client = chromadb.PersistentClient(path='./chroma_store')

ef = OpenAIEmbeddingFunction(model_name='text-embedding-3-small')
collection = client.get_or_create_collection('knowledge_base', embedding_function=ef)

documents = [
    'Python is great for data science.',
    'FastAPI builds high-performance APIs.',
    'Docker containerizes applications easily.',
]

collection.add(
    documents=documents,
    ids=[f'doc_{i}' for i in range(len(documents))],
    metadatas=[{'source': 'manual'} for _ in documents],
)

results = collection.query(query_texts=['data analysis tools'], n_results=2)
for doc, dist in zip(results['documents'][0], results['distances'][0]):
    print(f'{dist:.3f}: {doc}')

Use Cases

  • local vector DB
  • semantic retrieval
  • persistent embeddings

Tags

Related Snippets

Similar patterns you can reuse in the same workflow.