Este projeto é um chatbot WhatsApp construído com Flask e o framework Waha. Permite criar e gerenciar bots WhatsApp de forma simples através de uma API REST.
- Python 3.11: Linguagem principal do projeto
- Flask 3.1.1: Framework web para criação da API REST
- Requests 2.32.4: Biblioteca para requisições HTTP
- Waha (devlikeapro/waha): Framework para integração com WhatsApp via Docker
- Docker & Docker Compose: Containerização e orquestração dos serviços
Flask==3.1.1 # Framework web
requests==2.32.4 # Cliente HTTP
blinker==1.9.0 # Sistema de sinais Flask
Jinja2==3.1.6 # Template engine
Werkzeug==3.1.3 # WSGI utilities
O projeto segue uma arquitetura simples baseada em microserviços:
├── app.py # Aplicação principal Flask
├── services/
│ ├── __init__.py
│ └── waha.py # Service para comunicação com Waha
├── docker-compose.yml # Orquestração dos containers
├── Dockerfile.api # Container da API Python
└── requirements.txt # Dependências Python
- Service Layer Pattern: Separação da lógica de negócio em
services/waha.py - Dependency Injection: Instanciação do serviço Waha no endpoint
- RESTful API: Endpoint seguindo convenções REST
- Docker
- Docker Compose
- Clone o repositório:
git clone <repository-url>
cd ChatBot-WhatsApp- Execute os containers:
docker-compose up -d- Verifique os serviços:
- API Flask: http://localhost:5000
- Waha Dashboard: http://localhost:3000
- Acesse o painel do Waha em
http://localhost:3000 - Configure uma nova sessão WhatsApp
- Escaneie o QR Code com seu WhatsApp
- Configure o webhook para
http://api:5000/api/chatbot/webhook/
Recebe webhooks do Waha e responde automaticamente às mensagens.
Request Body:
{
"payload": {
"from": "5511999999999@c.us",
"body": "Mensagem recebida"
}
}Response:
{
"status": "success"
}Para configurações personalizadas, modifique as seguintes variáveis:
- WAHA_URL: URL do serviço Waha (padrão:
http://waha:3000) - FLASK_DEBUG: Modo debug da aplicação Flask
- SESSION_NAME: Nome da sessão WhatsApp (padrão:
default)
Edite o arquivo app.py para customizar as respostas automáticas:
waha.send_message(
chat_id=chat_id,
message='Sua mensagem personalizada aqui',
)Para deploy em produção, remova o modo debug do docker-compose.yml e configure variáveis de ambiente apropriadas.
