Mahynlo
Meta Data Title modification
67384ab
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:

Para Gemini:

Para OpenAI:

Para Claude:

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


Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference