NexusBot é um assistente virtual integrado ao WhatsApp, desenvolvido com Flask e alimentado por modelos avançados de linguagem da AI. O nome "NexusBot" deriva de "nexus" (conexão), refletindo seu propósito de conectar usuários a respostas rápidas e precisas.
Criado por Jacinto Sérgio Robate, estudante de Tecnologias de Informação na Universidade Católica de Moçambique, o NexusBot oferece uma gama de funcionalidades úteis através de uma interface familiar e acessível - o WhatsApp.
- 🤔 Perguntas e Respostas: Responde perguntas sobre diversos assuntos utilizando o modelo Jamba-1.5-large da AI21
- 📝 Geração de Trabalhos Acadêmicos: Cria documentos DOCX completos e formatados a partir de um tema fornecido
- 🖼️ Geração de Imagens: Gera imagens baseadas em descrições textuais usando o modelo FLUX.1-dev da Hugging Face
- 💼 Vagas de Emprego: Conexão com portais de vagas de emprego nacionais e internacionais
- 📊 Sistema de Feedback: Canal direto para reclamações e sugestões
- 📱 Menu Interativo: Interface intuitiva com botões e listas no WhatsApp
- Flask: Framework web para Python
- AI API: Modelos avançados de linguagem para geração de texto
- WhatsApp Cloud API: Para integração com o WhatsApp
- Hugging Face API: Para geração de imagens
- python-docx: Para criação e formatação de documentos DOCX
- python-dotenv: Para gerenciamento de variáveis de ambiente
- Python 3.7+
- Conta no WhatsApp Business API
- Chaves de API para AI21 e Hugging Face
- Token de acesso WhatsApp Cloud API
- Clone o repositório:
git clone hhttps://github.com/Jacinto-robate/Bot_WhatsApp.git
cd Bot_WhatsApp- Instale as dependências:
pip install -r requirements.txt- Configure as variáveis de ambiente:
Crie um arquivo
.envna raiz do projeto com as seguintes variáveis:
AI21_API_KEY=sua_chave_api_ai21
AI21_API_KEY_TRABALHO=sua_chave_api_ai21_trabalho
WHATSAPP_ACCESS_TOKEN=seu_token_whatsapp
HUGGINGFACE_API_KEY=sua_chave_api_huggingface
- Inicie o servidor:
python app.pyUma vez configurado e em execução, os usuários podem interagir com o NexusBot enviando mensagens para o número de WhatsApp associado. O bot responderá com um menu interativo, permitindo acesso às seguintes funcionalidades:
- Fazer uma pergunta: O usuário envia uma pergunta, e o NexusBot responde usando o modelo da AI
- Sobre o criador: Informações sobre o criador do bot
- Gerar trabalho: O bot solicita um tema e gera um trabalho acadêmico completo em formato DOCX
- Reclamações: Canal para envio de feedback ao administrador
- Vagas de emprego: Links para portais de emprego nacionais e internacionais
- Gerar imagens: Cria imagens com base em descrições textuais
Para receber mensagens do WhatsApp, você precisa configurar um webhook:
- Disponibilize seu servidor publicamente (usando ngrok, por exemplo)
- Configure a URL de callback no WhatsApp Business API:
- URL:
https://seu-dominio.com/webhook - Token de verificação: seu WHATSAPP_ACCESS_TOKEN
- URL:
nexusbot/
├── app.py # Aplicação principal Flask
├── .env # Variáveis de ambiente (não incluído no repositório)
├── requirements.txt # Dependências do projeto
├── README.md # Este arquivo
└── /tmp/ # Diretório temporário para arquivos gerados
O NexusBot segue uma arquitetura baseada em eventos:
- O usuário envia uma mensagem para o número do WhatsApp
- O WhatsApp encaminha a mensagem para o webhook configurado
- A aplicação Flask processa a mensagem e determina a ação apropriada
- O bot gera uma resposta (texto, documento ou imagem) usando as APIs apropriadas
- A resposta é enviada de volta ao usuário via WhatsApp
Usuário: *Seleciona "Gerar trabalho"*
Bot: "Que incrível! Me diga, sobre qual tema você gostaria que eu escrevesse o seu trabalho?"
Usuário: "Inteligência Artificial na medicina"
Bot: *Gera e envia um documento DOCX formatado sobre o tema*
Usuário: *Seleciona "Gerar imagens"*
Bot: "Envie a descrição da imagem que deseja gerar:"
Usuário: "Um gato com óculos de sol lendo um livro em uma praia"
Bot: *Gera e envia até 3 imagens baseadas na descrição*
- Filtragem de conteúdo impróprio para geração de imagens
- Proteção contra solicitações de geração de trabalhos em massa
- Encaminhamento de feedback apenas para administradores autorizados
Contribuições são bem-vindas! Sinta-se à vontade para enviar pull requests ou abrir issues com sugestões e melhorias.
Este projeto está licenciado sob a MIT License.
- LinkedIn: Jacinto Robate
Desenvolvido com ❤️ por Jacinto Sérgio Robate