Todos os artigos
whatsappchatbotllmpmes

Chatbot de WhatsApp com LLM para PMEs: custo e fallback

Como montar um chatbot de WhatsApp com LLM para PMEs: arquitetura com webhook e fila, controle de custo por conversa e boas práticas de fallback.

3 min de leitura

Para uma PME brasileira, atender clientes no WhatsApp é essencial. Integrar um LLM pode automatizar respostas, mas exige arquitetura robusta e controle de custos. Neste artigo, mostramos um fluxo prático, com uma API compatível com OpenAI, para construir um chatbot eficiente.

Arquitetura básica: webhook, fila e modelo

O fluxo começa quando o cliente envia uma mensagem pelo WhatsApp. A Meta entrega essa mensagem ao seu webhook (um endpoint HTTPS na sua aplicação). Em vez de chamar o LLM diretamente no webhook, você coloca a mensagem em uma fila. Isso evita timeouts, distribui carga e permite retentativas.

Por que fila? Se o modelo demorar ou o provedor estiver instável, o webhook não fica bloqueado. A fila também permite processar mensagens em paralelo, mantendo a experiência fluida.

Exemplo de webhook que enfileira a mensagem

javascript
// webhook.js (Node.js + Express)
app.post('/whatsapp-webhook', async (req, res) => {
  const { from, text } = req.body; // dados vindos da Meta
  // Enfileira a tarefa para processamento assíncrono
  await queue.add('process-message', { from, text });
  res.sendStatus(200); // responde rápido à Meta
});

O worker consome a fila, chama o LLM e envia a resposta de volta via API do WhatsApp. O endereço da API (BASE_URL) e a chave (API_KEY) são fornecidos pela sua equipe de acesso; mantenha os dois em variáveis de ambiente.

Worker que chama o LLM

javascript
// worker.js
import { Queue, Worker } from 'bullmq';
import fetch from 'node-fetch';

const queue = new Queue('messages');
const worker = new Worker('messages', async job => {
  const { from, text } = job.data;
  const response = await fetch(`${process.env.BASE_URL}/chat/completions`, {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${process.env.API_KEY}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      model: 'gpt-4o-mini', // exemplo de modelo de baixo custo
      messages: [{ role: 'user', content: text }],
      max_tokens: 150,
      temperature: 0.7
    })
  });

  const data = await response.json();
  const answer = data.choices[0].message.content;
  // Envia resposta pelo WhatsApp (código omitido)
  await sendWhatsAppMessage(from, answer);
});

Controle de custo por conversa

Cada chamada ao modelo tem um custo associado, que depende do modelo escolhido e do número de tokens processados (entrada + saída). Para uma PME, é fundamental evitar surpresas na fatura. Algumas práticas:

  • Defina max_tokens baixo: respostas curtas reduzem tokens de saída. Para perguntas frequentes, 100–150 tokens costumam bastar.
  • Use modelos menores para tarefas simples: classificação de intenção ou respostas de FAQ podem usar modelos mais leves. Reserve modelos maiores para casos complexos.
  • Cache de contexto: se o cliente pergunta sobre o mesmo assunto, reaproveite o histórico em vez de reenviar tudo.
  • Monitore o uso: a resposta da API inclui usage.total_tokens. Registre esse valor por conversa para identificar picos e ajustar prompts.

Registre o consumo por conversa e acompanhe os modelos disponíveis no seu contrato, mas lembre-se: o custo real varia conforme o volume de tokens. Não há economia garantida; apenas uma gestão consciente.

Exemplo de monitoramento de tokens

javascript
const data = await response.json();
const totalTokens = data.usage.total_tokens;
console.log(`Conversa com ${from} consumiu ${totalTokens} tokens`);
// Salve em banco para análise posterior
await saveUsage({ from, totalTokens, timestamp: new Date() });

Boas práticas de fallback

Nem sempre o LLM responde bem. Problemas de rede, timeout ou baixa confiança podem ocorrer. Um fallback planejado evita que o cliente fique sem resposta.

  1. Timeout e retry: defina um timeout (ex.: 10 segundos). Se exceder, tente mais uma vez com backoff exponencial. Se falhar de novo, ative o fallback.
  2. Detecção de baixa confiança: para perguntas fora do escopo, o modelo pode gerar respostas incorretas. Use um classificador simples (palavras-chave) para redirecionar a um FAQ ou atendente humano.
  3. Fallback para FAQ ou humano: mantenha uma base de respostas prontas para as dúvidas mais comuns. Se o LLM não tiver certeza, responda com uma mensagem padrão e ofereça contato humano.

Trecho de código com fallback

javascript
async function getAnswerWithFallback(text) {
  try {
    const answer = await callLLM(text); // timeout 10s
    if (isLowConfidence(answer)) {
      return getFAQAnswer(text) || 'Posso transferir para um atendente? Digite SIM.';
    }
    return answer;
  } catch (error) {
    console.error('Erro no LLM, usando fallback:', error);
    return 'Desculpe, estou com dificuldades. Tente novamente em instantes ou fale com nossa equipe.';
  }
}

Cenário ilustrativo: clínica odontológica

Imagine uma clínica odontológica com 5 funcionários. O chatbot no WhatsApp responde perguntas sobre horários, agendamento e valores (sem números exatos, apenas faixas). A arquitetura:

  • Webhook recebe a mensagem e enfileira no Redis.
  • Worker chama o LLM com prompt específico: "Você é assistente de uma clínica odontológica. Responda de forma curta e educada."
  • Controle de custo: max_tokens=120, modelo leve. Uso médio por conversa fica em torno de 300 tokens (estimativa conservadora, sem garantia).
  • Fallback: se o cliente pergunta algo fora do escopo (ex.: "preciso de nota fiscal"), o chatbot responde com um link para o FAQ ou oferece falar com a recepção.

Esse fluxo reduz a carga da equipe e mantém o cliente atendido 24/7, com custo previsível e sem depender de um humano para todas as mensagens.

Conclusão

Montar um chatbot de WhatsApp com LLM para PMEs é viável com a arquitetura certa: webhook, fila e modelo. O controle de custo por conversa exige disciplina no uso de tokens e monitoramento constante. E o fallback garante que o cliente nunca fique sem resposta.

Quer entender como a sua empresa pode usar modelos de IA com atendimento e faturamento no Brasil? Fale com a gente — a equipe da TokenRecarga responde em português.

Quer usar isso na sua empresa?

Conte o que sua equipe precisa e preparamos uma proposta.

Continue lendo

Chatbot de WhatsApp com LLM para PMEs: custo e fallback · TokenRecarga