Mahynlo
Meta Data Title modification
67384ab
---
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](https://huggingface.co/learn/agents-course/unit4/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)
```python
# 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
1. Inicia sesión con tu cuenta de HuggingFace
2. Si usas modelo local, espera 30-60s en la primera ejecución
3. 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
1. Usuario inicia sesión con OAuth
2. Sistema obtiene preguntas desde la API del curso
3. Agente procesa cada pregunta con Gemini
4. Sistema valida formato de respuestas (GAIA strict)
5. Respuestas se envían a la API para evaluación
6. 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
- [Curso de Agentes HF](https://huggingface.co/learn/agents-course)
- [GAIA Benchmark](https://huggingface.co/gaia-benchmark)
- [Google AI Studio](https://aistudio.google.com/apikey)
- [LiteLLM Docs](https://docs.litellm.ai/)
---
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference