"Tu CSV nunca sale de tu ordenador. Tu IA, tus reglas."
Este repositorio contiene el código fuente de un Agente de Análisis de Datos Autónomo basico pero funcional, capaz de razonar, escribir código Python, generar gráficos y limpiar datos (ETL), ejecutándose totalmente en local utilizando Llama 3.1.
Este proyecto fue desarrollado en vivo durante el taller práctico organizado por IEEE CIS UNMSM (Universidad Nacional Mayor de San Marcos).
🎥 VER LA GRABACIÓN DEL TALLER AQUÍ
👨💻 ¿Te gusta este contenido? Sígueme en LinkedIn para enterarte de mis próximos talleres sobre IA, Agentes y Python:
- 🔒 Privacidad Total: Utiliza Ollama localmente. Tus datos sensibles no se envían a OpenAI ni a la nube.
- 🧠 Cerebro Llama 3.1 (8B): Configurado con One-Shot Prompting para evitar bucles infinitos y alucinaciones.
- 🛠️ Arquitectura Modular: Separación limpia entre Lógica (
agent.py) e Interfaz (app.py). - 🛡️ Resiliencia: Incluye un
custom_error_handlerque rescata respuestas válidas incluso si el modelo falla en el formato estricto. - ⚡ Velocidad: Gestión de entorno ultra-rápida con UV.
El proyecto sigue una arquitectura simple pero robusta:
| Archivo | Descripción |
|---|---|
app.py |
El Cuerpo (Frontend). Interfaz en Streamlit, gestión de sesión (st.session_state), subida de archivos y visualización de gráficos. |
agent.py |
El Cerebro (Backend). Configuración de LangChain, Prompt Engineering, Manejo de Errores y conexión con Ollama. |
requirements.txt |
Lista de dependencias optimizada. |
Este proyecto utiliza UV para una gestión de dependencias moderna y rápida.
- Tener instalado Ollama.
- Descargar el modelo Llama 3.1:
ollama pull llama3.1
- Tener instalado UV (opcional, pero recomendado). Si no, usa
pipnormal.
Clona el repositorio y ejecuta los siguientes comandos en tu terminal:
# 1. Crear entorno virtual (ultra rápido con uv)
uv venv
# 2. Activar el entorno (Windows)
.venv\Scripts\activate
# En Mac/Linux usa: source .venv/bin/activate
# 3. Instalar dependencias
uv pip install -r requirements.txt
# 4. Ejecutar la aplicación
uv run streamlit run app.pyEl agente utiliza el paradigma ReAct (Reason + Act) potenciado por un intérprete de Python.
-
Percibe: Lee tu pregunta (ej: "¿Cuál es el salario promedio?").
-
Piensa: Decide qué código necesita ejecutar (ej: df['salary'].mean()).
-
Actúa: Escribe y ejecuta el código en un entorno seguro local.
-
Observa: Lee el resultado y genera una respuesta natural o un gráfico.
Hemos implementado un Prompt Defensivo que incluye:
-
Stop Tokens implícitos: Para que el modelo no hable por el sistema.
-
One-Shot Learning: Un ejemplo completo de interacción correcta para guiar al modelo y evitar bucles.
-
Markdown forzado: Para que las tablas se vean perfectas en Streamlit.
🤝 Contribuciones ¡Las PR son bienvenidas! Si tienes ideas para mejorar el prompt o añadir nuevas herramientas, siéntete libre de contribuir.