Felicidades. Tu VendingKit está completamente configurado y listo para usar.
- ✅ ANTHROPIC_API_KEY — Claude API
- ✅ META_ACCESS_TOKEN — WhatsApp Cloud API
- ✅ META_PHONE_NUMBER_ID — 905292252675991
- ✅ META_VERIFY_TOKEN — Vending-key-123
- ✅ GOOGLE_SHEETS_ID — 15R_caZHMICAbMHTeqirMHrtaX5BhkH8WdrHGrW3dvUY
- ✅ GOOGLE_CALENDAR_EMAIL — josery@gmail.com
- ✅ Backend FastAPI — Servidor HTTP con webhook
- ✅ AI Brain — Dos agentes Claude especializados
- ✅ Memory System — Base de datos SQLite
- ✅ Google Sheets Integration — Sincronización automática
- ✅ Meta WhatsApp Provider — Conexión directa a WhatsApp
- ✅ Docker Setup — Listo para desplegar
Elige tu camino según tu situación:
Tiempo: 5 minutos
Complejidad: Baja
# 1. Abre Terminal
# 2. Ve al directorio
cd /Users/jvasquez/Documents/Proyectos\ Claude/VendingKit
# 3. Instala dependencias
pip install -r requirements.txt
# 4. Prueba el agente localmente
python tests/test_local.py
# 5. Observa:
# - Intenciones detectadas (REPOSICION, RECLAMACION, etc.)
# - Respuestas generadas por Claude
# - Datos extraídos del mensaje
# - Sincronización con Google Sheets📖 Guía completa: QUICKSTART.md
Tiempo: 15 minutos
Complejidad: Media
# 1. Crea cuenta en railway.app
# 2. Conecta tu repo de GitHub
# 3. Configura variables de entorno en Railway
# 4. Railway desplega automáticamente
# 5. Configura webhook en Meta📖 Guía completa: DEPLOY.md
Tiempo: 10 minutos
Complejidad: Media-Baja
# Con Docker Compose (recomendado)
docker-compose up
# O construye manualmente
docker build -t vendingkit .
docker run -p 8000:8000 --env-file .env vendingkitEl servidor estará en: http://localhost:8000
| Archivo | Propósito |
|---|---|
agent/brain.py |
2 agentes Claude: detección de intención + generación de respuesta |
agent/main.py |
Servidor FastAPI con webhook |
agent/memory.py |
Almacenamiento local en SQLite |
agent/sheets.py |
Sincronización con Google Sheets |
agent/providers/meta.py |
Integración con Meta WhatsApp Cloud API |
| Archivo | Propósito |
|---|---|
config/business.yaml |
Info del negocio (nombre, máquinas, horarios) |
config/prompts.yaml |
Prompts especializados para vending |
.env |
Credenciales (NO versionar) |
| Archivo | Propósito |
|---|---|
requirements.txt |
Dependencias Python |
Dockerfile |
Imagen Docker |
docker-compose.yml |
Orquestación local |
railway.json |
Config para Railway |
.gitignore |
Archivos a ignorar en Git |
| Archivo | Propósito |
|---|---|
QUICKSTART.md |
Guía de inicio rápido |
DEPLOY.md |
Despliegue a Railway |
START_HERE.md |
Este archivo |
CLAUDE.md |
Especificación técnica |
| Archivo | Propósito |
|---|---|
tests/test_local.py |
Suite de pruebas interactivas |
Cliente: "La máquina de piso 3 se quedó sin bebidas"
Tu servidor recibe el mensaje en POST /webhook
- Intent Detector → Clasifica como
REPOSICION - Response Generator → Genera respuesta natural
- Data Extractor → Extrae: nombre, piso, ubicación, etc.
- Memory → Guarda en SQLite
- Google Sheets → Sincroniza automáticamente
VendingKit: "Recibido. Registré reposición para piso 3.
¿Cuál es la ubicación exacta de la máquina?"
Automáticamente se agrega una fila con todos los datos extraídos.
VendingKit detecta automáticamente:
| Categoría | Ejemplos |
|---|---|
| REPOSICION | "Se acabó", "llenar", "refill", "sin producto" |
| MANTENIMIENTO | "No funciona", "dañado", "roto", "error" |
| FALLO_DISPENSACION | "Atrapado", "no sale", "trancado" |
| RECLAMACION | "Perdí dinero", "cobró dos veces" |
| RUTAS_ENTREGAS | "¿Cuándo llegan?", "próxima reposición" |
| FINANCIAMIENTO | "¿Cuánto cuesta?", "quiero poner una" |
| CONSULTA_VENTAS | "Qué vende más", "estadísticas" |
| CONSULTA | "Precios", "ubicación", "horario" |
| CONVERSACION | Saludos simples, charla casual |
# Prueba local completa
python tests/test_local.py
# Inicia servidor
python -m uvicorn agent.main:app --reload --port 8000
# Ver incidentes
curl http://localhost:8000/incidents
# Ver configuración
curl http://localhost:8000/config/status# Local con compose
docker-compose up
# Ver logs
docker-compose logs -f
# Detener
docker-compose down# Si planeas versionarlo
git init
git add .
git commit -m "Initial VendingKit setup"
git remote add origin https://github.com/tuusuario/vendingkit
git push -u origin mainpip install -r requirements.txtVerifica en .env que el token no esté expirado.
- Verifica que el SHEETS_ID sea correcto
- Comprueba que la hoja sea pública o accesible
lsof -i :8000 # Ver qué está usando el puerto
kill -9 <PID> # Liberar puertoPara entender mejor VendingKit:
- Lee CLAUDE.md — Especificación técnica completa
- Ejecuta test_local.py — Ve el agente en acción
- Abre agent/brain.py — Entiende cómo funciona la IA
- Modifica config/prompts.yaml — Personaliza respuestas
python tests/test_local.py# Ve a railway.app y sigue DEPLOY.mdpython -m uvicorn agent.main:app --reloadBasado en tu siguiente acción:
- Quiero probar ahora → QUICKSTART.md
- Quiero desplegar → DEPLOY.md
- Quiero entender todo → CLAUDE.md
Felicitaciones por tener VendingKit listo. 🚀
¿Preguntas? Revisa los archivos de documentación o ejecuta python tests/test_local.py para ver todo en acción.