Alternativa a Microsoft Presidio para la API: Nonimo Gateway
· Escrito y mantenido por Nonimo
Si buscas una alternativa a Microsoft Presidio para proteger las llamadas a la API de OpenAI, la pregunta de fondo es quién monta el camino completo: quitar nombres, DNI y NIF antes de la llamada y devolver los datos reales en la respuesta. Nonimo Gateway es esa capa ya hecha, un proxy compatible con OpenAI que corre en tus servidores.
Nonimo Gateway se instala en tus propios servidores. Ver planes y contactar.
Presidio, nacido en Microsoft, es un conjunto de herramientas de código abierto, modular y bien documentado para encontrar y anonimizar datos personales, con reconocedores españoles para el NIF y el NIE. Esta guía explica dónde se queda corto para las llamadas a un modelo de lenguaje y dónde entra Nonimo Gateway.
Microsoft Presidio, hoy bajo Data Privacy Stack
Se sigue buscando como Microsoft Presidio, pero el proyecto está pasando a un gobierno comunitario independiente, dentro de la organización de GitHub Data Privacy Stack. El software se sigue llamando Presidio y la licencia sigue siendo MIT.
Si ya lo usas, revisa dos cosas. El repositorio antiguo, github.com/microsoft/presidio, redirige a github.com/data-privacy-stack/presidio. Y las imágenes Docker viven ahora en ghcr.io/data-privacy-stack/, mientras que las antiguas de mcr.microsoft.com/presidio-* ya no se actualizan.
Dónde no encaja Presidio para las llamadas a la API
Presidio es una biblioteca con servicios REST para detectar y anonimizar, no un proxy. Para proteger el tráfico de tu aplicación hacia la API de un modelo, estos son los huecos que dejan ver sus propias páginas.
No es un proxy compatible con OpenAI
En las páginas que revisamos, Presidio no documenta un proxy compatible con OpenAI, ni streaming, ni llamadas a herramientas. La capa que intercepta cada petición, pasa el texto al analyzer y al anonymizer y la reenvía al modelo la escribes y la mantienes tú. El analyzer y el anonymizer son contenedores separados y no hay requisitos de hardware publicados, así que los dimensionas probando.
Los datos reales solo vuelven con encrypt
El anonymizer aplica a cada dato un operador: replace, redact, mask, hash, encrypt y algunos más. Para deshacerlo, Presidio documenta un solo desanonimizador integrado, decrypt, así que de serie solo es reversible encrypt. Si cambias el nombre de un cliente por una etiqueta con replace, Presidio no trae de serie nada que vuelva a poner el nombre en la respuesta del modelo.
El español hay que configurarlo, y el CUPS hay que escribirlo
Presidio sí trae reconocedores para España: ES_NIF, ES_NIE y ES_PASSPORT. Lo que no está en esa lista es el CUPS, el código del punto de suministro que va en cada factura de luz y de gas, y que en una gestoría o una administración de fincas sale en muchos documentos. Si lo necesitas, toca escribir el reconocedor.
El idioma pesa más. En su configuración por defecto, Presidio trae reconocedores y modelos para inglés. Un NIF se reconoce por su forma y su letra de control; un nombre y dos apellidos en medio de un escrito depende del modelo de español que elijas, instales y pruebes, y lo mismo con el catalán, el gallego o el euskera si tus documentos los usan.
El streaming es donde fallan las capas caseras
Casi todas las interfaces de chat reciben la respuesta en trozos pequeños. Si tu capa cambió un nombre por <PERSON_1>, el streaming puede partir esa etiqueta en dos o tres trozos, y un código que sustituye trozo a trozo no la ve. Hay que retener el texto justo para reconocerla, poner el valor real y soltar el resto sin esperar a la respuesta entera. El fallo típico no hace ruido: una etiqueta suelta en una respuesta de cada muchas.
LiteLLM, que puede usar Presidio como guardrail, documenta una opción, output_parse_pii, que devuelve los valores en las sustituciones de tipo replace. Sobre cómo se comporta en streaming, esa página no dice nada.
Si lo que necesitas es una biblioteca para limpiar conjuntos de datos, logs, imágenes o datos estructurados en Python o Spark, Presidio es la opción natural.
Y el RGPD sigue ahí
Cambiar un DNI por una etiqueta que luego vas a deshacer es seudonimización. El RGPD la define en su artículo 4.5 como tratar los datos de forma que ya no puedan atribuirse a un interesado sin utilizar información adicional, siempre que esa información figure por separado y esté sujeta a medidas técnicas y organizativas. En una capa propia, esa información adicional es la tabla de correspondencias entre etiquetas y valores reales, y dónde vive y quién la ve es parte del diseño.
La AEPD recuerda en sus preguntas frecuentes que los datos seudonimizados siguen siendo datos personales. La diferencia entre las dos palabras la desarrollamos en anonimizar o seudonimizar datos para la IA.
Presidio y Nonimo Gateway, cara a cara
| Presidio | Nonimo Gateway | |
|---|---|---|
| Qué es | Biblioteca y servicios REST de detección y anonimización | Proxy privado para llamadas a la API del modelo |
| Despliegue | Contenedores separados para analyzer y anonymizer, que conectas tú | En tus propios servidores |
| Endpoint compatible con OpenAI | No documentado | Sí, cambias base_url |
| Devuelve los datos reales en la respuesta | Solo con el operador encrypt, vía decrypt | Sí, los valores reales vuelven en la respuesta |
| Idiomas | Inglés por defecto; los demás añadiendo modelos | Español y los de los países que cubre |
| Documentos españoles | NIF, NIE y pasaporte | DNI, NIE, NIF y CUPS, entre otros |
| Licencia | MIT, código abierto | Comercial, por planes |
Cómo lo hace Nonimo Gateway
Nonimo Gateway se instala en tus propios servidores y es compatible con OpenAI. Tu aplicación mantiene su código y cambia un ajuste:
import os
from openai import OpenAI
client = OpenAI(
base_url="https://llm-gateway.tu-empresa.internal/v1", # tu Nonimo Gateway
api_key=os.environ["OPENAI_API_KEY"], # tu propia clave de OpenAI
)
A la ida, cambia los datos personales por etiquetas antes de que la petición llegue a OpenAI. A la vuelta, devuelve los valores reales a la respuesta. Reconoce los documentos y números de cada país en el que trabaja; en España, el DNI, el NIE, el NIF y el CUPS. Usas tu propia clave de OpenAI y, si ya tienes LiteLLM, hay un plugin para él.
Lo que hace es seudonimizar, y no lo vendemos como otra cosa. Te ayuda a aplicar la seudonimización del artículo 4.5 en cada llamada, con la correspondencia en tu servidor y no en el del proveedor del modelo. Lo demás, contrato de encargo, base jurídica y qué datos entran, sigue siendo tuyo, como explicamos en qué IA es conforme al RGPD.
Preguntas antes de elegir
- ¿Tenemos que proteger llamadas a la API de un modelo, o limpiar datos guardados? Lo primero apunta a un proxy; lo segundo, a una biblioteca.
- ¿Qué idiomas y qué documentos aparecen en nuestros textos? Repasa qué datos identifican en un documento, que no son solo el nombre.
- ¿Necesitamos que la respuesta vuelva con los nombres reales? ¿Usamos streaming?
- ¿Quién va a mantener el código de unión dentro de un año?
Para saber qué hace OpenAI con lo que le llega, está qué hace ChatGPT con tus datos. Y para una norma escrita que tu equipo pueda seguir junto a cualquier control técnico, parte de nuestra política de uso de IA en empresas.
Sin código de unión que mantener
Si prefieres no ser dueño de un analyzer, un anonymizer, una tabla de correspondencias y un restaurador de respuestas, Nonimo Gateway te da el camino entero dentro de tu servidor. Mira los planes y escríbenos para probarlo con tu propio tráfico.
Este texto informa, no asesora. Tu caso concreto lo resuelve tu DPD o tu abogado.
Fuentes
Cada una, con el dato que sostiene. Consultadas el 20 de octubre de 2026.
- Presidio, transición del proyecto. El paso a gobierno comunitario bajo Data Privacy Stack, el apoyo de Microsoft y la licencia MIT.
- Presidio, repositorio en GitHub. La descripción del proyecto y la redirección desde el repositorio de Microsoft.
- Presidio, portada de la documentación. Uso desde Python, Spark, Docker y Kubernetes, y tapado en imágenes.
- Presidio, instalación. Las imágenes Docker separadas en ghcr.io, que las antiguas ya no se actualizan y que no hay requisitos de hardware publicados.
- Presidio, anonymizer. Los operadores y el desanonimizador decrypt.
- Presidio, entidades soportadas. El catálogo por país, con ES_NIF, ES_NIE y ES_PASSPORT para España.
- Presidio, idiomas. Inglés por defecto y motor de lenguaje adaptable.
- LiteLLM, enmascarado de datos personales con Presidio. Enmascarar o bloquear por tipo de dato y la opción
output_parse_pii. - RGPD, texto del DOUE en el BOE. La definición de seudonimización del artículo 4.5.
- AEPD, pregunta frecuente ¿Y los datos seudonimizados son datos personales?. Que lo son y quedan sujetos a las obligaciones de protección de datos.
Nonimo es el software que hace esto en tu propio ordenador: tapa nombres, DNI y expedientes antes de que el texto llegue a ChatGPT. Sin cuenta, y la app lo hace sin que los datos de tus clientes salgan de tu equipo.
Preguntas frecuentes
¿Microsoft Presidio sigue siendo un proyecto de Microsoft?
Ya no. Presidio nació en Microsoft y está pasando a ser un proyecto de código abierto independiente y gobernado por su comunidad, bajo una organización de GitHub llamada Data Privacy Stack. El repositorio antiguo de Microsoft redirige allí, la licencia sigue siendo MIT y Microsoft dice que apoya la transición.
¿Presidio reconoce el NIF y el NIE españoles?
Sí. Su lista publicada de entidades incluye tres reconocedores para España: NIF, NIE y pasaporte. Lo que conviene probar es el resto del texto, porque en su configuración por defecto Presidio trae modelos para inglés, y los nombres de personas en un escrito en español dependen del modelo de idioma que le añadas. El CUPS de las facturas de luz y gas no está en esa lista.
¿Qué diferencia hay entre Presidio Analyzer y Presidio Anonymizer?
El analyzer encuentra los datos personales en el texto y devuelve qué ha encontrado y dónde. El anonymizer toma esos resultados y aplica a cada uno un operador, como sustituir, borrar, enmascarar, aplicar un hash o cifrar. Se distribuyen como imágenes Docker separadas y eres tú quien las despliega y las conecta.
¿Puede Presidio devolver los datos reales en la respuesta del modelo?
Solo con un operador. Presidio documenta un solo desanonimizador integrado, decrypt, que deshace el operador encrypt con su clave. Sustituir, borrar, enmascarar y el hash no los revierte Presidio. LiteLLM, que puede usar Presidio como guardrail, documenta su propia opción para volver a poner los valores sustituidos con replace.
¿Presidio es un proxy compatible con OpenAI?
No. Es una biblioteca de detección y anonimización con servicios REST. Ponerse entre tu aplicación y la API del modelo, cambiar los datos a la ida, devolverlos a la vuelta y manejar las respuestas en streaming es trabajo que montas tú alrededor. Nonimo Gateway es esa capa ya construida.
¿Cuánto cuesta usar Presidio?
Presidio no tiene versión de pago. El coste real es el tiempo de tu equipo para desplegarlo, ajustarlo al español, conectarlo al tráfico hacia el modelo y mantenerlo.