# 🤖 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! 🎉