Bot de WhatsApp integrado con Inteligencia Artificial utilizando Ollama ejecutado localmente. Este proyecto permite crear un asistente conversacional capaz de responder automáticamente a mensajes de WhatsApp mediante modelos de lenguaje (LLM), sin depender de servicios externos de IA.
- Integración con WhatsApp Business API.
- Respuestas automáticas utilizando Ollama.
- Procesamiento de mensajes mediante Webhooks.
- Arquitectura modular basada en Node.js y Express.
- Configuración mediante variables de entorno.
- Fácil configuración y escalabilidad.
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ WhatsApp │────│ Node.js API │────│ Ollama Local │
│ Business API │ │ (Express) │ │ LLM Server │
└─────────────────┘ └──────────────────┘ └─────────────────┘
- El usuario envía un mensaje por WhatsApp.
- WhatsApp Business API envía el evento al Webhook.
- El servidor procesa el mensaje recibido.
- Ollama genera una respuesta utilizando IA ejecutada localmente.
- El servidor responde automáticamente al usuario mediante WhatsApp.
- Node.js
- Express.js
- Axios
- Ollama
- Llama 2 (configurable)
- WhatsApp Business API
- Meta for Developers
- dotenv
- body-parser
Durante el desarrollo de este proyecto adquirí experiencia en:
- Integración con la WhatsApp Business API.
- Implementación y validación de Webhooks.
- Consumo de modelos de IA ejecutados localmente mediante Ollama.
- Desarrollo de APIs con Node.js y Express.
- Arquitectura modular para separar responsabilidades.
- Gestión de variables de entorno para proteger información sensible.
- Comunicación entre múltiples servicios mediante peticiones HTTP.
- Node.js (v14 o superior)
- npm o yarn
- Ollama instalado localmente
- Cuenta de Meta for Developers
- WhatsApp Business Account
- Número de WhatsApp Business
Windows
Descargar desde:
Linux/macOS
curl -fsSL https://ollama.ai/install.sh | shVerificar instalación:
ollama --versionollama pull llama2Verificar que esté instalado:
ollama listollama servegit clone <url-del-repositorio>
cd whatsapp-bot-ia
npm installCrear un archivo .env
PORT=3000
WHATSAPP_TOKEN=tu_access_token
WHATSAPP_PHONE_ID=tu_phone_id
OLLAMA_URL=http://localhost:11434- Crear una aplicación Business.
- Agregar el producto WhatsApp Business API.
- Obtener:
- Access Token
- Phone Number ID
- Configurar el Webhook:
https://tu-dominio.com/webhook
Token de verificación:
mi_token_ricardo
Para desarrollo local puedes utilizar ngrok para exponer el servidor.
Iniciar Ollama
ollama serveIniciar el proyecto
npm startUna vez iniciado:
- Verificar el servidor en:
http://localhost:3000
- Enviar un mensaje desde WhatsApp al número configurado.
- El bot responderá automáticamente utilizando IA.
whatsapp-bot-ia/
│
├── server.js
├── package.json
├── .env
├── .gitignore
├── README.md
│
├── routes/
│ └── webhook.js
│
└── services/
├── whatsapp.js
└── ollama.js
| Método | Endpoint | Descripción |
|---|---|---|
| GET | / |
Health Check |
| GET | /webhook |
Verificación del Webhook |
| POST | /webhook |
Recepción de mensajes y respuesta automática |
- Implementar memoria conversacional para mantener el contexto entre mensajes.
- Almacenar conversaciones en una base de datos.
- Incorporar autenticación de usuarios.
- Soporte para múltiples conversaciones simultáneas.
- Integrar nuevos modelos de IA configurables desde la aplicación.
- Contenerizar el proyecto utilizando Docker.
- Desplegar la aplicación en un servidor o servicio Cloud.
- Desarrollar un panel web para monitorear conversaciones y administrar la configuración del bot.
- Mejorar el manejo de errores y el sistema de registros (logging).
- Agregar pruebas automatizadas para garantizar la estabilidad del proyecto.
Este proyecto se distribuye bajo la licencia MIT.
Ricardo Navarrete
Desarrollador Full Stack apasionado por el desarrollo Backend, Inteligencia Artificial y automatización de procesos.
⭐ Si este proyecto te resultó útil, no olvides dejar una estrella en el repositorio.