Article image
Felipe Silva
Felipe Silva06/06/2025 07:13
Compartir
WEX - End to End EngineeringRecomendado para tiWEX - End to End Engineering

🤖 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

  1. Instale o Node.js (se ainda não tiver).
  2. 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
  1. 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

Compartir
Recomendado para ti
TONNIE - Java and AI in Europe
Microsoft - Azure Administrator Certification (AZ-104)
WEX - End to End Engineering
Comentarios (5)
Felipe Silva
Felipe Silva - 06/06/2025 22:28

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.

Felipe Silva
Felipe Silva - 06/06/2025 21:23

Boa noite Erick, segue o link do github 😁: https://github.com/felipecacezi/chatBotWhatsapp

Felipe Silva
Felipe Silva - 06/06/2025 11:26

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 🚀

DIO Community
DIO Community - 06/06/2025 14:16

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?

Erick Souza
Erick Souza - 06/06/2025 08:21

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! 🚀

Recomendado para tiWEX - End to End Engineering