Asistente inteligente de base de datos MySQL con persistencia y Text-to-REST (Function Calling). Permite interactuar con bases de datos relacionales en lenguaje natural de forma segura, gestionar conexiones persistentes, y acceder a planillas predictivas de producción comercial.
- ¿Qué hace?
- Características Clave
- Guía de Inicio Rápido
- Estructura del Proyecto
- Documentación Detallada
Este asistente procesa consultas en lenguaje natural y las traduce de manera segura a llamadas de herramientas REST (Text-to-REST / Function Calling) en el backend de Django REST Framework, aplicando estrictas reglas de negocio en Python antes de interactuar con la base de datos MySQL de los clientes.
- Pregunta: "¿Cuáles fueron las alitas más vendidas ayer?"
- Tool Invocada (Function Calling):
get_top_selling_products(start_date="2026-04-11", search_term="alita") - Lógica Python (RULE 9 & RULE 2): Ejecuta una consulta optimizada que unifica variantes para llevar
(PLL)y cuenta unidades reales usandocant_total. - Respuesta: "Las alitas más vendidas ayer fueron las 'Alitas BBQ' con 45 porciones despachadas."
- Soporte Multi-Proveedor LLM: Modelos locales con Ollama (Llama 3, DeepSeek, Phi) o APIs en la nube con Google Gemini y OpenRouter.
- Panel de Cocina Inteligente: Proyección de puestas de pollo por hora y consolidación de líquidos en litros.
- Formato Rico (Markdown): Renderizado premium de tablas, listas, blockquotes y títulos con
marked.jsadaptado a temas claro/oscuro. - Persistencia Segura: Guardado de múltiples conexiones de usuario (contraseñas cifradas con Fernet) y chats persistentes en una base de datos de administración.
- Python 3.11+ y MySQL Server.
- Ollama (opcional, para modelos locales).
Crea una base de datos MySQL vacía llamada chat_db_rag para persistencia:
CREATE DATABASE chat_db_rag;Crea un archivo backend/.env basándote en la siguiente plantilla básica:
# Conexión a Base de Datos de Persistencia
DB_USER=root
DB_PASSWORD=
DB_HOST=localhost
DB_PORT=3306
DB_NAME=chat_db_rag
# Cifrado de Contraseñas (Generar con Fernet)
ENCRYPTION_KEY=tu_clave_fernet_aqui
SECRET_KEY=tu_django_secret_key_aqui
# Proveedores de LLM
OPENROUTER_API_KEY=tu_api_key_de_openroutercd backend
python -m venv env
# Activar entorno: env\Scripts\activate
pip install -r requirements.txt
python manage.py migrate
python manage.py runserver 0.0.0.0:5000El servidor Django REST se ejecuta en http://localhost:5000
cd frontend
python -m http.server 3000Abre tu navegador en http://localhost:3000
- backend/: Servidor Django REST Framework, Django ORM, cifrado de contraseñas de conexión, motor de Function Calling (Tools) y vistas API REST.
- frontend/: Interfaz responsiva HTML5/JS Vanilla. Incluye el Panel de Cocina y renderizado de Markdown.
- doc/: Manuales de arquitectura y guías operativas.
Para guías avanzadas de configuración y desarrollo, consulta:
- Guía del Backend y API: Estructura del servidor Flask, rutas de API y manejo de la BD.
- Guía del Frontend: Modulación en JS, hojas de estilos, y personalización del Panel de Cocina.
- Guía de IA, RAG y Consultas (Unificado):
- Parte A: Funcionamiento del motor RAG, prompts, límites de contexto y proveedores.
- Parte B: Regla de oro para consultas, tipos de preguntas válidas, entrenamiento del modelo y diccionario de sinónimos.
- Guía de Despliegue en Linux: Configuración en servidores Ubuntu con Systemd, Nginx y Gunicorn.