metadata
			title: GAIA Agent - Curse Agents Unit 4
emoji: 🦙
colorFrom: blue
colorTo: indigo
sdk: gradio
sdk_version: 5.49.1
app_file: app.py
pinned: false
license: mit
short_description: Agente GAIA con modelos locales o APIs (HF Course Unit 4)
hf_oauth: true
hf_oauth_expiration_minutes: 480
� Agente GAIA Flexible
Agente AI que puede usar modelos locales (Llama 2) o APIs externas (Gemini, GPT, Claude) para resolver tareas del benchmark GAIA Level 1.
¡Configurable fácilmente en config.py!
Proyecto para el Curso de Agentes de HuggingFace - Unit 4 Hands-on.
🚀 Características
Opción 1: Modelo LOCAL (Llama 2)
- ✅ Llama 2 7B - Open source, cargado en memoria (8-bit)
- ⚡ Más rápido - Sin latencia de red (~1-2s por respuesta)
- 🔒 Sin rate limits - Modelo siempre disponible
- 💾 16GB RAM disponibles - Usa ~7GB con quantización 8-bit
- ⏳ Primera carga: 30-60s, luego instantáneo
Opción 2: APIs Externas
- ✅ Google Gemini - Rápido y gratuito
- ✅ OpenAI GPT - Alta calidad
- ✅ Anthropic Claude - Razonamiento avanzado
Características Comunes
- ✅ OAuth de HuggingFace - Autenticación segura
- ✅ OCR con Tesseract - Procesamiento de imágenes
- ✅ Validación GAIA - Formato estricto de respuestas
- ✅ Configuración fácil - Cambiar modelo en config.py
📦 Configuración
Paso 1: Elegir Modelo (config.py)
# Para modelo LOCAL (Llama 2)
USE_LOCAL_MODEL = True
USE_API_MODEL = False
# Para API externa (Gemini/GPT/Claude)
USE_LOCAL_MODEL = False
USE_API_MODEL = True
API_MODEL_CONFIG = {
    "model_id": "gemini/gemini-2.0-flash-exp",  # o "gpt-4o-mini" o "claude-3-5-sonnet-20241022"
    ...
}
Paso 2: Configurar Secrets
En Settings → Repository secrets, agrega:
Para modelo local:
- Nombre: HF_TOKEN
- Valor: Tu token de HF (https://huggingface.co/settings/tokens)
Para Gemini:
- Nombre: GEMINI_API_KEY
- Valor: https://aistudio.google.com/apikey
Para OpenAI:
- Nombre: OPENAI_API_KEY
- Valor: https://platform.openai.com/api-keys
Para Claude:
- Nombre: ANTHROPIC_API_KEY
- Valor: https://console.anthropic.com/
Paso 3: Ejecutar
- Inicia sesión con tu cuenta de HuggingFace
- Si usas modelo local, espera 30-60s en la primera ejecución
- Ejecuta la evaluación
🏗️ Arquitectura
app.py               → Interfaz Gradio con OAuth
config.py            → ⚙️ CONFIGURACIÓN DE MODELO
agents.py            → Clase Agent principal
model.py             → Wrapper para APIs (Gemini/GPT/Claude)
model_llama_local.py → Wrapper para modelo local (Llama 2)
tools.py             → OCR y procesamiento de archivos
tool.py              → Registro de herramientas
final_answer.py      → Validaciones de formato GAIA
api.py               → Cliente HTTP para API del curso
🎯 Comparación de Opciones
| Característica | Modelo Local | API Externa | 
|---|---|---|
| Velocidad | ⚡ Rápido (1-2s) | 🐌 Depende de red (2-5s) | 
| Rate Limits | ❌ Ninguno | ✅ Sí (según proveedor) | 
| Costo | 💰 Gratis (usa RAM) | 💰 Gratis con límites | 
| RAM necesaria | 📊 ~7-10GB | 📊 ~1-2GB | 
| Primera carga | ⏳ 30-60s | ⚡ Instantáneo | 
| Calidad | 🎯 Buena (7B params) | 🎯 Excelente (modelos grandes) | 
Recomendación: Usa modelo LOCAL si quieres velocidad y sin límites. Usa API si prefieres mejor calidad o menos uso de RAM.
🎯 Flujo de Trabajo
- Usuario inicia sesión con OAuth
- Sistema obtiene preguntas desde la API del curso
- Agente procesa cada pregunta con Gemini
- Sistema valida formato de respuestas (GAIA strict)
- Respuestas se envían a la API para evaluación
- Resultados se muestran en tabla Gradio
💡 ¿Por qué Gemini?
- Gratis con límites generosos (gratuity API tier)
- Rápido - Gemini Flash optimizado para baja latencia
- Multimodal - Procesa texto e imágenes
- Sin tarjeta - No requiere método de pago
📚 Recursos
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
