image

Accede a bootcamps ilimitados y a mĂĄs de 750 cursos para siempre

70
%OFF
Article image
Felipe Silva
Felipe Silva06/06/2025 07:13
Compartir
AWS - Agentes de IA em CampoRecomendado para tiAWS - Agentes de IA em Campo

đŸ€– 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
Sem Parar Corpay - Back-end do Zero a PrĂĄtica
Nublify - Primeiros passos em IA e Cloud
AWS - Agentes de IA em Campo
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 tiAWS - Agentes de IA em Campo