Aplicación en Streamlit para optimizar la atención al cliente en e-commerce (Taller práctico #1). Incluye documentación en Markdown (fases 1 y 2) y demo ejecutable con prompts y RAG (fase 3).
| Fase | Contenido | Archivo |
|---|---|---|
| 1 | Selección y justificación del modelo (RAG + LLM, open-source / API opcional) | docs/fase1_modelo.md |
| 2 | Fortalezas, limitaciones y riesgos éticos | docs/fase2_analisis_etico.md |
| 3 | Ingeniería de prompts, encadenado en código y guía de despliegue | docs/fase3_prompts.md |
Implementación: data/orders.json (≥10 pedidos de prueba), data/return_policies.json, plantillas en prompts/, lógica en src/ y UI en app.py.
- Python 3.10+
- Ollama (recomendado para el taller; modelo open-source sin cuota de API)
- Opcional: Google Gemini si quieres probar la opción por API en la barra lateral
Sigue este orden: primero el motor local, luego el proyecto Python.
-
Instala Ollama: https://ollama.com/download
-
Deja Ollama en ejecución (servidor local en
http://localhost:11434). -
Descarga el modelo (una vez; no va dentro del
venv):ollama pull llama3.2:3b -
Comprueba que aparece en la lista:
ollama list
En la carpeta del proyecto (PowerShell en Windows):
python -m venv .venv
.venv\Scripts\Activate.ps1
pip install -r requirements.txt
Copia .env.example a .env y ajusta si cambias de modelo en Ollama:
OLLAMA_MODEL=llama3.2:3b
# Opcional si el servidor no es el predeterminado:
# OLLAMA_BASE_URL=http://127.0.0.1:11434
GOOGLE_API_KEY solo es necesario si vas a usar Gemini en la app.
streamlit run app.py
En el navegador, en la barra lateral, elige “Open-source local (Ollama)” y prueba las pestañas Estado de pedido y Gestión de devoluciones.
Detalle de despliegue, mejora de prompts, flujo RAG y solución de problemas con Ollama: ver docs/fase3_prompts.md (secciones 3.4 y 3.5).
Eso significa que no hay ningún servidor escuchando en la dirección que usa la app (por defecto http://127.0.0.1:11434).
- Instala Ollama desde ollama.com/download si aún no lo hiciste.
- Abre la aplicación Ollama en Windows (Menú Inicio → Ollama). Debería quedar un icono en la bandeja del sistema; sin eso, el servicio no suele estar activo.
- En PowerShell, comprueba:
ollama list→ debe listar modelos (si está vacío:ollama pull llama3.2:3b).Invoke-WebRequest -Uri http://127.0.0.1:11434/api/tags -UseBasicParsing→ debe responder JSON, no error de conexión.
- Si Ollama está en otro puerto o PC, define en
.env:OLLAMA_BASE_URL=http://IP:PUERTO(sin barra final). - VPN o firewall a veces bloquean
localhost; prueba desactivar la VPN un momento o permitir Ollama en el firewall de Windows.
Si seleccionas “Gemini API” en la barra lateral:
- Configura en
.enval menosGOOGLE_API_KEY(desde Google AI Studio). GEMINI_MODEL: déjalo vacío para que la app pruebe en orden modelos Flash habituales del free tier (gemini-1.5-flash,gemini-1.5-flash-latest,gemini-2.0-flash, etc.). Si quieres uno concreto, pega el ID exacto que ves en el selector de modelo de AI Studio.- El nombre del modelo no “gasta más cuota” que otro: cuenta cada llamada a la API. Si ves 429, suele ser límite diario/por minuto del proyecto; prueba más tarde o usa Ollama.
- Si un modelo devuelve 404, la app prueba el siguiente de la lista.
- Si aparece cuota (429) y no hay respuesta, la interfaz puede usar respaldo con los datos locales.
No subas .env al repositorio (está en .gitignore).
- Estado de pedido: busca el ID en
data/orders.json, arma el contexto y envía el prompt completo al modelo elegido. - Devoluciones: usa políticas en
data/return_policies.json, clasificación en código y el prompt de devoluciones. - Contexto y evidencias: muestra los JSON de prueba para revisión académica.
- Prioriza Ollama para evidenciar el impacto de los prompts sin depender de cuota cloud.
- La IA automatiza consultas repetitivas (~80%); casos complejos o sensibles deben escalarse a soporte humano.