Spaces:
Sleeping
Sleeping
Update agent.py
Browse files
agent.py
CHANGED
@@ -31,11 +31,27 @@ class OrchestratorAgent(MultiStepAgent):
|
|
31 |
"When you have the final answer, present it clearly to the user."
|
32 |
)
|
33 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
def render_final_answer(self, final_context: dict, final_response: str) -> str:
|
35 |
"""
|
36 |
-
|
|
|
37 |
"""
|
38 |
-
# Pour l'instant, nous retournons simplement la réponse brute du modèle.
|
39 |
return final_response
|
40 |
|
41 |
class MonAgent(MultiStepAgent):
|
|
|
31 |
"When you have the final answer, present it clearly to the user."
|
32 |
)
|
33 |
|
34 |
+
def parse_plan(self, response: str) -> list[dict]:
|
35 |
+
"""
|
36 |
+
Cette méthode est OBLIGATOIRE. Elle prend le texte brut du modèle
|
37 |
+
et doit le transformer en une liste d'appels d'outils.
|
38 |
+
"""
|
39 |
+
# Le modèle est censé retourner du JSON, donc on le parse.
|
40 |
+
# On nettoie le texte pour enlever les ```json ... ``` que les modèles ajoutent souvent.
|
41 |
+
cleaned_response = response.strip().removeprefix("```json").removesuffix("```").strip()
|
42 |
+
try:
|
43 |
+
parsed_json = json.loads(cleaned_response)
|
44 |
+
return parsed_json.get("plan", [])
|
45 |
+
except json.JSONDecodeError:
|
46 |
+
print(f"⚠️ Erreur de parsing JSON, le plan sera vide. Réponse reçue:\n{response}")
|
47 |
+
return [] # En cas d'erreur, on retourne un plan vide pour éviter un crash.
|
48 |
+
|
49 |
+
|
50 |
def render_final_answer(self, final_context: dict, final_response: str) -> str:
|
51 |
"""
|
52 |
+
Cette méthode est OBLIGATOIRE. Elle est appelée quand le plan est vide
|
53 |
+
pour formater la réponse finale.
|
54 |
"""
|
|
|
55 |
return final_response
|
56 |
|
57 |
class MonAgent(MultiStepAgent):
|