Spaces:
Sleeping
Sleeping
Update quick_deploy_agent.py
Browse files- 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 |
-
|
| 732 |
-
|
| 733 |
-
|
| 734 |
-
|
| 735 |
-
|
| 736 |
-
|
| 737 |
-
|
| 738 |
-
|
| 739 |
-
|
| 740 |
-
|
| 741 |
-
|
| 742 |
-
|
| 743 |
-
|
| 744 |
-
|
| 745 |
-
|
| 746 |
-
|
| 747 |
-
|
| 748 |
-
|
| 749 |
-
|
| 750 |
-
|
| 751 |
-
|
| 752 |
-
|
| 753 |
-
|
| 754 |
-
|
| 755 |
-
|
| 756 |
-
|
| 757 |
-
|
| 758 |
-
|
| 759 |
-
|
| 760 |
-
|
| 761 |
-
|
| 762 |
-
|
| 763 |
-
|
| 764 |
-
|
| 765 |
-
|
| 766 |
-
|
| 767 |
-
|
| 768 |
-
|
| 769 |
-
|
| 770 |
-
|
| 771 |
-
|
| 772 |
-
|
| 773 |
-
|
| 774 |
-
|
| 775 |
-
|
| 776 |
-
|
| 777 |
-
|
| 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))
|