|
|
9 ay önce | |
|---|---|---|
| auth | 9 ay önce | |
| config | 9 ay önce | |
| data | 9 ay önce | |
| fudo | 9 ay önce | |
| impresora | 10 ay önce | |
| models | 9 ay önce | |
| public | 9 ay önce | |
| routes | 9 ay önce | |
| services | 9 ay önce | |
| .gitignore | 9 ay önce | |
| README.md | 9 ay önce | |
| app.py | 9 ay önce | |
| doc_api.md | 9 ay önce | |
| main.py | 9 ay önce | |
| pin.key | 9 ay önce | |
| requirements.txt | 10 ay önce | |
| users.json | 10 ay önce |
Biergarten Klein es una aplicación web completa para la gestión de pedidos en un bar cervecero artesanal. El sistema permite a los clientes interactuar con un asistente de IA llamado "Camilo Klein" para consultar el menú, recibir recomendaciones de cervezas artesanales, realizar pedidos y gestionar su experiencia en el establecimiento.
pedidos_express/
├── main.py # Punto de entrada principal
├── app.py # Configuración FastAPI y rutas
├── requirements.txt # Dependencias del proyecto
├── tailwind.config.js # Configuración de Tailwind CSS
├── config/
│ ├── __init__.py
│ └── settings.py # Variables de entorno y logging
├── models/
│ ├── __init__.py
│ └── schemas.py # Modelos Pydantic (Message, Order, User)
├── auth/
│ ├── __init__.py
│ └── security.py # Autenticación y tokens anti-abuso
├── services/
│ ├── __init__.py
│ ├── data_service.py # Gestión de datos y productos
│ ├── openai_service.py # Integración con OpenAI
│ ├── email_service.py # Notificaciones por email
│ ├── fudo_service.py # Integración con Fudo POS
│ └── logging_service.py # Sistema de logs
├── routes/
│ ├── __init__.py
│ ├── chat.py # Endpoints del chatbot
│ ├── users.py # Gestión de usuarios
│ ├── products.py # Catálogo de productos
│ ├── orders.py # Procesamiento de pedidos
│ └── static.py # Archivos estáticos
├── impresora/ # Módulo de impresión térmica
│ ├── __init__.py
│ ├── order.py # Modelos para órdenes de impresión
│ └── printer.py # Control de impresora USB
├── fudo/ # Integración con Fudo POS
│ └── fudo.py # API y gestión de tokens
├── data/ # Almacenamiento de datos
│ ├── data.db # Base de datos SQLite
│ ├── llm_data.json # Base de conocimientos para IA
│ └── products.json # Catálogo de productos
├── public/ # Frontend web
│ ├── index.html # Página principal
│ ├── styles.css # Estilos personalizados
│ ├── assets/ # Recursos multimedia
│ └── js/
│ ├── app.js # Lógica principal del frontend
│ ├── interfaces.js # Interfaces de usuario
│ └── service/ # Servicios del frontend
│ ├── auth.js # Autenticación cliente
│ ├── chat.js # Comunicación con chatbot
│ └── product.js # Gestión de productos
└── logs/ # Archivos de log
└── app.log # Logs de la aplicación
/api/chat/init-chat - Inicialización del chat y generación de tokens/api/chat/completions - Procesamiento de mensajes del chatbot/api/existsUser - Validación de códigos de usuario/api/get_products - Obtención del catálogo completo/api/printer/order - Procesamiento e impresión de pedidosGET /api/chat/init-chat # Inicializar sesión de chat
POST /api/chat/completions # Enviar mensaje al asistente
GET /api/get_products # Obtener catálogo de productos
POST /api/printer/order # Procesar y imprimir pedido
POST /api/existsUser # Validar código de usuario
El asistente Camilo Klein utiliza una base de datos especializada (llm_data.json) que incluye:
Python 3.9+
Redis Server
Impresora térmica USB (opcional)
# Clonar el repositorio
git clone [repository-url]
cd pedidos_express
# Instalar dependencias
pip install -r requirements.txt
# Configurar variables de entorno
cp .env.example .env
# OpenAI Configuration
OPENAI_API_KEY=tu_api_key_de_openai
# Security
SECRET_KEY=tu_clave_secreta_muy_segura
# Server Configuration
PORT=6001
LOG_LEVEL=INFO
# Fudo POS Integration
FUDO_API_KEY=tu_api_key_fudo
FUDO_API_SECRET=tu_api_secret_fudo
# Redis Configuration
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_DB=0
# Email Configuration (opcional)
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=tu_email@gmail.com
SMTP_PASSWORD=tu_password_de_app
python main.py
gunicorn -w 4 -k uvicorn.workers.UvicornWorker main:app --bind 0.0.0.0:6001
logs/app.log: Log principal de la aplicaciónlogs.csv: Registro de interacciones del LLMfeat: Nuevas característicasfix: Corrección de bugsdocs: Documentaciónstyle: Formateo de códigorefactor: Refactorizacióntest: Pruebas# Ejecutar tests unitarios
python -m pytest tests/
# Tests de integración
python -m pytest tests/integration/
Para soporte técnico o consultas sobre el proyecto, contactar al equipo de desarrollo.
Versión: 1.0.0
Última actualización: Julio 2025
Licencia: Privada - Biergarten Klein