Spaces:
Sleeping
Sleeping
File size: 2,297 Bytes
84bc138 d31a363 84bc138 0ac4fb8 bf1ae63 84bc138 7e2083c d31a363 5c62f99 84bc138 fb85604 0ac4fb8 e791f2f 0ac4fb8 e791f2f 57374a9 e791f2f fb85604 0ac4fb8 fb85604 0ac4fb8 84bc138 5c62f99 100dadd 84bc138 5c62f99 84bc138 0ac4fb8 8421e19 84bc138 0ac4fb8 57374a9 e791f2f fb85604 0ac4fb8 d31a363 0ac4fb8 5c62f99 d31a363 100dadd d31a363 e791f2f 5c62f99 e791f2f |
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 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
import os
import requests
# Load from environment variable or fallback
GROQ_API_KEY = "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"
def summarize_match(job_description, cv_names, cv_snippets):
if not GROQ_API_KEY:
return "❌ GROQ_API_KEY not set."
try:
# Ensure 3 CVs are present (pad if needed)
while len(cv_names) < 3:
cv_names.append("[No CV]")
cv_snippets.append("[No content]")
# Truncate content safely
job_description = job_description.strip()[:1000] or "[No description provided]"
cv_names = [name[:60] for name in cv_names[:3]]
cv_snippets = [(text.strip()[:1500] or "[No content]") for text in cv_snippets[:3]]
# Compose prompt
prompt = f"""
You are an AI recruitment assistant helping to evaluate candidates for a job.
### Job Description:
{job_description}
### Candidate CVs:
1. {cv_names[0]}:
{cv_snippets[0]}
2. {cv_names[1]}:
{cv_snippets[1]}
3. {cv_names[2]}:
{cv_snippets[2]}
Please analyze how well each candidate matches the job. Focus on:
- PHP/web development experience
- Programming and software skills
- Relevant technical background
List the best matches and briefly justify each recommendation.
""".strip()
# Truncate to fit Groq token window if needed
if len(prompt) > 8000:
prompt = prompt[:8000]
# Send request to Groq API using LLaMA3
response = requests.post(
url="https://api.groq.com/openai/v1/chat/completions",
headers={
"Authorization": f"Bearer {GROQ_API_KEY}",
"Content-Type": "application/json"
},
json={
"model": "llama3-8b-8192",
"messages": [
{"role": "system", "content": "You are a helpful recruitment assistant."},
{"role": "user", "content": prompt}
],
"temperature": 0.4
},
timeout=30
)
response.raise_for_status()
return response.json()["choices"][0]["message"]["content"]
except requests.exceptions.RequestException as e:
return f"❌ Groq API error: {e}"
except Exception as e:
return f"❌ Unexpected error: {e}"
|