WilliamRabuel commited on
Commit
09d2e70
·
verified ·
1 Parent(s): 5804b96

Update agent.py

Browse files
Files changed (1) hide show
  1. agent.py +18 -2
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
- Formate et retourne la réponse finale de l'agent.
 
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):