Spaces:
Sleeping
Sleeping
File size: 1,787 Bytes
43795fe e224aa9 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
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])
|