Ecommerce-API-RAG-DRF es un sistema backend robusto para eCommerce que integra un asistente virtual inteligente (Chatbot RAG) capaz de responder preguntas sobre el inventario en tiempo real utilizando búsqueda semántica y modelos de lenguaje grandes.
Este es el proyecto de finalización de mi curso de "Desarrollo de APIs con arquitectura de Microservicios", este proyecto demuestra mi dominio de Python, desarrollo de APIs Rest usando Django Rest Framework y modelos de inteligencia artificial (LLM), en este RAG los modelos que use fueron los de la API de Groq. También se uso una base de datos vectorial para mejorar el contexto y las respuestas del RAG
- Python: 3.10 o superior
- Django: 5.2
- Pip: Última versión
- Venv: Recomendado para aislamiento de dependencias
-
Clonar el repositorio:
git clone https://github.com/DaniDevGS/Ecommerce-API-RAG-DRF.git cd Ecommerce-API-RAG-DRF -
Crear y activar entorno virtual:
python -m venv venv .\venv\Scripts\activate # En Windows source venv/bin/activate # En Linux/Mac
-
Instalar dependencias:
pip install -r requirements.txt
-
Configurar variables de entorno: Crea un archivo
.enven la raíz del proyecto basándote en la sección de Variables de Entorno. -
Ejecutar migraciones:
python manage.py migrate
-
Iniciar el servidor:
python manage.py runserver
graph TD
A[Root] --> B[core]
A --> C[productos]
A --> D[tienda]
A --> E[usuarios]
A --> F[chatbot]
B --> B1[settings.py]
B --> B2[urls.py]
C --> C1[Gestión de Productos/Categorías]
D --> D1[Carrito y Órdenes de Compra]
E --> E1[Gestión de Usuarios JWT]
F --> F1[Lógica de IA y Vectores RAG]
- core/: Configuración central del proyecto Django.
- productos/: Modelos y vistas para el inventario, incluyen lógica de conversión de divisas.
- tienda/: Gestión del flujo de compra (Carrito -> Orden -> Stock).
- usuarios/: Autenticación personalizada con SimpleJWT.
- chatbot/: Integración con Groq y Upstash Vector para asistencia inteligente.
| Variable | Descripción | Ejemplo | Obligatoria |
|---|---|---|---|
SECRET_KEY |
Llave secreta de Django | django-insecure... |
Sí |
GROQ_API_KEY |
API Key para modelos de lenguaje Groq | gsk_... |
Sí |
UPSTASH_VECTOR_REST_URL |
URL de la base de datos de vectores | https://...upstash.io |
Sí |
UPSTASH_VECTOR_REST_TOKEN |
Token de Upstash Vector | ABUF... |
Sí |
LLAMACPP_API |
Endpoint opcional para Llama.cpp | http://localhost:8080/ |
No |
Para validar que todo el sistema funciona correctamente:
python manage.py testEste proyecto bajo la licencia de Uso Personal Únicamente. No está permitida la distribución, venta o uso en entornos de producción. Consulta el archivo LICENSE para más detalles.