| # 🤖 Advanced AI Agent with LlamaIndex | |
| Este es un agente de IA avanzado construido con LlamaIndex que incluye capacidades de CodeAct, búsqueda web y herramientas matemáticas. | |
| ## 🚀 Características | |
| ### 🧠 Capacidades del Agente | |
| - **Razonamiento Avanzado**: Utiliza LlamaIndex con modelos de Hugging Face | |
| - **CodeAct Agent**: Puede escribir y ejecutar código Python para resolver problemas complejos | |
| - **Herramientas Matemáticas**: Cálculos básicos y avanzados | |
| - **Búsqueda Web**: Integración con DuckDuckGo y Wikipedia | |
| - **Modo Fallback**: Funciona incluso sin configuración completa | |
| ### 🛠 Herramientas Disponibles | |
| 1. **Matemáticas**: suma, resta, multiplicación, división, potencias, porcentajes | |
| 2. **Búsqueda DuckDuckGo**: Búsquedas web en tiempo real | |
| 3. **Wikipedia**: Búsqueda de información factual | |
| 4. **Peticiones Web**: Llamadas a APIs | |
| 5. **Ejecución de Código**: Python con librerías como numpy, pandas, math | |
| ## ⚙️ Configuración | |
| ### 1. Instalar Dependencias | |
| ```bash | |
| pip install -r requirements.txt | |
| ``` | |
| ### 2. Configurar Variables de Entorno | |
| Crea un archivo `.env` con: | |
| ```bash | |
| # Token de Hugging Face (opcional pero recomendado) | |
| HUGGINGFACE_TOKEN=tu_token_aqui | |
| ``` | |
| Para obtener tu token: | |
| 1. Ve a [Hugging Face Settings](https://huggingface.co/settings/tokens) | |
| 2. Crea un nuevo token | |
| 3. Copia el token en tu archivo `.env` | |
| ### 3. Usar el Agente | |
| #### Desde Python: | |
| ```python | |
| from agent import BasicAgent | |
| # Inicializar el agente | |
| agent = BasicAgent() | |
| # Hacer una pregunta | |
| result = agent("¿Cuál es la raíz cuadrada de 144?") | |
| print(result) | |
| ``` | |
| #### Desde la Interfaz Gradio: | |
| ```bash | |
| python app.py | |
| ``` | |
| Luego ve a `http://127.0.0.1:7860` | |
| ## 🎯 Formato de Respuestas | |
| El agente está configurado para dar respuestas en el formato: | |
| ``` | |
| [Explicación del razonamiento...] | |
| FINAL ANSWER: [RESPUESTA_FINAL] | |
| ``` | |
| ### Reglas para FINAL ANSWER: | |
| - **Números**: Sin comas ni símbolos (ej: `42` no `42,000` o `$42`) | |
| - **Texto**: Sin artículos ni abreviaciones (ej: `New York` no `NYC`) | |
| - **Listas**: Separadas por comas siguiendo las reglas anteriores | |
| ## 📝 Ejemplos de Uso | |
| ### Matemáticas Básicas | |
| ```python | |
| agent("¿Cuánto es 15 + 27?") | |
| # FINAL ANSWER: 42 | |
| ``` | |
| ### Cálculos Complejos | |
| ```python | |
| agent("Calcula el 15% de 240 y súmale 50") | |
| # El agente escribirá código: (240 * 15 / 100) + 50 | |
| # FINAL ANSWER: 86 | |
| ``` | |
| ### Búsqueda de Información | |
| ```python | |
| agent("¿Cuál es la capital de Francia?") | |
| # Buscará en Wikipedia | |
| # FINAL ANSWER: Paris | |
| ``` | |
| ### Problemas Complejos | |
| ```python | |
| agent("Necesito calcular la suma de los primeros 10 números de Fibonacci") | |
| # El agente escribirá código para calcular Fibonacci | |
| # FINAL ANSWER: 143 | |
| ``` | |
| ## 🔧 Modos de Funcionamiento | |
| ### 1. Modo Completo (con HUGGINGFACE_TOKEN) | |
| - Utiliza modelos de IA avanzados | |
| - CodeAct Agent completo | |
| - Todas las herramientas disponibles | |
| ### 2. Modo Básico (sin token) | |
| - Procesamiento básico con expresiones regulares | |
| - Matemáticas simples | |
| - Respuestas limitadas pero funcionales | |
| ## 🚨 Importante para Producción | |
| ⚠️ **Seguridad**: El agente puede ejecutar código Python. En producción: | |
| - Usar sandboxing (Docker, contenedores) | |
| - Validar entradas del usuario | |
| - Limitar acceso a recursos del sistema | |
| ## 🐛 Resolución de Problemas | |
| ### Error: No se puede importar LlamaIndex | |
| ```bash | |
| pip install --upgrade llama-index-core llama-index-llms-huggingface | |
| ``` | |
| ### Error: Token inválido | |
| - Verifica que tu token de Hugging Face sea válido | |
| - Asegúrate que el archivo `.env` esté en el directorio correcto | |
| ### Error: Modelo no encontrado | |
| - Algunos modelos requieren acceso especial | |
| - Prueba con modelos públicos como `microsoft/DialoGPT-medium` | |
| ## 📚 Personalización | |
| ### Cambiar el Modelo | |
| En `agent.py`, modifica: | |
| ```python | |
| model_name="tu-modelo-preferido" | |
| ``` | |
| ### Agregar Nuevas Herramientas | |
| 1. Define tu función | |
| 2. Crea un `FunctionTool.from_defaults(fn=tu_funcion)` | |
| 3. Agrégala a `self.tools` | |
| ### Personalizar el Prompt | |
| Modifica la variable `enhanced_prompt` en el método `__call__` | |
| --- | |
| ¡Tu agente de IA está listo para resolver problemas complejos! 🎉 | |