Skip to content

About

Bot de WhatsApp con Inteligencia Artificial usando Ollama, corriendo en servidor local, conectado a la API de WhatsApp Cloud (Meta). Permite recibir mensajes desde tu número de prueba de WhatsApp y responder automáticamente generando respuestas con IA.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

Repository files navigation

WhatsApp Bot + IA

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.


✨ Características

  • 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.

🏗️ Arquitectura del Proyecto

┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐
│   WhatsApp      │────│   Node.js API    │────│ Ollama Local    │
│ Business API    │    │    (Express)     │    │   LLM Server    │
└─────────────────┘    └──────────────────┘    └─────────────────┘

Flujo de funcionamiento

  1. El usuario envía un mensaje por WhatsApp.
  2. WhatsApp Business API envía el evento al Webhook.
  3. El servidor procesa el mensaje recibido.
  4. Ollama genera una respuesta utilizando IA ejecutada localmente.
  5. El servidor responde automáticamente al usuario mediante WhatsApp.

🛠️ Tecnologías Utilizadas

Backend

  • Node.js
  • Express.js
  • Axios

Inteligencia Artificial

  • Ollama
  • Llama 2 (configurable)

APIs y Servicios

  • WhatsApp Business API
  • Meta for Developers

Otras Herramientas

  • dotenv
  • body-parser

📚 Lo que aprendí

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.

📋 Prerrequisitos

Software requerido

  • Node.js (v14 o superior)
  • npm o yarn
  • Ollama instalado localmente

Cuentas necesarias

  • Cuenta de Meta for Developers
  • WhatsApp Business Account
  • Número de WhatsApp Business

🚀 Instalación

1. Instalar Ollama

Windows

Descargar desde:

https://ollama.ai/download

Linux/macOS

curl -fsSL https://ollama.ai/install.sh | sh

Verificar instalación:

ollama --version

2. Descargar el modelo

ollama pull llama2

Verificar que esté instalado:

ollama list

3. Iniciar Ollama

ollama serve

4. Clonar el repositorio

git clone <url-del-repositorio>

cd whatsapp-bot-ia

npm install

⚙️ Configuración

Variables de entorno

Crear un archivo .env

PORT=3000

WHATSAPP_TOKEN=tu_access_token

WHATSAPP_PHONE_ID=tu_phone_id

OLLAMA_URL=http://localhost:11434

Configurar Meta Developers

  1. Crear una aplicación Business.
  2. Agregar el producto WhatsApp Business API.
  3. Obtener:
  • Access Token
  • Phone Number ID
  1. 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.


▶️ Uso

Iniciar Ollama

ollama serve

Iniciar el proyecto

npm start

Una 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.

📁 Estructura del Proyecto

whatsapp-bot-ia/
│
├── server.js
├── package.json
├── .env
├── .gitignore
├── README.md
│
├── routes/
│   └── webhook.js
│
└── services/
    ├── whatsapp.js
    └── ollama.js

🔌 API Endpoints

Método Endpoint Descripción
GET / Health Check
GET /webhook Verificación del Webhook
POST /webhook Recepción de mensajes y respuesta automática

🚧 Próximas mejoras

  • 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.

📄 Licencia

Este proyecto se distribuye bajo la licencia MIT.


👨‍💻 Autor

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.

About

Bot de WhatsApp con Inteligencia Artificial usando Ollama, corriendo en servidor local, conectado a la API de WhatsApp Cloud (Meta). Permite recibir mensajes desde tu número de prueba de WhatsApp y responder automáticamente generando respuestas con IA.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages