TalentTalkPro / backend /services /vector_store.py
Param2121's picture
Refactor: Move project to root of repository
3abfc90
Raw
History Blame Contribute Delete
1.05 kB
import chromadb
from chromadb.utils import embedding_functions
import os
# Initialize ChromaDB Client
# PersistentClient saves data to disk
chroma_client = chromadb.PersistentClient(path="./data/chroma_db")
# Use Google Generative AI Embeddings
def get_embedding_function(api_key):
return embedding_functions.GoogleGenerativeAiEmbeddingFunction(api_key=api_key)
def get_collection(name: str, api_key: str):
return chroma_client.get_or_create_collection(
name=name,
embedding_function=get_embedding_function(api_key)
)
def add_documents(collection_name: str, documents: list, metadatas: list, ids: list, api_key: str):
collection = get_collection(collection_name, api_key)
collection.add(
documents=documents,
metadatas=metadatas,
ids=ids
)
def query_documents(collection_name: str, query_text: str, n_results: int, api_key: str):
collection = get_collection(collection_name, api_key)
return collection.query(
query_texts=[query_text],
n_results=n_results
)