Spaces:
Sleeping
Sleeping
interdire tout contrôle de flux dans le code généré par l'agent
Browse files- quick_deploy_agent.py +30 -23
quick_deploy_agent.py
CHANGED
|
@@ -740,41 +740,48 @@ if __name__ == "__main__":
|
|
| 740 |
- coicop_semantic_similarity
|
| 741 |
- merge_candidates
|
| 742 |
- resolve_coicop_candidates
|
| 743 |
-
-
|
| 744 |
-
|
| 745 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 746 |
|
| 747 |
Règles STRICTES de sortie :
|
| 748 |
-
- Termine par un UNIQUE objet JSON valide en appelant final_answer avec cet objet.
|
| 749 |
-
-
|
| 750 |
-
- N’utilise pas de backticks.
|
| 751 |
- Le JSON final doit contenir les clés: final, alternatives, candidates_top, explanation.
|
| 752 |
|
| 753 |
-
Branchements
|
| 754 |
-
-
|
| 755 |
-
- Sinon, MODE
|
| 756 |
|
| 757 |
-
Pipeline — MODE AVEC EAN
|
| 758 |
-
1) v = validate_ean(
|
| 759 |
-
2) off = openfoodfacts_product_by_ean(
|
| 760 |
-
3) offmap = map_off_to_coicop(off_payload=off)
|
| 761 |
-
4) rx = coicop_regex_rules(text=
|
| 762 |
-
5) sem = coicop_semantic_similarity(text=
|
| 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
|
| 768 |
-
|
| 769 |
-
|
| 770 |
-
|
| 771 |
-
|
| 772 |
→ Appeler immédiatement final_answer avec res (objet JSON complet).
|
| 773 |
|
| 774 |
Contraintes d’usage :
|
| 775 |
-
-
|
| 776 |
-
-
|
| 777 |
-
- Ne rien imprimer ni ajouter d’explications hors du JSON final.
|
| 778 |
"""
|
| 779 |
|
| 780 |
# out = agent.run(task)
|
|
|
|
| 740 |
- coicop_semantic_similarity
|
| 741 |
- merge_candidates
|
| 742 |
- resolve_coicop_candidates
|
| 743 |
+
- python_interpreter # UNIQUEMENT pour lignes simples d’assignation ou d’appel d’outil (voir ci-dessous)
|
| 744 |
+
|
| 745 |
+
Règles STRICTES d’écriture de code :
|
| 746 |
+
- Pas de contrôle de flux ni structure Python : AUCUN if/else/for/while/try/with/def/class.
|
| 747 |
+
- AUCUN print, AUCUN logging, AUCUNE concaténation multi-ligne, AUCUN caractère « \ » de continuation.
|
| 748 |
+
- Chaque bloc de code doit contenir **une seule** instruction Python, sur **une** ligne.
|
| 749 |
+
- Au début, crée deux variables :
|
| 750 |
+
1) EAN_STR = "{ean}" # chaîne simple
|
| 751 |
+
2) LBL = \"\"\"{label}\"\"\" # triple guillemets pour éviter les erreurs de guillemets
|
| 752 |
+
- Pour tous les outils qui prennent le libellé, passe **LBL** (ne colle jamais le libellé en littéral).
|
| 753 |
+
- `validate_ean` renvoie un objet { "valid": bool, "normalized": "..." } — ne l’utilise pas comme booléen en code.
|
| 754 |
+
- Tu choisis le chemin (AVEC ou SANS EAN) par raisonnement, **sans** écrire d’instructions conditionnelles en code. Tu n’appelles que les outils utiles.
|
| 755 |
|
| 756 |
Règles STRICTES de sortie :
|
| 757 |
+
- Termine par un UNIQUE objet JSON valide en appelant final_answer avec cet objet (pas de texte hors JSON).
|
| 758 |
+
- Pas de backticks.
|
|
|
|
| 759 |
- Le JSON final doit contenir les clés: final, alternatives, candidates_top, explanation.
|
| 760 |
|
| 761 |
+
Branchements (à décider sans écrire de if en code) :
|
| 762 |
+
- MODE AVEC EAN si EAN_STR n’est pas "N/A" ET si validate_ean(EAN_STR) indique valid = True ET si OpenFoodFacts retourne ok = True.
|
| 763 |
+
- Sinon, MODE SANS EAN.
|
| 764 |
|
| 765 |
+
Pipeline — MODE AVEC EAN :
|
| 766 |
+
1) v = validate_ean(EAN_STR)
|
| 767 |
+
2) off = openfoodfacts_product_by_ean(EAN_STR)
|
| 768 |
+
3) offmap = map_off_to_coicop(off_payload=off)
|
| 769 |
+
4) rx = coicop_regex_rules(text=LBL)
|
| 770 |
+
5) sem = coicop_semantic_similarity(text=LBL, topk=5)
|
| 771 |
6) merged = merge_candidates(candidates_lists=[offmap, rx, sem], min_k=3, fallback_bias="cheese")
|
| 772 |
7) res = resolve_coicop_candidates(json_lists=[merged], topn=3)
|
| 773 |
→ Appeler immédiatement final_answer avec res (objet JSON complet).
|
| 774 |
|
| 775 |
+
Pipeline — MODE SANS EAN :
|
| 776 |
+
1) rx = coicop_regex_rules(text=LBL)
|
| 777 |
+
2) sem = coicop_semantic_similarity(text=LBL, topk=5)
|
| 778 |
+
3) merged = merge_candidates(candidates_lists=[rx, sem], min_k=3, fallback_bias="cheese")
|
| 779 |
+
4) res = resolve_coicop_candidates(json_lists=[merged], topn=3)
|
| 780 |
→ Appeler immédiatement final_answer avec res (objet JSON complet).
|
| 781 |
|
| 782 |
Contraintes d’usage :
|
| 783 |
+
- N’utilise python_interpreter que pour des **lignes uniques** d’assignation ou d’appel d’outil (format: `var = tool_name(args)` ou `tool_name(args)`).
|
| 784 |
+
- Ne crée aucun fichier, pas d’IO externes.
|
|
|
|
| 785 |
"""
|
| 786 |
|
| 787 |
# out = agent.run(task)
|