Marylene commited on
Commit
9549278
·
verified ·
1 Parent(s): c7fcbdc

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -12
app.py CHANGED
@@ -67,39 +67,40 @@ Outils autorisés :
67
  - python_interpreter # autorisé uniquement si nécessaire pour manipuler des listes/dicts
68
 
69
  Règles STRICTES de sortie :
70
- - Tu dois terminer par un UNIQUE objet JSON valide via final_answer({...}).
71
- - N’écris AUCUNE phrase, AUCUN commentaire, AUCUN bloc de code dans ta réponse finale.
72
- - N’utilise PAS de backticks ``` dans la réponse finale.
73
- - Le JSON final DOIT contenir: final, alternatives, candidates_top, explanation.
74
 
75
  Branchements selon l’EAN :
76
- - Si l’EAN est vide, "N/A", non numérique, longueur non autorisée (≠ 8/12/13/14) ou clé GS1 invalide MODE SANS EAN.
77
- - Sinon MODE AVEC EAN.
78
 
79
  Pipeline — MODE AVEC EAN (EAN valide) :
80
  1) v = validate_ean(ean)
81
- 2) off = openfoodfacts_product_by_ean(ean) # si off.ok != True, ignore off
82
  3) offmap = map_off_to_coicop(off_payload=off) # ou map_off_to_coicop(product_name, categories_tags, ingredients_text, ...) si utile
83
  4) rx = coicop_regex_rules(text=LIBELLÉ UTILISATEUR)
84
  5) sem = coicop_semantic_similarity(text=LIBELLÉ UTILISATEUR, topk=5)
85
  6) merged = merge_candidates(candidates_lists=[offmap, rx, sem], min_k=3, fallback_bias="cheese")
86
  7) res = resolve_coicop_candidates(json_lists=[merged], topn=3)
87
- Appelle immédiatement final_answer(res)
88
 
89
  Pipeline — MODE SANS EAN (EAN vide/invalide) :
90
  4) rx = coicop_regex_rules(text=LIBELLÉ UTILISATEUR)
91
  5) sem = coicop_semantic_similarity(text=LIBELLÉ UTILISATEUR, topk=5)
92
  6) merged = merge_candidates(candidates_lists=[rx, sem], min_k=3, fallback_bias="cheese")
93
  7) res = resolve_coicop_candidates(json_lists=[merged], topn=3)
94
- Appelle immédiatement final_answer(res)
95
 
96
  Contraintes d’usage :
97
- - N’utilise python_interpreter que pour des manipulations de listes/dicts si merge_candidates ne suffit pas. Pas de fichiers, pas d’IO externes.
98
- - web_search / web_get sont optionnels (utilise-les seulement si rx+sem sont insuffisants).
99
- - Ne fais aucun “print”, ni d’explication hors du JSON final.
100
  """
101
 
102
 
 
103
  def classify(label: str, ean: str):
104
  label = (label or "").strip()
105
  ean = (ean or "").strip()
 
67
  - python_interpreter # autorisé uniquement si nécessaire pour manipuler des listes/dicts
68
 
69
  Règles STRICTES de sortie :
70
+ - Termine par un UNIQUE objet JSON valide en appelant final_answer avec cet objet.
71
+ - N’écris aucun texte hors de l’objet JSON final.
72
+ - N’utilise pas de backticks.
73
+ - Le JSON final doit contenir les clés: final, alternatives, candidates_top, explanation.
74
 
75
  Branchements selon l’EAN :
76
+ - Si l’EAN est vide, égal à N/A, non numérique, de longueur différente de 8, 12, 13 ou 14, ou si la clé GS1 est invalide, alors utiliser le MODE SANS EAN.
77
+ - Sinon utiliser le MODE AVEC EAN.
78
 
79
  Pipeline — MODE AVEC EAN (EAN valide) :
80
  1) v = validate_ean(ean)
81
+ 2) off = openfoodfacts_product_by_ean(ean) # si off.ok != True, ignorer off
82
  3) offmap = map_off_to_coicop(off_payload=off) # ou map_off_to_coicop(product_name, categories_tags, ingredients_text, ...) si utile
83
  4) rx = coicop_regex_rules(text=LIBELLÉ UTILISATEUR)
84
  5) sem = coicop_semantic_similarity(text=LIBELLÉ UTILISATEUR, topk=5)
85
  6) merged = merge_candidates(candidates_lists=[offmap, rx, sem], min_k=3, fallback_bias="cheese")
86
  7) res = resolve_coicop_candidates(json_lists=[merged], topn=3)
87
+ Appeler immédiatement final_answer avec res (objet JSON complet).
88
 
89
  Pipeline — MODE SANS EAN (EAN vide/invalide) :
90
  4) rx = coicop_regex_rules(text=LIBELLÉ UTILISATEUR)
91
  5) sem = coicop_semantic_similarity(text=LIBELLÉ UTILISATEUR, topk=5)
92
  6) merged = merge_candidates(candidates_lists=[rx, sem], min_k=3, fallback_bias="cheese")
93
  7) res = resolve_coicop_candidates(json_lists=[merged], topn=3)
94
+ Appeler immédiatement final_answer avec res (objet JSON complet).
95
 
96
  Contraintes d’usage :
97
+ - Utiliser python_interpreter uniquement pour manipuler des listes ou des dictionnaires si merge_candidates ne suffit pas. Ne pas créer de fichiers ni faire d’IO externes.
98
+ - web_search et web_get sont optionnels; ne les utiliser que si rx et sem sont insuffisants.
99
+ - Ne rien imprimer ni ajouter d’explications hors du JSON final.
100
  """
101
 
102
 
103
+
104
  def classify(label: str, ean: str):
105
  label = (label or "").strip()
106
  ean = (ean or "").strip()