danlvr commited on
Commit
db8ff9e
·
verified ·
1 Parent(s): 5a19dca

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -21
app.py CHANGED
@@ -5,32 +5,25 @@ import pandas as pd
5
  import time
6
  import traceback
7
 
8
- from smolagents import CodeAgent, LiteLLMModel, DuckDuckGoSearchTool, VisitWebpageTool
9
 
10
  # --- Constantes ---
11
  DEFAULT_API_URL = "https://agents-course-unit4-scoring.hf.space"
12
 
13
- # --- HACK DE RATE LIMIT: Modelo Throttled ---
14
- # Sobrescrevemos a classe base para injetar uma pausa forçada ANTES de cada requisição
15
- class ThrottledGemini(LiteLLMModel):
16
- def generate(self, *args, **kwargs):
17
- print("⏳ [Rate Limit Hack] Pausando 15s antes da chamada da API para respeitar os 5 RPM do Gemini 2.5...")
18
- time.sleep(15)
19
- return super().generate(*args, **kwargs)
20
-
21
- # --- Definição do Agente com Gemini ---
22
  class BasicAgent:
23
  def __init__(self):
24
- print("Inicializando CodeAgent de produção com Gemini 2.5...")
25
 
26
- gemini_key = os.environ.get("GEMINI_API_KEY")
27
- if not gemini_key:
28
- raise ValueError("⚠️ GEMINI_API_KEY não encontrada! Verifique os Secrets do Space.")
29
 
30
- # Usamos nossa classe customizada que faz as pausas automáticas!
31
- self.model = ThrottledGemini(
32
- model_id="gemini/gemini-2.5-flash",
33
- api_key=gemini_key
 
34
  )
35
 
36
  self.agent = CodeAgent(
@@ -39,7 +32,7 @@ class BasicAgent:
39
  add_base_tools=True,
40
  max_steps=12
41
  )
42
- print("Agente inicializado com sucesso usando Gemini 2.5 Flash.")
43
 
44
  def __call__(self, question: str) -> str:
45
  print(f"Agente recebeu a pergunta (primeiros 50 chars): {question[:50]}...")
@@ -142,7 +135,8 @@ def run_and_submit_all(profile: gr.OAuthProfile | None):
142
  traceback.print_exc()
143
  results_log.append({"Task ID": task_id, "Question": question_text[:120] + "...", "Submitted Answer": f"AGENT ERROR: {e}"})
144
 
145
- print("Pausando por 10 segundos extras entre as perguntas...")
 
146
  time.sleep(10)
147
 
148
  if not answers_payload:
@@ -168,7 +162,7 @@ def run_and_submit_all(profile: gr.OAuthProfile | None):
168
  return status_message, pd.DataFrame(results_log)
169
 
170
  with gr.Blocks() as demo:
171
- gr.Markdown("# Runner de Avaliação do Agente (Powered by Gemini 2.5 Flash)")
172
  gr.Markdown(
173
  """
174
  **Instruções:**
 
5
  import time
6
  import traceback
7
 
8
+ from smolagents import CodeAgent, OpenAIServerModel, DuckDuckGoSearchTool, VisitWebpageTool
9
 
10
  # --- Constantes ---
11
  DEFAULT_API_URL = "https://agents-course-unit4-scoring.hf.space"
12
 
13
+ # --- Definição do Agente com OpenAI ---
 
 
 
 
 
 
 
 
14
  class BasicAgent:
15
  def __init__(self):
16
+ print("Inicializando CodeAgent de produção com OpenAI (GPT-4o)...")
17
 
18
+ openai_key = os.environ.get("OPENAI_API_KEY")
19
+ if not openai_key:
20
+ raise ValueError("⚠️ OPENAI_API_KEY não encontrada! Verifique os Secrets do Space.")
21
 
22
+ # Inicializa o modelo GPT-4o
23
+ # Nota: Se quiser economizar créditos, você pode trocar "gpt-4o" por "gpt-4o-mini"
24
+ self.model = OpenAIServerModel(
25
+ model_id="gpt-4o",
26
+ api_key=openai_key
27
  )
28
 
29
  self.agent = CodeAgent(
 
32
  add_base_tools=True,
33
  max_steps=12
34
  )
35
+ print("Agente inicializado com sucesso usando OpenAI.")
36
 
37
  def __call__(self, question: str) -> str:
38
  print(f"Agente recebeu a pergunta (primeiros 50 chars): {question[:50]}...")
 
135
  traceback.print_exc()
136
  results_log.append({"Task ID": task_id, "Question": question_text[:120] + "...", "Submitted Answer": f"AGENT ERROR: {e}"})
137
 
138
+ # Uma pausa leve (10s) apenas por boas práticas de rede
139
+ print("Pausando brevemente entre as perguntas...")
140
  time.sleep(10)
141
 
142
  if not answers_payload:
 
162
  return status_message, pd.DataFrame(results_log)
163
 
164
  with gr.Blocks() as demo:
165
+ gr.Markdown("# Runner de Avaliação do Agente (Powered by GPT-4o)")
166
  gr.Markdown(
167
  """
168
  **Instruções:**