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])