- IA
- LLM
- LGPD
- Privacidade
- Arquitetura
IA no WhatsApp e LGPD: como atender clientes sem vazar dados sigilosos
Como coloquei um agente de IA para atender os clientes da MSI Informática no WhatsApp sem entregar nenhum dado sigiloso a terceiros, com modelo aberto, criptografia de envelope e a LGPD como requisito de arquitetura.
Este artigo conta um projeto que desenvolvo para a MSI Informática. Falo do problema, das decisões e da stack; os detalhes internos da implementação, da infraestrutura e do modelo ficam de fora, por respeito ao cliente.
Quando um cliente escreve para uma empresa no WhatsApp, ele não está mandando "dados". Está mandando o próprio nome, o telefone, o endereço de entrega, o problema que tem em casa, às vezes a nota fiscal, às vezes uma foto do documento. Ele faz isso porque confia que aquela conversa fica entre ele e a empresa.
Colocar uma IA para responder essas mensagens ficou fácil. O difícil, e o que quase ninguém discute no tutorial, é o que acontece com essa confiança quando a conversa sai da empresa para ser lida por um modelo de linguagem de terceiro.
Na MSI Informática, a resposta precisava ser simples: nenhum dado sigiloso de cliente vaza, de maneira nenhuma. Este artigo é sobre como isso virou arquitetura.
Tabela de conteúdos
O problema real: a conversa do cliente não é sua para entregarO que a LGPD diz sobre issoA pergunta que muda o desenhoO que ficou para trásAs três decisões1. Um modelo aberto, rodando num ambiente nosso2. Criptografia de envelope, com a chave sempre do nosso lado3. Nada da conversa num log, e isso é testadoO jurídico entrou antes do códigoO que isso não protege (e por que dizer)A stackO preço dessa escolhaO que eu levo para o próximo projeto
O problema real: a conversa do cliente não é sua para entregar
A forma mais comum de colocar IA num atendimento é mandar o histórico da conversa para a API de um provedor de LLM e devolver a resposta ao cliente. Funciona, e é rápido. Mas, do ponto de vista de quem confiou os dados à empresa, acontece o seguinte:
- a conversa inteira, com tudo o que o cliente contou, passa a existir nos servidores de outra empresa;
- ela pode ficar guardada em logs, em históricos de requisições, em sistemas de monitoramento, por um prazo que você não define;
- e, dependendo do contrato, pode ser usada para treinar o modelo de outra pessoa.
O cliente não foi perguntado sobre nada disso. Ele escreveu para resolver um problema com a MSI, não para alimentar um provedor de IA.
Isso não é só uma questão de bom senso. É uma questão jurídica.
O que a LGPD diz sobre isso
Não sou advogado. O que segue é a leitura de engenharia que guiou as decisões; o enquadramento jurídico de cada caso é com o jurídico da empresa.
Pela Lei Geral de Proteção de Dados (Lei 13.709/2018), a empresa que atende é a controladora dos dados do cliente. Mandar a conversa a um provedor de IA é compartilhar esses dados com um terceiro que os trata em nome dela. Alguns pontos da lei pesam diretamente sobre isso:
- Finalidade e necessidade (art. 6º). O dado foi entregue para o atendimento. Usá-lo para outra coisa, como o treino do modelo de um fornecedor, ou expor mais do que o necessário, fere os princípios da lei.
- Transparência (art. 9º). O titular tem direito de saber com quem seus dados são compartilhados e para quê. Uma IA que manda a conversa para um terceiro sem isso estar claro na política de privacidade é um compartilhamento escondido.
- Segurança desde a concepção (art. 46). A empresa precisa adotar medidas técnicas e administrativas para proteger os dados contra acessos não autorizados, e a lei pede isso desde a concepção do produto, não depois do incidente.
- Transferência internacional (art. 33). Processar dados pessoais fora do país só é permitido em hipóteses específicas, com garantias, e a maior parte da infraestrutura de IA está fora dele.
- Responsabilidade (arts. 42 e 44). O tratamento que não oferece a segurança esperada é irregular, e quem trata o dado responde pelo dano que ele causar.
- Incidentes e sanções (arts. 48 e 52). Um vazamento relevante precisa ser comunicado à ANPD e aos titulares, e as multas chegam a 2% do faturamento, limitadas a R$ 50 milhões por infração, sem contar o dano à reputação.
Ou seja: mandar a conversa do cliente a um terceiro, sem garantias técnicas, sem contrato adequado e sem transparência, é tratar dado pessoal de forma irregular. Não é uma melhoria a deixar para depois. É um requisito que decide a arquitetura.
A pergunta que muda o desenho
A pergunta natural seria "em qual provedor de IA eu confio?". Ela leva a comparar políticas de retenção, ler termos de uso e torcer para que nada mude no próximo trimestre. A privacidade do cliente fica apoiada numa promessa.
A pergunta que eu passei a fazer foi outra: "como montar isso para que nenhum terceiro precise ser confiável?"
Ela troca o critério. Em vez de "quem promete guardar menos", vale "quem consegue ver menos". E, levada a sério, ela decidiu três coisas: onde o modelo roda, como o texto viaja e o que pode aparecer num log.
O que ficou para trás
Duas alternativas pareciam razoáveis e foram descartadas:
- A API de um LLM comercial. A melhor qualidade de resposta com o menor esforço. Mas a conversa chega em claro num serviço que não controlamos, e a única proteção é o contrato. Foi a primeira versão do desenho, e foi substituída antes de ir para produção.
- Mascarar os dados pessoais antes de enviar. Parece elegante: trocar nome, telefone e endereço por marcadores e mandar o resto. Na prática, nenhum algoritmo reconhece com segurança qualquer dado pessoal num texto livre. Um "moro em frente à padaria do Seu João" passa por qualquer filtro. Uma proteção que falha em silêncio é pior que nenhuma, porque dá a sensação de que o problema está resolvido.
As três decisões
1. Um modelo aberto, rodando num ambiente nosso
Em vez de chamar a API de alguém, o agente usa um modelo de pesos abertos, com licença que permite uso comercial, rodando num ambiente de GPU isolado, que nós operamos.
Nenhuma API de IA de terceiro recebe a conversa. Quem gera a resposta é código nosso. E nenhum dado de cliente treina modelo de ninguém.
2. Criptografia de envelope, com a chave sempre do nosso lado
Rodar o modelo fora não basta: a infraestrutura de GPU ainda tem filas, armazenamento temporário, logs e rede. Se o texto passasse por ali em claro, eu só teria trocado um terceiro por outro.
Por isso, todo pedido e toda resposta da IA viajam cifrados com criptografia de envelope:
- cada resposta usa uma chave de dados própria, que não abre nenhuma outra;
- essa chave é protegida por uma chave mestra que fica na nossa conta e nunca sai dela;
- o processo que gera a resposta só decifra o pedido em memória, durante a geração, e devolve a resposta já cifrada.
O resultado é uma frase verificável: fora do nosso ambiente, a conversa só existe em claro na memória do processo, durante os segundos da geração. Em qualquer outro lugar, é um bloco de bytes que só a nossa chave abre.
3. Nada da conversa num log, e isso é testado
Criptografia não adianta se o texto aparece em claro numa mensagem de erro.
- Os logs registram só identificadores, tempos e códigos de erro. Nunca o texto, nunca a mensagem da exceção, que costuma carregar pedaços da entrada.
- Há um teste que confere isso: nenhuma linha de log pode conter o texto de entrada ou de saída. Uma regra de privacidade que não está num teste é uma intenção, não uma garantia.
O jurídico entrou antes do código
A arquitetura resolve a parte técnica, mas a LGPD também pede transparência e contrato. Por isso, antes de o agente responder o primeiro cliente:
- a política de privacidade da MSI passou a dizer que as respostas podem ser geradas por IA, quem processa o texto, para quê, onde, e como ele é protegido;
- o fornecedor da infraestrutura de GPU entrou na política como suboperador, e dele são exigidos o contrato de tratamento de dados e o relatório de auditoria de segurança.
O que isso não protege (e por que dizer)
Seria fácil escrever "criptografia ponta a ponta" e parar aqui. Não seria verdade, e respeitar o cliente inclui não exagerar o que se promete a ele.
- O WhatsApp está no caminho por definição. A criptografia descrita aqui protege o trecho entre o nosso ambiente e a IA.
- O banco do sistema guarda as conversas, porque o atendimento precisa delas. Ele fica do lado de dentro, protegido por controle de acesso.
- Quem administra a máquina da GPU, durante a geração, poderia em tese ler a memória. Nenhuma criptografia resolve isso sem hardware de computação confidencial. É por isso que o contrato e a auditoria do fornecedor são exigidos, e não opcionais.
Declarar o limite é parte da solução: é ele que diz o que exigir em contrato e o que já está resolvido na arquitetura.
A stack
O sistema é a base do CRM da MSI: um inbox omnichannel em que as mensagens do WhatsApp viram conversas, o agente de IA responde, e qualquer atendente humano pode assumir a conversa a qualquer momento.
- Backend: TypeScript e Node.js 22, em módulos separados por responsabilidade (chat, canal e agente), conversando por filas e contratos;
- Painel de atendimento: React com React Router;
- Banco: PostgreSQL;
- Geração das respostas: Python, com um modelo de pesos abertos;
- Organização: monorepo com pnpm, infraestrutura como código e testes com Jest e pytest, escritos antes do código.
O preço dessa escolha
Chamar uma API seria muito mais simples. Operar o próprio modelo cobra:
- Partida a frio: para não pagar GPU parada, a primeira resposta depois de um tempo sem uso demora mais, enquanto a máquina sobe; quente, a resposta sai em segundos.
- Qualidade: um modelo aberto de porte acessível não é o melhor modelo comercial. A escolha é por medição, não por fama.
- Mais peças: geração assíncrona, novas tentativas com espera crescente, circuit breaker para quando o provedor cai e uma varredura periódica para o retorno que não chega.
- Dois lados do contrato: quem cifra e quem decifra são escritos em linguagens diferentes, e os dois são testados contra os mesmos exemplos fixos, para concordar byte a byte.
Paguei esse custo porque, aqui, privacidade era requisito, não diferencial.
O que eu levo para o próximo projeto
- O dado do cliente não é seu para entregar. A empresa recebe a conversa para atender, e é só para isso que ela pode ser usada.
- A LGPD é requisito de arquitetura. Neste caso, ela decidiu o modelo, o formato das mensagens e até o que pode aparecer num log.
- Desenhe para não precisar confiar. Contrato e auditoria continuam necessários, mas "o que o terceiro consegue ver?" vale mais que "o que o terceiro promete?".
- Diga o limite em voz alta. "Só existe em claro na memória durante a geração" é uma frase verificável. "Ponta a ponta" quase nunca é.
Se você vai colocar IA para atender os clientes da sua empresa, a primeira conversa não é sobre qual modelo responde melhor. É sobre onde a conversa do seu cliente vai existir em claro, e quem consegue vê-la ali.
Yago MarinhoEngenheiro de Software Sênior. Construo produtos com IA, do design ao deploy.