Presidio y LiteLLM ocultan datos personales a un LLM externo: prueba de tres configuraciones con 20 textos
Enviar a un LLM en la nube correos de clientes con nombres completos, teléfonos y direcciones es un riesgo que no se resuelve solo con «no guardamos registros». El autor de un análisis en Habr muestra cómo configurar Microsoft Presidio para el ruso, añadir reglas propias e integrar el enmascaramiento en el proxy LiteLLM. Los datos se sustituyen por etiquetas antes de la solicitud y se restauran tras la respuesta. Una prueba con 20 textos ficticios mostró que a veces la dirección queda parcialmente expuesta.
Procesado por IA desde Хабр: NLP; editado por Hamidun News
Una situación conocida: una empresa quiere pasar por GPT o Claude las solicitudes de sus clientes, y en ellas hay apellidos, teléfonos, correos y direcciones. Los abogados fruncen el ceño y los responsables de seguridad piden «hacer algo». La solución más sencilla es no enviar datos personales en absoluto: sustituirlos por etiquetas, esperar la respuesta y volver a colocar los valores. Precisamente este esquema lo analizaron en Habr con Presidio y LiteLLM.
Una salvedad importante: solo disponemos del anuncio del artículo, no del texto completo. Por eso, a continuación figura lo que el autor afirma de forma explícita, además de la mecánica general de las herramientas conocida por su documentación.
Cómo funciona en un ejemplo sencillo
Presidio es una biblioteca de código abierto de Microsoft para detectar y anonimizar datos personales. Consta de dos partes. El Analyzer encuentra entidades en el texto: nombres, teléfonos, correos electrónicos, números de tarjeta. El Anonymizer sustituye lo encontrado según la regla elegida: elimina, enmascara o inserta una etiqueta.
Imagine la solicitud: «Iván Petrov pide que le devuelvan la llamada al +7 900 123-45-67». Al modelo llega «<PERSON_1> pide que le devuelvan la llamada al <PHONE_1>». El modelo responde usando las mismas etiquetas, y el proxy vuelve a insertar los valores reales. El proveedor externo no ve los datos reales, y el usuario recibe una respuesta coherente.
LiteLLM actúa aquí como proxy entre su aplicación y los proveedores de modelos. Tiene una integración con Presidio en forma de guardrail: el enmascaramiento y la sustitución inversa se incorporan en un único punto, y no hace falta reescribir el código de cada servicio.
Dónde empiezan las dificultades con el ruso
De fábrica, Presidio está pensada para el inglés. Para el ruso hay que conectar un modelo de lenguaje adecuado, por ejemplo de spaCy, y comprobar que realmente encuentra nombres en distintos casos gramaticales. «Ivanu Petrovu», «u Ivana Petrova» y «Petrova I. A.» son tareas distintas para el modelo.
Después hacen falta reglas propias. Presidio permite añadir reconocedores propios basados en expresiones regulares, palabras de contexto y listas. Para la realidad rusa se trata de números de contrato, INN (identificación fiscal), SNILS (número de seguro de pensiones) e identificadores internos de clientes. Lo más probable es que no exista un reconocedor ya hecho para esos datos y haya que escribirlo uno mismo. El autor analiza esta configuración por separado.
Qué mostró la prueba
El autor comparó tres configuraciones con 20 textos ficticios. El anuncio no ofrece cifras detalladas, pero una conclusión se indica de forma explícita: en algunos casos parte de la dirección queda expuesta.
La causa es típica de las direcciones. Es una entidad compuesta por ciudad, calle, número de edificio y piso. El modelo marca con seguridad la ciudad o la región, pero omite la calle con el número o la corta por la mitad. Para una filtración basta un fragmento: «ul. Lesnaya, 12», combinado con otros datos, ya apunta a una persona.
Qué hacer en la práctica
- No considere el enmascaramiento como algo de «activar y olvidar». Reúna su propio conjunto de pruebas de textos en ruso con los datos típicos de su caso y mida la proporción de omisiones antes de pasar a producción.
- Cubra direcciones, números de documentos e identificadores internos con reglas separadas. Un modelo NER estándar no basta para ellos.
- Decida qué es más importante: dejar pasar algo de más o enmascarar demasiado. Con datos de clientes es mejor tolerar falsos positivos que filtraciones.
- Guarde la correspondencia entre etiquetas y valores solo en el lado del proxy y solo durante la solicitud.
Limitaciones
Una muestra de 20 textos ficticios es demasiado pequeña para juzgar la precisión real en un flujo en vivo. Los correos reales son más largos, con erratas, abreviaturas y mezcla de idiomas. Las etiquetas en el texto pueden influir en la respuesta del modelo: este pierde contexto como el género o la nacionalidad, y la calidad en algunas tareas disminuye.
En resumen: la combinación de Presidio y LiteLLM es una forma funcional y económica de reducir el riesgo al usar LLM externos. Pero no es una garantía mientras no la haya comprobado con sus propios datos y cerrado fallos como las direcciones parcialmente expuestas. Para los equipos que ya envían textos de clientes a modelos en la nube, merece la pena leer el original y repetir la prueba con su propio conjunto de datos.
- 12 nov 2026Jensen Huang deja el cargo de CEO de Nvidia: la empresa pierde 1,4 billones de dólares en dos semanas
- 12 nov 2026Claude in Chrome exige autorizar cada clic en los sitios de categoría 3
- 12 nov 2026AWS Quick incorpora seis agentes para product managers: de las quejas de los clientes a la especificación
- 12 nov 2026Anthropic cierra Claude desde el 12 de noviembre a las empresas de Rusia, incluso con entidad jurídica en el extranjero
Preguntas frecuentes sobre la noticia
Cómo funciona en un ejemplo sencillo?
Presidio es una biblioteca de código abierto de Microsoft para detectar y anonimizar datos personales. Consta de dos partes. El Analyzer encuentra entidades en el texto: nombres, teléfonos, correos electrónicos, números de tarjeta. El Anonymizer sustituye lo encontrado según la regla elegida: elimina, enmascara o inserta una etiqueta. Imagine la solicitud: «Iván Petrov pide que le devuelvan la llamada al +7 900 123-45-67». Al modelo llega «<PERSON_1> pide que le devuelvan la llamada al <PHONE_1>».
Dónde empiezan las dificultades con el ruso?
De fábrica, Presidio está pensada para el inglés. Para el ruso hay que conectar un modelo de lenguaje adecuado, por ejemplo de spaCy, y comprobar que realmente encuentra nombres en distintos casos gramaticales. «Ivanu Petrovu», «u Ivana Petrova» y «Petrova I. A.» son tareas distintas para el modelo. Después hacen falta reglas propias. Presidio permite añadir reconocedores propios basados en expresiones regulares, palabras de contexto y listas.
¿Qué se sabe sobre Qué mostró la prueba?
El autor comparó tres configuraciones con 20 textos ficticios. El anuncio no ofrece cifras detalladas, pero una conclusión se indica de forma explícita: en algunos casos parte de la dirección queda expuesta. La causa es típica de las direcciones. Es una entidad compuesta por ciudad, calle, número de edificio y piso. El modelo marca con seguridad la ciudad o la región, pero omite la calle con el número o la corta por la mitad. Para una filtración basta un fragmento: «ul.
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.
Lo esencial de la IA — una vez por semana
Siete historias que de verdad importaron, elegidas a mano. Sin ruido ni notas de prensa.
¡Listo! Revisa tu correo para la confirmación.