Implementa un mini chatbot (puede ser CLI o notebook) que, dado un input de usuario como:
“¿Qué talla debería elegir para este abrigo?”
...sea capaz de:
- Acceder a un perfil de cliente (que te proporcionamos en JSON).
- Consultar información de un producto (te damos una ficha técnica simulada).
- Responder de forma coherente, justificando la talla sugerida.
Requisitos mínimos:
- Utilizar un LLM (puede ser OpenAI, Hugging Face u open-source).
- Simular una arquitectura tipo RAG (con búsqueda de contexto en datos estructurados).
- Incluir lógica para adaptar la recomendación según perfil de cliente.
Extra (opcional):
- Añadir memoria de conversación (por turnos).
- Manejar múltiples productos o clientes.
simpleshop-rag es un chatbot basado en LLM (OpenAI) y arquitectura RAG, diseñado para recomendar productos de moda personalizados según el perfil del cliente y el catálogo de productos. Utiliza almacenamiento vectorial para búsquedas contextuales y permite interacción por línea de comandos.
git clone <url-del-repositorio>
cd simpleshop-ragpython -m venv venv
# En Windows:
venv\Scripts\activate
# En Mac/Linux:
source venv/bin/activatepip install -r requirements.txtSi no tienes uv instalado, instálalo primero:
pip install uvLuego instala las dependencias:
uv pip install -r requirements.txt- Copia el archivo
.env-examplea.envy completa los valores necesarios:- Claves de API de OpenAI y Langsmith.
- Rutas a los archivos de datos si necesitas personalizarlas.
cp .env-example .envpython main.pyEl chatbot se ejecutará en modo CLI. Te pedirá tu nombre de usuario y podrás hacer preguntas sobre productos, tallas, recomendaciones, etc. Para salir, escribe q.
- Identificación del usuario: El bot solicita el nombre del usuario para buscar su perfil.
- Recuperación de contexto: Utiliza almacenamiento vectorial (FAISS) para buscar información relevante en los perfiles de clientes y el catálogo de productos.
- Generación de respuesta: El LLM (GPT-4o-mini) integra el contexto recuperado y responde de manera personalizada.
- Memoria conversacional: El historial de mensajes se mantiene durante la sesión para dar coherencia a la conversación.
simpleshop-rag/
│
├── agents/
│ └── profile_lookup_agent.py # Ejemplo alternativo de agente con Langchain/Langsmith
│
├── data/
│ ├── client_profiles.json # Perfiles de clientes (JSON)
│ ├── product_catalog.json # Catálogo de productos (JSON)
│ └── db/ # Almacenamiento vectorial FAISS
│
├── mappers/
│ ├── profile_mapper.py # Mapeo y formateo de perfiles de usuario
│ └── product_catalog_mapper.py # Mapeo y formateo de productos
│
├── tools/
│ └── vector_storage.py # Funciones para acceso y consulta al vector store
│
├── main.py # Script principal del chatbot (CLI)
├── requirements.txt # Dependencias del proyecto
├── .env-example # Ejemplo de configuración de entorno
├── .env # Configuración real de entorno (no subir a git)
└── README.md # Este archivo