đ€ Criando um Chatbot no WhatsApp com Node.js + DeepSeek
- #Node.js
- #Node Package Manager (NPM)
- #InteligĂȘncia Artificial (IA)
đ€ Criando um Chatbot no WhatsApp com Node.js + DeepSeek
Se vocĂȘ sempre quis criar um chatbot inteligente para WhatsApp, mas achava um bicho de sete cabeças?
Nesse tutorial vou simplificar para vocĂȘ e te mostrar que Ă© mais simples do que vocĂȘ imagina criar um chatbot com I.A, chega mais...
â O que vocĂȘ vai aprender
Esse projeto vai te ajudar a praticar habilidades essenciais para qualquer desenvolvedor iniciante:
Habilidades praticadas:
- Node.js â Criar um projeto backend bĂĄsico em JavaScript
- APIs HTTP (axios) â Comunicar-se com serviços externos
- whatsapp-web.js â Automatizar o WhatsApp Web com cĂłdigo
- Eventos assĂncronos (async/await) â Lidar com chamadas nĂŁo bloqueantes
- VariĂĄveis de ambiente (.env) â Guardar chaves de forma segura
- Organização de projeto â Separar responsabilidades em arquivos distintos
đ Estrutura do projeto
Organizamos nosso projeto da seguinte forma:
meu-chatbot/
âââ bot/
â âââ whatsappBot.js # Tudo sobre o WhatsApp
âââ services/
â âââ deepseek.js # Comunicação com a IA
âââ .env # VariĂĄveis de ambiente (chave da DeepSeek)
âââ index.js # Ponto inicial da aplicação
âââ package.json
đ§ Passo 1: Configurando o ambiente
- Instale o Node.js (se ainda nĂŁo tiver).
- No terminal, crie e configure seu projeto:
mkdir meu-chatbot
cd meu-chatbot
npm init -y
npm install whatsapp-web.js axios qrcode-terminal dotenv
- Crie os arquivos e pastas:
mkdir bot services
touch index.js bot/whatsappBot.js services/deepseek.js .env
đ Passo 2: Criando o arquivo index.js
Esse é o ponto de entrada da aplicação. Aqui, apenas carregamos e iniciamos o bot.
require('dotenv').config();
const { initWhatsAppBot } = require('./bot/whatsappBot');
console.clear();
console.log('đ Iniciando chatbot...\n');
initWhatsAppBot();
đčïž Passo 3: O arquivo bot/whatsappBot.js
Aqui vamos usar o pacote whatsapp-web.js para iniciar o bot e controlar as mensagens.
const { Client, LocalAuth } = require('whatsapp-web.js');
const qrcode = require('qrcode-terminal');
const { getDeepSeekResponse } = require('../services/deepseek');
function initWhatsAppBot() {
const client = new Client({
authStrategy: new LocalAuth(),
puppeteer: { headless: true }
});
client.on('qr', (qr) => {
console.log('đ± Escaneie o QR Code com seu WhatsApp:');
qrcode.generate(qr, { small: true });
});
client.on('ready', () => {
console.log('â
Bot conectado e pronto para uso!');
});
client.on('message', async (msg) => {
if (msg.fromMe || !msg.body) return;
if (msg.body.startsWith('!barbeiro')) {
const pergunta = msg.body.replace('!barbeiro', '').trim();
const resposta = await getDeepSeekResponse(pergunta);
await msg.reply(resposta);
}
});
client.initialize();
}
module.exports = { initWhatsAppBot };
đ€ Passo 4: O arquivo services/deepseek.js
Essa é a parte que se comunica com a IA da DeepSeek. à um serviço simples, reutilizåvel.
const axios = require('axios');
const DEEPSEEK_API_URL = 'https://api.deepseek.com/v1/chat/completions';
async function getDeepSeekResponse(prompt) {
try {
const response = await axios.post(
DEEPSEEK_API_URL,
{
model: 'deepseek-chat',
messages: [
{
role: 'system',
content: 'VocĂȘ Ă© um atendente simpĂĄtico de uma barbearia. Sempre fale em portuguĂȘs com um tom descontraĂdo.'
},
{ role: 'user', content: prompt }
]
},
{
headers: {
Authorization: `Bearer ${process.env.DEEPSEEK_API_KEY}`,
'Content-Type': 'application/json'
}
}
);
return response.data.choices[0].message.content;
} catch (error) {
console.error('Erro ao consultar DeepSeek:', error.response?.data || error.message);
return 'đ Tive um problema ao tentar responder. Tente novamente!';
}
}
module.exports = { getDeepSeekResponse };
đĄïž Passo 5: VariĂĄveis no .env
Coloque sua chave da API da DeepSeek aqui:
DEEPSEEK_API_KEY=sua_chave_aqui
â ïž Nunca compartilhe esse arquivo ou suba ele para o GitHub!
â¶ïž Rodando o projeto
No terminal:
node index.js
Escaneie o QR Code com o WhatsApp Web, envie uma mensagem com:
!barbeiro quero cortar o cabelo amanhĂŁ Ă s 14h
E veja o atendente virtual responder com estilo đ
đ ConclusĂŁo
E com esse nosso projeto, vocĂȘ nĂŁo apenas criou um chatbot funcional, como tambĂ©m aprendeu:
- A usar pacotes do Node.js
- Como organizar um projeto em arquivos
- Como usar variĂĄveis de ambiente
- Como consumir APIs modernas com
axios - Como criar um bot real que interage com humanos via WhatsApp
Bem simples nĂŁo acha? agora Ă© sĂł subir esse projetinho no github e partir para o prĂłximo đ
RepositĂłrio do Github: https://github.com/felipecacezi/chatBotWhatsapp




Boa noite DIO Community, que legal que vocĂȘs gostaram, entĂŁo, como a lib whatsapp-web automatiza isso e esse cĂłdigo Ă© um cĂłdigo bem simples, acaba nĂŁo gerando muitos desafios, porĂ©m, caso a aplicação for evoluĂda creio que um ponto que possa ser desafiador seria manter um tempo baixo para a resposta do bot, porque o prĂłprio fato de ter a I.A jĂĄ existe um certo delay entre consumir a api da I.A e a resposta em si, entĂŁo quanto mais açÔes e mais regras de negĂłcio forem colocados no fluxo a tendencia Ă© aumentar o tempo de resposta, e em um caso real se for um bot de venda ou um bot que faz agendamentos, um tempo maior de resposta pode custar uma venda ou um agendamento de um serviço por exemplo.
Boa noite Erick, segue o link do github đ: https://github.com/felipecacezi/chatBotWhatsapp
Opa Erick, beleza?
Obrigado, muito legal saber que vocĂȘ curtiu đ
Ainda nĂŁo subi para o Github, mais creio que entre hoje de noite e amanhĂŁ cedo eu jĂĄ consiga disponibilizar o projeto la, assim que eu subir o projetinho eu mando o link aqui pra ti e atualizo a postagem com o link, tmj brother, abrass đ
Excelente, Felipe! Seu tutorial Ă© super prĂĄtico e didĂĄtico. Ă inspirador ver como vocĂȘ descomplica a criação de um chatbot inteligente, mostrando as habilidades essenciais que um desenvolvedor iniciante pode praticar nesse projeto.
Considerando que vocĂȘ usou o whatsapp-web.js para automatizar o WhatsApp Web com cĂłdigo, qual vocĂȘ diria que Ă© o maior desafio ao lidar com a interação em tempo real de mensagens recebidas e enviadas para o bot?
Fala Felipe! đ
ParabĂ©ns pelo artigo, mano! Projeto sensacional â curto, direto e muito bem explicado. Curti demais a ideia de usar o DeepSeek com Node.js no WhatsApp, ficou top demais! đ„
Queria muito estudar esse projeto mais a fundo... vocĂȘ chegou a publicar o cĂłdigo no GitHub? Se puder compartilhar, queria tentar clonar e aprender com ele.
Abraço e sucesso na jornada! đ