stivenDR14
first try
fb513c1
# 🤖 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! 🎉