Presidio et LiteLLM masquent les données personnelles face à un LLM externe : test de trois configurations sur 20 textes
Envoyer à un LLM cloud des courriels de clients avec noms complets, téléphones et adresses est un risque qu'un simple « nous ne conservons pas les logs » ne suffit pas à écarter. L'auteur d'une analyse publiée sur Habr montre comment configurer Microsoft Presidio pour le russe, ajouter ses propres règles et intégrer le masquage dans le proxy LiteLLM. Les noms sont remplacés par des balises avant la requête et rétablis après la réponse. Le test sur 20 textes fictifs a montré que l'adresse reste parfois partiellement visible.
Traité par IA depuis Хабр: NLP ; édité par Hamidun News
Situation familière : une entreprise veut faire passer par GPT ou Claude les demandes de ses clients, qui contiennent noms, téléphones, e-mails et adresses. Les juristes grimacent, les responsables sécurité demandent qu'on « fasse quelque chose ». La solution la plus simple consiste à ne pas envoyer du tout de données personnelles : les remplacer par des balises, attendre la réponse et réinsérer les valeurs d'origine. C'est précisément ce schéma, fondé sur Presidio et LiteLLM, qui a été décortiqué sur Habr.
Précision importante : nous n'avons que l'annonce de l'article, pas son texte complet. Ce qui suit reprend donc ce que l'auteur affirme directement, ainsi que la mécanique générale des outils, connue grâce à leur documentation.
Comment cela fonctionne sur un exemple simple
Presidio est une bibliothèque open source de Microsoft pour détecter et anonymiser les données personnelles. Elle comprend deux parties. L'Analyzer repère dans le texte des entités : noms, téléphones, e-mails, numéros de carte. L'Anonymizer remplace ce qui a été trouvé selon la règle choisie : suppression, masquage ou insertion d'une balise.
Imaginez la requête : « Ivan Petrov demande à être rappelé au +7 900 123-45-67 ». Le modèle reçoit : « <PERSON_1> demande à être rappelé au <PHONE_1> ». Il répond en utilisant les mêmes balises, et le proxy réinjecte les vraies valeurs. Le fournisseur externe ne voit pas les données réelles, et l'utilisateur obtient une réponse cohérente.
LiteLLM joue ici le rôle de proxy entre votre application et les fournisseurs de modèles. Il propose une intégration avec Presidio sous forme de guardrail : le masquage et la substitution inverse sont regroupés en un point unique, sans avoir à réécrire le code de chaque service.
Où les difficultés commencent avec le russe
Par défaut, Presidio est conçu pour l'anglais. Pour le russe, il faut brancher un modèle linguistique adapté, par exemple de spaCy, et vérifier qu'il trouve bien les noms à tous les cas grammaticaux. « Ивану Петрову », « у Ивана Петрова » et « Петрова И. А. » représentent pour le modèle des tâches différentes.
Il faut ensuite des règles personnalisées. Presidio permet d'ajouter ses propres reconnaisseurs fondés sur des expressions régulières, des mots de contexte et des listes. Dans le contexte russe, cela concerne les numéros de contrat, l'INN, le SNILS et les identifiants internes de clients. Il n'existe probablement pas de reconnaisseur prêt à l'emploi pour ces données, et il faudra l'écrire soi-même. L'auteur détaille cette configuration à part.
Ce qu'a montré le test
L'auteur a comparé trois configurations sur 20 textes fictifs. L'annonce ne donne pas de chiffres détaillés, mais une conclusion est formulée sans détour : dans certains cas, une partie de l'adresse reste visible.
La cause est typique des adresses. C'est une entité composée de la ville, de la rue, du numéro d'immeuble et de l'appartement. Le modèle repère sûrement la ville ou la région, mais ignore la rue avec son numéro ou la coupe en plein milieu. Un fragment suffit pour une fuite : « ул. Лесная, 12 » (rue Lesnaïa, 12), combiné à d'autres données, désigne déjà une personne.
Que faire en pratique
- Ne considérez pas le masquage comme un dispositif à activer puis à oublier. Constituez votre propre jeu de test de textes russes avec les données typiques de votre activité et mesurez la part d'omissions avant la mise en production.
- Couvrez les adresses, numéros de documents et identifiants internes avec des règles distinctes. Un modèle NER standard ne suffit pas pour eux.
- Décidez de ce qui compte le plus : laisser passer un élément en trop ou masquer trop. Pour les données clients, mieux vaut tolérer des faux positifs que des fuites.
- Conservez la correspondance entre balises et valeurs uniquement côté proxy et uniquement pour la durée de la requête.
Limites
Un échantillon de 20 textes fictifs est trop petit pour juger de la précision réelle sur un flux en production. Les vrais e-mails sont plus longs, avec fautes de frappe, abréviations et mélange de langues. Les balises dans le texte peuvent influencer la réponse du modèle : il perd un contexte comme le genre ou la nationalité, et la qualité baisse sur certaines tâches.
En résumé : l'association de Presidio et de LiteLLM est un moyen efficace et peu coûteux de réduire le risque lors de l'usage de LLM externes. Mais elle ne constitue pas une garantie tant que vous ne l'avez pas testée sur vos propres données et colmaté les brèches comme les adresses partiellement visibles. Pour les équipes qui envoient déjà des textes de clients vers des modèles cloud, cela vaut la peine de lire l'original et de reproduire le test sur leur propre jeu de données.
- 12 nov. 2026Jensen Huang quitte son poste de PDG de Nvidia : l’entreprise perd 1 400 milliards de dollars en deux semaines
- 12 nov. 2026Claude in Chrome exige une autorisation pour chaque clic sur les sites de catégorie 3
- 12 nov. 2026AWS Quick reçoit six agents pour les product managers : des plaintes clients à la spécification
- 12 nov. 2026Anthropic ferme Claude aux entreprises russes dès le 12 novembre, même avec une entité juridique à l'étranger
Questions clés sur cet article
Comment cela fonctionne sur un exemple simple?
Presidio est une bibliothèque open source de Microsoft pour détecter et anonymiser les données personnelles. Elle comprend deux parties. L'Analyzer repère dans le texte des entités : noms, téléphones, e-mails, numéros de carte. L'Anonymizer remplace ce qui a été trouvé selon la règle choisie : suppression, masquage ou insertion d'une balise. Imaginez la requête : « Ivan Petrov demande à être rappelé au +7 900 123-45-67 ». Le modèle reçoit : « <PERSON_1> demande à être rappelé au <PHONE_1> ».
Que sait-on sur Où les difficultés commencent avec le russe ?
Par défaut, Presidio est conçu pour l'anglais. Pour le russe, il faut brancher un modèle linguistique adapté, par exemple de spaCy, et vérifier qu'il trouve bien les noms à tous les cas grammaticaux. « Ивану Петрову », « у Ивана Петрова » et « Петрова И. А. » représentent pour le modèle des tâches différentes. Il faut ensuite des règles personnalisées. Presidio permet d'ajouter ses propres reconnaisseurs fondés sur des expressions régulières, des mots de contexte et des listes.
Que sait-on sur Ce qu'a montré le test ?
L'auteur a comparé trois configurations sur 20 textes fictifs. L'annonce ne donne pas de chiffres détaillés, mais une conclusion est formulée sans détour : dans certains cas, une partie de l'adresse reste visible. La cause est typique des adresses. C'est une entité composée de la ville, de la rue, du numéro d'immeuble et de l'appartement. Le modèle repère sûrement la ville ou la région, mais ignore la rue avec son numéro ou la coupe en plein milieu. Un fragment suffit pour une fuite : « ул.
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.
L'essentiel de l'IA — une fois par semaine
Sept actus qui ont vraiment compté, choisies à la main. Sans bruit ni communiqués.
C'est fait ! Vérifiez votre boîte mail pour la confirmation.