Article image
Felipe Silva
Felipe Silva06/06/2025 07:13
Compartilhe

🤖 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

Compartilhe
Comentários (4)
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! 🚀