Files changed (1) hide show
  1. app.py +36 -6
app.py CHANGED
@@ -9,15 +9,45 @@ import pandas as pd
9
  DEFAULT_API_URL = "https://agents-course-unit4-scoring.hf.space"
10
 
11
  # --- Basic Agent Definition ---
12
- # ----- THIS IS WERE YOU CAN BUILD WHAT YOU WANT ------
 
13
  class BasicAgent:
14
  def __init__(self):
15
- print("BasicAgent initialized.")
 
 
 
 
 
 
 
 
 
16
  def __call__(self, question: str) -> str:
17
- print(f"Agent received question (first 50 chars): {question[:50]}...")
18
- fixed_answer = "This is a default answer."
19
- print(f"Agent returning fixed answer: {fixed_answer}")
20
- return fixed_answer
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
 
22
  def run_and_submit_all( profile: gr.OAuthProfile | None):
23
  """
 
9
  DEFAULT_API_URL = "https://agents-course-unit4-scoring.hf.space"
10
 
11
  # --- Basic Agent Definition ---
12
+ from smolagents import CodeAgent, HfApiModel, DuckDuckGoSearchTool
13
+
14
  class BasicAgent:
15
  def __init__(self):
16
+ print("Initialisation de l'agent intelligent avec smolagents...")
17
+ # On utilise un modèle puissant et gratuit via l'API Serverless de Hugging Face
18
+ self.model = HfApiModel("Qwen/Qwen2.5-Coder-32B-Instruct")
19
+
20
+ # On donne à l'agent un outil pour chercher sur le web
21
+ self.tools = [DuckDuckGoSearchTool()]
22
+
23
+ # On crée le CodeAgent
24
+ self.agent = CodeAgent(tools=self.tools, model=self.model, add_base_tools=True)
25
+
26
  def __call__(self, question: str) -> str:
27
+ print(f"Agent received question: {question[:100]}...")
28
+
29
+ # On force l'agent à respecter le format strict de GAIA
30
+ prompt = f"""
31
+ Tu es un agent IA expert chargé de répondre à une question du benchmark GAIA.
32
+ Voici la question :
33
+ {question}
34
+
35
+ Utilise tes outils de recherche pour trouver la réponse exacte.
36
+ ATTENTION : Tu dois formuler ta réponse finale pour qu'elle corresponde EXACTEMENT à la solution (Exact Match).
37
+ - Si c'est un nombre, renvoie juste le nombre (sans unités, sans virgules).
38
+ - Si c'est un nom propre, renvoie juste le nom (sans articles).
39
+ - Ne fais pas de phrases. Ne mets pas de ponctuation à la fin.
40
+ Retourne UNIQUEMENT la valeur demandée.
41
+ """
42
+
43
+ try:
44
+ # L'agent réfléchit et exécute ses actions
45
+ result = self.agent.run(prompt)
46
+ print(f"Agent returning answer: {result}")
47
+ return str(result)
48
+ except Exception as e:
49
+ print(f"Agent error: {e}")
50
+ return "Error"
51
 
52
  def run_and_submit_all( profile: gr.OAuthProfile | None):
53
  """