Desafío Técnico: Agente de IA que vende productos mediante API propia con WhatsApp
# 1. Clonar repositorio
git clone https://github.com/JimeFioni/laburen-ai-agent.git
cd laburen-ai-agent
# 2. Instalar dependencias
pip install -r requirements.txt
# 3. Configurar variables de entorno
cp .env.example .env
# Editar .env con tus API keys
# 4. Ejecutar servidor (desarrollo local)
uvicorn main:app --reload --host 0.0.0.0 --port 8000
# 5. Probar agente
curl http://localhost:8000/test/hola📱 Interfaz web: Ve a http://localhost:8000/docs (desarrollo local) 🌐 Demo en vivo: https://laburen-ai-agent.onrender.com (producción)
Nota: En desarrollo local usa puerto 8000, en producción (Render) usa puerto dinámico $PORT
- Google Gemini 1.5-flash con procesamiento de lenguaje natural
- Consumo real de API (no simulado) con fallback directo a BD
- Respuestas naturales en español con emojis
- Sistema robusto con timeout handling y fallback automático
- ✅
GET /products- Lista productos con filtro (?q=término) - ✅
GET /products/:id- Detalle de producto específico - ✅
POST /carts- Crear carrito con items - ✅
PATCH /carts/:id- Actualizar carrito existente - ✅ Validaciones de stock automáticas
- ✅ Sistema de fallback BD para alta disponibilidad
- 100 productos reales cargados desde Excel automáticamente
- SQLite con inicialización automática en startup
- Fallback directo cuando API HTTP tiene problemas
- Estructura optimizada para búsquedas rápidas
- ✅ Meta WhatsApp Business API configurado
- ✅ Twilio WhatsApp Sandbox para demos sin aprobación
- ✅ Webhook bidireccional funcionando en producción
- ✅ Testing interface en
/test/{mensaje}
Laburen.com/
├── main.py # 🚀 Aplicación principal (FastAPI + Agente IA)
├── products.xlsx # 📊 Datos de productos (100 items)
├── laburen_app.db # 💾 Base de datos SQLite
├── requirements.txt # 📦 Dependencias Python
├── .env.example # ⚙️ Variables de entorno
├── docs/ # 📚 Documentación completa
│ ├── README.md # Arquitectura y diagramas
│ ├── ARCHITECTURE.md # Detalles técnicos
│ └── WHATSAPP_DEPLOYMENT.md # Guía de despliegue
└── Desafio Tecnico AI Engineer - Laburen.com.txt # 📋 Especificación
| Mensaje | Funcionalidad | API Endpoint |
|---|---|---|
"hola" |
Saludo y bienvenida | - |
"productos" |
Lista catálogo completo | GET /products |
"buscar camisa" |
Búsqueda específica | GET /products?q=camisa |
"quiero comprar..." |
Crear carrito | POST /carts + GET /products |
👤 Usuario: "hola"
🤖 Agente: "¡Hola! 👋 Soy tu asistente de Laburen.com
🛍️ Puedo ayudarte a:
• Ver productos
• Buscar productos específicos
• Crear carritos de compra
¿Qué te interesa?"
👤 Usuario: "buscar camisa azul"
🤖 Agente: "🔍 RESULTADOS PARA 'CAMISA AZUL':
🔸 Camisa L Azul
💰 $25.99
📦 Stock: 15
ID: 15"
👤 Usuario: "quiero comprar esa camisa"
🤖 Agente: "🛒 CARRITO CREADO (ID: 1)
🔸 Camisa L Azul
Cantidad: 1
💰 Total: $25.99"
# Productos
GET http://localhost:8000/products
GET http://localhost:8000/products/1
GET http://localhost:8000/products?q=camisa
# Carritos
POST http://localhost:8000/carts
Content-Type: application/json
{"items": [{"product_id": 1, "qty": 2}]}
# Agente IA
GET http://localhost:8000/test/hola
GET http://localhost:8000/test/productos
GET http://localhost:8000/test/buscar%20azul- Desarrollo: Testing directo con endpoints
/test/{mensaje} - Producción: Twilio WhatsApp Sandbox → https://laburen-ai-agent.onrender.com/twilio-webhook
📱 Para probar WhatsApp en vivo:
- Configurar webhook en Twilio Console:
https://laburen-ai-agent.onrender.com/twilio-webhook - Enviar mensaje al número sandbox de Twilio
- El agente responde automáticamente procesando con Gemini AI
# Requerido para el agente de IA
GEMINI_API_KEY=tu_gemini_api_key_aqui
# Para deployment en producción
API_BASE_URL=https://tu-app.onrender.com
# Para WhatsApp (opcional)
WHATSAPP_TOKEN=tu_whatsapp_token
WHATSAPP_VERIFY_TOKEN=tu_verify_token
# Para Twilio WhatsApp Sandbox (demo)
TWILIO_ACCOUNT_SID=tu_twilio_account_sid
TWILIO_AUTH_TOKEN=tu_twilio_auth_token
TWILIO_WHATSAPP_NUMBER=+14155238886fastapi==0.117.1
uvicorn==0.24.0
sqlalchemy==2.0.43
pandas==2.1.3
openpyxl==3.1.2
requests==2.32.5
google-generativeai==0.8.3
twilio==9.3.6
python-dotenv==1.1.1
pydantic==2.7.4
WhatsApp/Twilio → Webhook → Agente IA → API REST → SQLite Database
↓ ↓
Google Gemini Fallback BD
1.5-flash Direct Access
Consulta la documentación completa en /docs
# Auto-deploy desde GitHub
# URL: https://laburen-ai-agent.onrender.comGEMINI_API_KEY=tu_gemini_key
API_BASE_URL=https://laburen-ai-agent.onrender.com
TWILIO_ACCOUNT_SID=tu_twilio_sid
TWILIO_AUTH_TOKEN=tu_twilio_token
TWILIO_WHATSAPP_NUMBER=+14155238886
Ver guía completa: docs/WHATSAPP_DEPLOYMENT.md
Haz clic en la imagen para ver una demostración completa del sistema
🔗 API Producción: https://laburen-ai-agent.onrender.com/docs
🧪 Testing: https://laburen-ai-agent.onrender.com/test/hola
📱 WhatsApp: Twilio Sandbox +1 415 523 8886
🔍 Debug: https://laburen-ai-agent.onrender.com/debug/database
Desarrollado para el desafío técnico de Laburen.com
Desarrolladora: Jimena Fioni 💼
Fecha: Septiembre 2025
Stack: Python + FastAPI + Gemini AI + WhatsApp API + Twilio
Repo: https://github.com/JimeFioni/laburen-ai-agent
¿Listo para probarlo en WhatsApp? 🚀
