|
|
--- |
|
|
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 |
|
|
|