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

Update quick_deploy_agent.py

Browse files
Files changed (1) hide show
  1. quick_deploy_agent.py +48 -47
quick_deploy_agent.py CHANGED
@@ -728,54 +728,55 @@ if __name__ == "__main__":
728
 
729
  agent = build_agent()
730
  task = f"""\
731
- Classe ce produit en COICOP:
732
- EAN: {ean}
733
- Libellé: {label}
734
-
735
- Outils autorisés :
736
- - validate_ean
737
- - openfoodfacts_product_by_ean
738
- - map_off_to_coicop
739
- - coicop_regex_rules
740
- - coicop_semantic_similarity
741
- - merge_candidates
742
- - resolve_coicop_candidates
743
- - web_search
744
- - web_get
745
- - python_interpreter # autorisé uniquement si nécessaire pour manipuler des listes/dicts
746
-
747
- Règles STRICTES de sortie :
748
- - Tu dois terminer par un UNIQUE objet JSON valide via final_answer({...}).
749
- - N’écris AUCUNE phrase, AUCUN commentaire, AUCUN bloc de code dans ta réponse finale.
750
- - N’utilise PAS de backticks ``` dans la réponse finale.
751
- - Le JSON final DOIT contenir: final, alternatives, candidates_top, explanation.
752
-
753
- Branchements selon l’EAN :
754
- - 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.
755
- - Sinon MODE AVEC EAN.
756
-
757
- Pipeline — MODE AVEC EAN (EAN valide) :
758
- 1) v = validate_ean(ean)
759
- 2) off = openfoodfacts_product_by_ean(ean) # si off.ok != True, ignore off
760
- 3) offmap = map_off_to_coicop(off_payload=off) # ou map_off_to_coicop(product_name, categories_tags, ingredients_text, ...) si utile
761
- 4) rx = coicop_regex_rules(text=LIBELLÉ UTILISATEUR)
762
- 5) sem = coicop_semantic_similarity(text=LIBELLÉ UTILISATEUR, topk=5)
763
- 6) merged = merge_candidates(candidates_lists=[offmap, rx, sem], min_k=3, fallback_bias="cheese")
764
- 7) res = resolve_coicop_candidates(json_lists=[merged], topn=3)
765
- Appelle immédiatement final_answer(res)
766
-
767
- Pipeline — MODE SANS EAN (EAN vide/invalide) :
768
- 4) rx = coicop_regex_rules(text=LIBELLÉ UTILISATEUR)
769
- 5) sem = coicop_semantic_similarity(text=LIBELLÉ UTILISATEUR, topk=5)
770
- 6) merged = merge_candidates(candidates_lists=[rx, sem], min_k=3, fallback_bias="cheese")
771
- 7) res = resolve_coicop_candidates(json_lists=[merged], topn=3)
772
- Appelle immédiatement final_answer(res)
773
-
774
- Contraintes d’usage :
775
- - N’utilise python_interpreter que pour des manipulations de listes/dicts si merge_candidates ne suffit pas. Pas de fichiers, pas d’IO externes.
776
- - web_search / web_get sont optionnels (utilise-les seulement si rx+sem sont insuffisants).
777
- - Ne fais aucun “print”, ni d’explication hors du JSON final.
778
  """
 
779
  # out = agent.run(task)
780
  out = run_task_with_fallback(task)
781
  print(parse_result(out))
 
728
 
729
  agent = build_agent()
730
  task = f"""\
731
+ Classe ce produit en COICOP:
732
+ EAN: {ean}
733
+ Libellé: {label}
734
+
735
+ Outils autorisés :
736
+ - validate_ean
737
+ - openfoodfacts_product_by_ean
738
+ - map_off_to_coicop
739
+ - coicop_regex_rules
740
+ - coicop_semantic_similarity
741
+ - merge_candidates
742
+ - resolve_coicop_candidates
743
+ - web_search
744
+ - web_get
745
+ - python_interpreter # autorisé uniquement si nécessaire pour manipuler des listes/dicts
746
+
747
+ Règles STRICTES de sortie :
748
+ - Termine par un UNIQUE objet JSON valide en appelant final_answer avec cet objet.
749
+ - N’écris aucun texte hors de l’objet JSON final.
750
+ - N’utilise pas de backticks.
751
+ - Le JSON final doit contenir les clés: final, alternatives, candidates_top, explanation.
752
+
753
+ Branchements selon l’EAN :
754
+ - 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, passer en MODE SANS EAN.
755
+ - Sinon, MODE AVEC EAN.
756
+
757
+ Pipeline — MODE AVEC EAN (EAN valide) :
758
+ 1) v = validate_ean(ean)
759
+ 2) off = openfoodfacts_product_by_ean(ean) # si off.ok != True, ignorer off
760
+ 3) offmap = map_off_to_coicop(off_payload=off) # ou map_off_to_coicop(product_name, categories_tags, ingredients_text, ...) si utile
761
+ 4) rx = coicop_regex_rules(text=LIBELLÉ UTILISATEUR)
762
+ 5) sem = coicop_semantic_similarity(text=LIBELLÉ UTILISATEUR, topk=5)
763
+ 6) merged = merge_candidates(candidates_lists=[offmap, rx, sem], min_k=3, fallback_bias="cheese")
764
+ 7) res = resolve_coicop_candidates(json_lists=[merged], topn=3)
765
+ Appeler immédiatement final_answer avec res (objet JSON complet).
766
+
767
+ Pipeline — MODE SANS EAN (EAN vide/invalide) :
768
+ 4) rx = coicop_regex_rules(text=LIBELLÉ UTILISATEUR)
769
+ 5) sem = coicop_semantic_similarity(text=LIBELLÉ UTILISATEUR, topk=5)
770
+ 6) merged = merge_candidates(candidates_lists=[rx, sem], min_k=3, fallback_bias="cheese")
771
+ 7) res = resolve_coicop_candidates(json_lists=[merged], topn=3)
772
+ Appeler immédiatement final_answer avec res (objet JSON complet).
773
+
774
+ Contraintes d’usage :
775
+ - Utiliser python_interpreter uniquement pour manipuler des listes/dicts si merge_candidates ne suffit pas. Pas de fichiers, pas d’IO externes.
776
+ - web_search / web_get sont optionnels (ne les utiliser que si rx + sem sont insuffisants).
777
+ - Ne rien imprimer ni ajouter d’explications hors du JSON final.
778
  """
779
+
780
  # out = agent.run(task)
781
  out = run_task_with_fallback(task)
782
  print(parse_result(out))