Agentic-ATS / src /chroma_utils.py
Rustamshry's picture
Update src/chroma_utils.py
43795fe verified
import chromadb
from chromadb.utils import embedding_functions
import os
import uuid
PERSIST_DIRECTORY = "/tmp/chroma_db_data"
os.makedirs(PERSIST_DIRECTORY, exist_ok=True)
client = chromadb.PersistentClient(path=PERSIST_DIRECTORY)
embedding_fn = embedding_functions.SentenceTransformerEmbeddingFunction(model_name="sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2")
resume_collection = client.get_or_create_collection(name="resume_collection", embedding_function=embedding_fn)
job_collection = client.get_or_create_collection(name="job_collection", embedding_function=embedding_fn)
def add_to_resume_chroma(embedding, metadata):
unique_id = str(uuid.uuid4())
resume_collection.add(ids=[unique_id], embeddings=[embedding], metadatas=[metadata])
return unique_id
def add_to_job_chroma(embedding, metadata):
unique_id = str(uuid.uuid4())
job_collection.add(ids=[unique_id], embeddings=[embedding], metadatas=[metadata])
return unique_id
def search_resume_chroma(query_embedding, k=10):
results = resume_collection.query(
query_embeddings=[query_embedding],
n_results=k,
include=["embeddings", "metadatas"]
)
return results
def search_job_chroma(query_embedding, k=10):
results = job_collection.query(
query_embeddings=[query_embedding],
n_results=k,
include=["embeddings", "metadatas"]
)
return results
def get_all_jobs_from_chroma():
results = job_collection.get(include=["embeddings", "metadatas"])
return results['ids'], results['embeddings'], results['metadatas']
def delete_resume_from_chroma(unique_id):
resume_collection.delete(ids=[unique_id])
def delete_job_from_chroma(unique_id):
job_collection.delete(ids=[unique_id])