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