MBilal-72 commited on
Commit
5ad53ce
·
verified ·
1 Parent(s): 1584186

Update backend/agents/matcher.py

Browse files
Files changed (1) hide show
  1. backend/agents/matcher.py +13 -11
backend/agents/matcher.py CHANGED
@@ -1,19 +1,21 @@
1
- import os
2
- import numpy as np
3
  from sklearn.metrics.pairwise import cosine_similarity
4
- from groq import Groq
5
 
6
- client = Groq(api_key=os.getenv("GROQ_API_KEY"))
 
 
7
 
8
  def get_embedding(text: str):
9
- response = client.embeddings.create(
10
- model="nomic-embed-text", # Groq embedding model
11
- input=text
12
- )
13
- return np.array(response.data[0].embedding)
 
14
 
15
  def compute_match(resume_text: str, job_desc: str) -> float:
16
- resume_emb = get_embedding(resume_text).reshape(1, -1)
17
- job_emb = get_embedding(job_desc).reshape(1, -1)
18
  score = cosine_similarity(resume_emb, job_emb)[0][0]
19
  return round(float(score), 3)
 
1
+ import torch
2
+ from transformers import AutoTokenizer, AutoModel
3
  from sklearn.metrics.pairwise import cosine_similarity
 
4
 
5
+ # Load once (cache in Hugging Face Space)
6
+ tokenizer = AutoTokenizer.from_pretrained("google/embeddinggemma-300m")
7
+ model = AutoModel.from_pretrained("google/embeddinggemma-300m")
8
 
9
  def get_embedding(text: str):
10
+ inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True)
11
+ with torch.no_grad():
12
+ outputs = model(**inputs)
13
+ # Take mean pooling of last hidden state
14
+ embeddings = outputs.last_hidden_state.mean(dim=1)
15
+ return embeddings.numpy()
16
 
17
  def compute_match(resume_text: str, job_desc: str) -> float:
18
+ resume_emb = get_embedding(resume_text)
19
+ job_emb = get_embedding(job_desc)
20
  score = cosine_similarity(resume_emb, job_emb)[0][0]
21
  return round(float(score), 3)