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