Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -5,32 +5,25 @@ import pandas as pd
|
|
| 5 |
import time
|
| 6 |
import traceback
|
| 7 |
|
| 8 |
-
from smolagents import CodeAgent,
|
| 9 |
|
| 10 |
# --- Constantes ---
|
| 11 |
DEFAULT_API_URL = "https://agents-course-unit4-scoring.hf.space"
|
| 12 |
|
| 13 |
-
# ---
|
| 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
|
| 25 |
|
| 26 |
-
|
| 27 |
-
if not
|
| 28 |
-
raise ValueError("⚠️
|
| 29 |
|
| 30 |
-
#
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
|
|
|
| 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
|
| 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 |
-
|
|
|
|
| 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
|
| 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:**
|