Executando verificação de segurança...
1

Como coloquei IA pra conversar com banco de dados de produção (sem expor dados sensíveis)

Fala, pessoal. Construí o Bunto ERP (sistema de gestão completo, 46 módulos) e uma das features que mais gera reação é o chat com IA que responde perguntas sobre os dados reais da empresa. O cara digita "quanto faturei em janeiro?" e recebe a resposta em segundos, com gráfico e tudo.

Toda vez que mostro isso, a primeira pergunta dos devs é a mesma: "tá, mas e a LGPD? Você tá mandando dado de cliente pra IA?"

Justo. E a resposta curta é: a IA nunca encosta no banco de dados. Vou explicar como funciona de verdade.

A ideia errada que todo mundo tem

O caminho óbvio seria plugar a IA direto no banco. Tipo dar um acesso SQL pra ela e deixar ela se virar. Tem ferramentas que fazem isso (tipo o MCP server de PostgreSQL).

O problema é que se você der acesso SQL direto, a IA pode fazer SELECT cpf, email FROM clientes e pronto, dados pessoais expostos. Pode fazer query pesada que trava seu banco. Pode, se você bobear nas permissões, até deletar coisa.

Eu não quis ir por esse caminho.

O que eu fiz no lugar

Criei uma camada intermediária de tools. São funções Python que eu controlo e que decidem exatamente o que a IA pode ver e o que não pode.

O fluxo real é assim:

  1. O usuário digita a pergunta no chat do ERP
  2. A API Django recebe e joga pra um worker Celery processar em background
  3. Um orquestrador escolhe o melhor modelo pra aquela pergunta (Claude, GPT ou Gemini)
  4. A IA recebe a mensagem junto com a lista de ferramentas que ela pode chamar
  5. Ela decide qual tool usar. Tipo: buscar_vendas(data_inicio="2026-01-01", data_fim="2026-01-31")
  6. A tool consulta o banco via ORM do Django (não SQL direto) e filtra os dados sensíveis antes de devolver
  7. A IA recebe dados limpos e monta a resposta
  8. Resposta chega pro usuário via streaming com Socket.IO

O ponto chave: a IA nunca toca no banco. Ela chama funções que eu escrevi. É a diferença entre dar a chave do cofre e dar um formulário de pedido.

As tools funcionam como um firewall de dados

São cerca de 28 ferramentas que a IA pode chamar. Cada uma retorna só o que faz sentido pra análise, nunca dados pessoais.

Quando alguém pergunta "quais meus 5 maiores clientes?", a tool retorna isso pra IA:

[
  {"nome": "Acme Corp", "cidade": "São Paulo", "total_compras": 125000.00},
  {"nome": "Beta Ltda", "cidade": "Curitiba", "total_compras": 98000.00}
]

O que a tool nunca retorna:

{"cpf": "123.456.789-00", "email": "[email protected]", "telefone": "(11) 99999-0000"}

E isso não é configuração, é código. A tool é uma função Python que faz a consulta via ORM e monta o dicionário de resposta escolhendo campo a campo o que vai. Os dados sensíveis que estão no banco com criptografia AES/Fernet nem seriam legíveis se vazassem, mas nem chegam a ser consultados.

A proteção em camadas

O dado sensível tem tripla proteção:

Criptografado no banco. CPF, email, telefone ficam criptografados com Fernet/AES. Mesmo que alguém acesse o banco direto, vê só gAAAAABl.... A chave fica em variável de ambiente do backend.

Filtrado na tool. Os campos sensíveis simplesmente não entram no retorno da função. A IA não recebe o que não precisa.

Isolado por empresa. Multi-tenancy real. Empresa A não vê dado da empresa B. Isso é forçado na camada de serviço, não depende da IA "se comportar".

O orquestrador de modelos

Uma coisa que achei legal de compartilhar: o sistema tem um modo AUTO que escolhe qual modelo usar dependendo da complexidade da pergunta.

Pergunta simples tipo "quantos pedidos hoje?" vai pro modelo mais barato. Pergunta complexa que precisa cruzar dados de vários módulos vai pro Claude ou GPT-4. Isso economiza crédito sem perder qualidade.

Cada empresa/usuário tem um sistema de créditos que controla o uso e pode bloquear se estourar o limite. As chaves de API dos provedores ficam criptografadas com AES-256 no banco, nunca em plain text.

E a LGPD, tá certo?

A LGPD não proíbe usar IA com dados. Ela exige base legal pro tratamento, finalidade específica, acessar só o necessário e ter medidas de segurança.

No caso: a base legal é legítimo interesse (análise operacional do próprio negócio). A finalidade é definida por tool (vendas, estoque, financeiro). A minimização tá garantida porque a IA não recebe CPF, email, telefone. E a segurança tá na criptografia + filtro + multi-tenancy.

O que não pode é jogar dados pessoais em texto puro num prompt sem proteção nenhuma. E tem muita gente fazendo isso por aí.

Pra quem tá pensando em fazer algo parecido

Se eu fosse começar de novo, faria do mesmo jeito: tools controladas, nunca SQL direto pra IA. É mais trabalho no começo (cada tool precisa ser escrita e testada), mas o controle que você ganha é absurdo. Você sabe exatamente o que a IA vê e o que não vê.

Se alguém aqui já implementou algo parecido ou tem uma abordagem diferente, quero trocar ideia nos comentários.

E se quiser ver funcionando na prática, o Bunto tá aberto pra teste em bunto.com.br - 30 dias grátis. Temos também uma comunidade ativa de devs e entusiastas, o link tá no site.

Carregando publicação patrocinada...