Ao vivo 18/11 · Turma 318 nov às 19:00 MSK — aula prática gratuita de agentes de IA · Turma 3 ao vivo começa 23/11Aula 18/11 →Turma 3 (23/11)
LançamentoAnálise · No radarХабр: NLP→ original

Presidio e LiteLLM escondem dados pessoais de LLMs externas: teste de três configurações em 20 textos

Enviar a uma LLM na nuvem e-mails de clientes com nome completo, telefones e endereços é um risco que não se resolve com um simples «não guardamos logs». O autor da análise publicada no Habr mostra como configurar o Microsoft Presidio para o russo, adicionar regras próprias e integrar o mascaramento ao proxy LiteLLM. Os nomes são substituídos por marcadores antes da requisição e restaurados após a resposta. O teste com 20 textos fictícios mostrou que o endereço às vezes permanece parcialmente exposto.

Processado por IA de Хабр: NLP; editado por Hamidun News
Presidio e LiteLLM escondem dados pessoais de LLMs externas: teste de três configurações em 20 textos
Fonte: Хабр: NLP. Colagem: Hamidun News.
Ouvir artigo
Ficha técnica e números-chave
ParâmetroDados
Fonte originalХабр: NLP ↗
Editor-chefe
Dado-chave #1O russo exige um modelo de NLP específico e reconhecedores próprios
Dado-chave #2Números de contrato, INN e SNILS são capturados por regras regex personalizadas
Verifique o endereço separadamenteparte dele pode permanecer em texto aberto

Situação familiar: a empresa quer passar pelo GPT ou pelo Claude as solicitações de clientes, e nelas há sobrenomes, telefones, e-mails e endereços. Os advogados torcem o nariz, o time de segurança pede que se faça «alguma coisa». A solução mais simples é não enviar dados pessoais de forma alguma: substituí-los por marcadores, esperar a resposta e recolocar os valores originais. Foi exatamente esse esquema, baseado em Presidio e LiteLLM, que foi analisado no Habr.

Uma ressalva importante: temos apenas o anúncio do artigo, e não o texto completo. Por isso, abaixo estão o que o autor declara diretamente e a mecânica geral das ferramentas, conhecida a partir da documentação delas.

Como funciona num exemplo simples

O Presidio é uma biblioteca open source da Microsoft para detectar e anonimizar dados pessoais. Ela tem duas partes. O Analyzer encontra entidades no texto: nomes, telefones, e-mails, números de cartão. O Anonymizer substitui o que foi encontrado de acordo com a regra escolhida: remove, mascara ou insere um marcador.

Imagine a requisição: «Ivan Petrov pede que liguem para o número +7 900 123-45-67». Para o modelo vai: «<PERSON_1> pede que liguem para o número <PHONE_1>». O modelo responde usando os mesmos marcadores, e o proxy recoloca os valores reais. O provedor externo não vê os dados reais, e o usuário recebe uma resposta coerente.

O LiteLLM faz aqui o papel de proxy entre a sua aplicação e os provedores de modelos. Ele tem integração com o Presidio na forma de guardrail: o mascaramento e a substituição reversa ficam num único ponto, sem necessidade de reescrever o código de cada serviço.

Onde começam as dificuldades com o russo

De fábrica, o Presidio é voltado ao inglês. Para o russo, é preciso conectar um modelo de linguagem adequado, por exemplo do spaCy, e verificar se ele realmente encontra nomes nos diferentes casos gramaticais. «Ивану Петрову», «у Ивана Петрова» e «Петрова И. А.» são tarefas diferentes para o modelo.

Depois, são necessárias regras próprias. O Presidio permite adicionar reconhecedores próprios baseados em expressões regulares, palavras de contexto e listas. Para a realidade russa, isso significa números de contrato, INN, SNILS e identificadores internos de clientes. Provavelmente não existe um reconhecedor pronto para esses dados, e será preciso escrevê-lo por conta própria. O autor analisa essa configuração em separado.

O que o teste mostrou

O autor comparou três configurações em 20 textos fictícios. O anúncio não traz números detalhados, mas uma conclusão é apontada de forma direta: em alguns casos, parte do endereço permanece exposta.

A causa é típica de endereços. Trata-se de uma entidade composta de cidade, rua, número do prédio e apartamento. O modelo marca com confiança a cidade ou a região, mas ignora a rua com o número ou a corta ao meio. Para haver vazamento, basta um fragmento: «ул. Лесная, 12» (rua Lesnaya, 12), combinado com outros dados, já aponta para uma pessoa.

O que fazer na prática

  • Não trate o mascaramento como «ligou e esqueceu». Monte um conjunto de testes próprio com textos em russo e os dados típicos do seu caso, e meça a taxa de omissões antes de ir para produção.
  • Cubra endereços, números de documentos e identificadores internos com regras separadas. Um modelo NER padrão não basta para eles.
  • Decida o que pesa mais: deixar passar algo ou mascarar demais. Para dados de clientes, é melhor tolerar falsos positivos do que vazamentos.
  • Guarde a correspondência entre marcadores e valores apenas no lado do proxy e somente durante a requisição.

Limitações

Uma amostra de 20 textos fictícios é pequena para julgar a precisão real em um fluxo de produção. E-mails reais são mais longos, com erros de digitação, abreviações e mistura de idiomas. Os marcadores no texto podem influenciar a resposta do modelo: ele perde contexto como gênero ou nacionalidade, e a qualidade em algumas tarefas cai.

O resumo é este: a combinação de Presidio e LiteLLM é uma forma funcional e barata de reduzir o risco ao usar LLMs externas. Mas não é uma garantia enquanto você não a testar com os seus dados e não fechar brechas como endereços parcialmente expostos. Para equipes que já usam modelos na nuvem com textos de clientes, vale a pena ler o original e repetir o teste com o próprio conjunto de dados.

História

Perguntas frequentes sobre a notícia

Como funciona num exemplo simples?

O Presidio é uma biblioteca open source da Microsoft para detectar e anonimizar dados pessoais. Ela tem duas partes. O Analyzer encontra entidades no texto: nomes, telefones, e-mails, números de cartão. O Anonymizer substitui o que foi encontrado de acordo com a regra escolhida: remove, mascara ou insere um marcador. Imagine a requisição: «Ivan Petrov pede que liguem para o número +7 900 123-45-67». Para o modelo vai: «<PERSON_1> pede que liguem para o número <PHONE_1>».

Onde começam as dificuldades com o russo?

De fábrica, o Presidio é voltado ao inglês. Para o russo, é preciso conectar um modelo de linguagem adequado, por exemplo do spaCy, e verificar se ele realmente encontra nomes nos diferentes casos gramaticais. «Ивану Петрову», «у Ивана Петрова» e «Петрова И. А.» são tarefas diferentes para o modelo. Depois, são necessárias regras próprias. O Presidio permite adicionar reconhecedores próprios baseados em expressões regulares, palavras de contexto e listas.

O que o teste mostrou?

O autor comparou três configurações em 20 textos fictícios. O anúncio não traz números detalhados, mas uma conclusão é apontada de forma direta: em alguns casos, parte do endereço permanece exposta. A causa é típica de endereços. Trata-se de uma entidade composta de cidade, rua, número do prédio e apartamento. O modelo marca com confiança a cidade ou a região, mas ignora a rua com o número ou a corta ao meio. Para haver vazamento, basta um fragmento: «ул.

ZK
Zhemal Khamidun — CPO da Alpina Digital, gerente de produto do AlpinaGPT. Cria produtos de IA desde 2019. O Hamidun News é um projeto pessoal que virou um agregador em produção com mais de 6.000 leitores.
✦ Unified AI Workspace · Nomad

Test Frontier LLMs & Autonomous Agents in One Workspace

Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.

Try Nomad AI →Launch Nomad Agent
O que você acha?
Carregando comentários…