simikkk commited on
Commit
3edc9c9
·
verified ·
1 Parent(s): f5f127c

Update analyzer.py

Browse files
Files changed (1) hide show
  1. analyzer.py +15 -4
analyzer.py CHANGED
@@ -10,7 +10,8 @@ client = openai.OpenAI(
10
 
11
  def analyze_cv(cv_text, job_text):
12
  """
13
- Analyzuje CV proti popisu pozice a vrací JSON s výsledky.
 
14
  """
15
  prompt = f"""
16
  Jsi expert na nábor a kariérní kouč. Tvým úkolem je analyzovat CV a porovnat ho s popisem práce.
@@ -20,7 +21,7 @@ def analyze_cv(cv_text, job_text):
20
 
21
  Vrať odpověď POUZE jako validní JSON v tomto formátu:
22
  {{
23
- "match_score": (číslo 0-100),
24
  "score_explanation": "krátké vysvětlení",
25
  "top_3_actions": ["akce 1", "akce 2", "akce 3"],
26
  "missing_keywords": [{{"keyword": "slovo", "why_it_matters": "proč"}}],
@@ -30,9 +31,19 @@ def analyze_cv(cv_text, job_text):
30
  }}
31
  """
32
 
 
 
 
 
 
 
 
 
 
 
33
  try:
34
  response = client.chat.completions.create(
35
- model="google/gemini-2.0-flash-exp", # Můžeš změnit na jiný model z OpenRouter
36
  messages=[
37
  {"role": "system", "content": "Jsi užitečný asistent, který odpovídá pouze v JSON formátu."},
38
  {"role": "user", "content": prompt}
@@ -44,4 +55,4 @@ def analyze_cv(cv_text, job_text):
44
  return json.loads(content)
45
 
46
  except Exception as e:
47
- return {"error": str(e)}
 
10
 
11
  def analyze_cv(cv_text, job_text):
12
  """
13
+ Analyzuje CV proti popisu pozice s prioritním výběrem modelů
14
+ a automatickým fallbackem na free modely.
15
  """
16
  prompt = f"""
17
  Jsi expert na nábor a kariérní kouč. Tvým úkolem je analyzovat CV a porovnat ho s popisem práce.
 
21
 
22
  Vrať odpověď POUZE jako validní JSON v tomto formátu:
23
  {{
24
+ "match_score": 0,
25
  "score_explanation": "krátké vysvětlení",
26
  "top_3_actions": ["akce 1", "akce 2", "akce 3"],
27
  "missing_keywords": [{{"keyword": "slovo", "why_it_matters": "proč"}}],
 
31
  }}
32
  """
33
 
34
+ # Seznam modelů: Nejdřív špička, pak free modely jako záloha
35
+ # Router zkusí první, pokud selže (kapacita/404), zkusí další v řadě
36
+ models_to_try = [
37
+ "google/gemini-2.0-flash-exp",
38
+ "anthropic/claude-3.5-sonnet",
39
+ "openai/gpt-4o",
40
+ "google/gemini-flash-1.5-free",
41
+ "meta-llama/llama-3.3-70b-instruct:free"
42
+ ]
43
+
44
  try:
45
  response = client.chat.completions.create(
46
+ model=models_to_try, # OpenRouter zkusí modely postupně
47
  messages=[
48
  {"role": "system", "content": "Jsi užitečný asistent, který odpovídá pouze v JSON formátu."},
49
  {"role": "user", "content": prompt}
 
55
  return json.loads(content)
56
 
57
  except Exception as e:
58
+ return {"error": f"Všechny modely selhaly: {str(e)}"}