PromptShieldpromptShieldpromptShield
Verlo en acciónFuncionesCómo funcionaFlujos de trabajo con IATranquilidadGestión de licenciasSupervisión del cumplimiento
PreciosDescargar
Desarrolladores
ResumenDocumentación de la APIClaves de API
Preguntas frecuentes
Iniciar sesión
  1. Inicio
  2. Blog
  3. Engineering
Engineering2026-06-08· 9 min de lectura

Por qué construimos nuestro propio motor de datos personales en lugar de embarcar Presidio

Microsoft Presidio es uno de los mejores conjuntos de herramientas de código abierto para datos personales que existen. Leímos su código, aprendimos de él y aun así decidimos no embarcarlo. Este es el argumento honesto de por qué.

La versión corta: Presidio encuentra datos personales dentro de un bloque de texto. promptShield hace algo más estrecho y más físico — toma un PDF en el portátil de alguien, sin conexión a internet, y deja que el usuario haga clic sobre un nombre en la página y lo vea tacharse en negro. Ambas tareas consisten en «encontrar datos personales», así que suenan al mismo trabajo. No lo son. Y las diferencias entre ellas son exactamente las partes donde habríamos pasado todo nuestro tiempo peleándonos con Presidio para que hiciera algo para lo que nunca se concibió.

Así que no se trata de reinventar la rueda por el gusto de hacerlo. Necesitábamos de verdad otra rueda. He aquí por qué.

Lo que entregamos no es un flujo de texto

Presidio piensa en texto plano: usted le da una cadena y le devuelve una lista de posiciones — «los caracteres 40 a 51 son un nombre». Es perfecto si analiza mensajes de chat o una columna de base de datos, donde el texto no es más que texto. Es el punto de partida equivocado para nosotros, porque nuestro usuario no mira una cadena. Mira una página.

Una página de PDF no es una línea de texto — es una maquetación. Las palabras ocupan casillas en coordenadas concretas. Un mismo nombre puede partirse entre dos líneas, repartirse entre dos columnas o incluso aparecer girado. Y el usuario no oculta «los caracteres 40 a 51» — tacha en negro un rectángulo en la página que tiene delante. Así que, para nosotros, encontrar el nombre y saber dónde se sitúa en la página no son dos pasos distintos que pudiéramos pegar. Son el mismo paso.

Esto es lo que significa en la práctica. Cuando nuestra canalización encuentra «Pierre Dubois» partido entre el final de una línea y el principio de la siguiente, tiene que convertir ese único nombre en dos rectángulos y tachar ambos. Cuando encuentra un nombre en la página 1, lo recuerda y lo tacha automáticamente en la página 4, para que el revisor no tenga que señalar a la misma persona once veces a mano. Presidio no tiene noción de nada de esto — solo sabe de posiciones en una cadena. Para hacerlo funcionar, habríamos tenido que envolverlo en tanto código de página y maquetación que Presidio habría gestionado la parte pequeña y fácil, y nuestro propio código habría gestionado todo lo que de verdad es difícil.

No ejecutamos un modelo. Ejecutamos cinco capas que votan.

En Presidio, cada detector trabaja por su cuenta y usted simplemente reúne todo lo que encuentran. Es flexible, pero tiene una trampa: si alguno de los detectores tiene el gatillo fácil, todas sus falsas alarmas acaban en sus resultados. Su precisión queda arrastrada hasta la del detector más ruidoso.

Nosotros tomamos un enfoque distinto: nuestros detectores tienen que ponerse de acuerdo entre sí. Cinco de ellos recorren la misma página:

  • Expresiones regulares — patrones estructurados de alta precisión (NSS, IBAN, correo electrónico, teléfono, identificadores de empresa), con una ventana de contexto, de modo que un simple número de 9 cifras no es un NSS a menos que las palabras de alrededor lo confirmen.
  • Entidades con spaCy — modelos estadísticos por idioma, uno para cada uno de los 7 idiomas.
  • GLiNER — reconocimiento de entidades sin entrenamiento previo para los tipos que los modelos entrenados pasan por alto.
  • Entidades con transformadores — reconocimiento respaldado por transformadores allí donde los modelos más pequeños se quedan cortos en detección.
  • LLM — opcional, GGUF local o una API remota, para los casos de contexto más sutiles.

En lugar de limitarnos a reunir lo que encuentran, los hacemos votar. Si dos detectores señalan lo mismo, confiamos más en ello; si tres coinciden, todavía más. Algo que solo detectó un detector nervioso tiene que superar un listón mucho más alto antes de que se lo mostremos al usuario. Esta lógica de votación — cómo ponderamos los acuerdos, fusionamos detecciones que se solapan y arrastramos resultados entre páginas — es el producto. Es de donde viene de verdad nuestra precisión. Presidio le da los detectores, pero deja deliberadamente en sus manos la decisión sobre cómo reconciliarlos. Y escribir esa decisión es escribir la mayor parte de un motor — así que lo escribimos entero.

Tiene que funcionar con el cable de red desconectado

promptShield es una aplicación de escritorio sin conexión. Toda la propuesta es que sus documentos nunca salen de su dispositivo — sin ida y vuelta a la nube, sin clave de API, sin «le prometemos que no lo registramos». Es una restricción dura, y reconfigura la cuestión de la dependencia.

Presidio también puede ejecutarse en local — pero no es así como lo usa la mayoría de la gente. Para sacarle buena precisión, el camino habitual es conectarlo a los servicios lingüísticos en la nube de Microsoft o de Amazon. Esas son exactamente las llamadas a la nube que hemos prometido no hacer jamás. Queda la opción totalmente local de Presidio, que se apoya en modelos más pequeños y ligeros — y resulta ser justo la configuración que medimos en nuestra comparativa, la que inunda los documentos financieros de falsos positivos.

Y va más allá de la precisión. Tenemos que empaquetar cada modelo de IA dentro del instalador de la aplicación y ejecutarlo en el dispositivo del usuario. Cada modelo tiene que empaquetarse, fijarse a una versión, comprobarse frente a manipulaciones, cargarse en memoria y — la parte de la que nadie le avisa — descargarse limpiamente otra vez. En Windows, si un usuario retira un paquete de idioma mientras alguna parte de ese modelo sigue retenida en memoria, Windows sencillamente se niega a borrar los archivos. Así que mantenemos con cuidado una lista de cada sitio donde un modelo podría seguir cargado, a lo largo de los cinco detectores, y los liberamos todos antes de borrar nada. Ese tipo de mantenimiento solo funciona si controlamos exactamente cómo y cuándo se carga cada modelo. Un motor de terceros que carga sus propios modelos, según su propio calendario, tropezaría con esto sin cesar.

El filtrado de ruido es la verdadera ventaja — y es nuestra

En nuestra comparativa directa, Presidio por defecto emitió 666 detecciones sobre un corpus de 14 documentos; nosotros emitimos 252 sobre los mismos documentos. La diferencia es casi por completo ruido que filtramos y que una instalación por defecto deja pasar: menciones de países en cláusulas jurisdiccionales («regido por las leyes de Francia»), URL en los pies de página, títulos de cargo confundidos con nombres, sustantivos genéricos de departamento etiquetados como organizaciones, la misma persona fragmentada en tres detecciones que se solapan.

Cada uno de esos filtros funciona en los siete idiomas, está calibrado sobre contratos y estados financieros reales, y se ejecuta dentro del paso de votación — donde puede ponderar tanto el grado de confianza de los detectores como el lugar donde el texto se sitúa de verdad en la página. Podría reconstruir todo esto como complementos atornillados a Presidio. Pero, llegado ese punto, Presidio solo está ejecutando los detectores, mientras que todo lo que hace que nuestro resultado sea limpio — el filtrado, la votación, la conciencia de la página — sigue siendo código que tuvimos que escribir nosotros mismos. Cargaríamos con una dependencia pesada sobre todo para desactivar grandes partes de ella.

A qué renunciamos

Esto no salió gratis, y fingir lo contrario sería deshonesto.

  1. No obtenemos gratis la amplitud de reconocedores de Presidio. Su comunidad publica reconocedores para tipos de entidad y locales que nosotros no hemos construido. Cada uno que queremos, lo escribimos y lo probamos nosotros mismos.
  2. Cargamos con nuestro propio mantenimiento. Cuando una biblioteca de transformadores introduce un cambio que rompe la compatibilidad, es problema nuestro absorberlo — no hay un proyecto aguas arriba al que abrir una incidencia y esperar. Hemos encajado unos cuantos de esos.
  3. No podemos apoyarnos en el nombre de Presidio. «Construido sobre Microsoft Presidio» es un atajo de credibilidad en una conversación de compra. Lo cambiamos por «aquí está nuestra comparativa reproducible», que es más trabajo y menos préstamo de marca.

Cuándo conviene recurrir a Presidio

Si su problema se parece a alguno de estos, Presidio es muy probablemente la elección correcta y construir el suyo propio sería un derroche:

  • Analiza flujos de texto — registros de chat, columnas de base de datos, cargas útiles de API — y no documentos acotados y maquetados.
  • Quiere control a nivel de biblioteca dentro de un sistema DLP en Python más grande, y le parece bien hacerse cargo del ajuste de la precisión.
  • Puede usar un motor de entidades en la nube (Azure, AWS) y quiere una sola abstracción de datos personales sobre varios proveedores.
  • Necesita amplitud de tipos de entidad y de locales más de lo que necesita una experiencia de revisión limpia sobre una clase de documento fija.

Presidio es la mejor herramienta para una porción grande y variada del mundo de la detección de datos personales. Nosotros no estamos en esa porción.

La regla de decisión de verdad

Este es el examen que aplicamos, y el que recomendaríamos a cualquiera que sopese «adoptar la biblioteca» frente a «construir el motor»:

Si la dependencia haría la parte fácil y usted escribiría la parte difícil encima, no está adoptando una biblioteca — está adoptando una restricción.

Para nosotros, las partes difíciles — saber dónde se sitúa el texto en la página, hacer que cinco detectores voten, gestionar los modelos de IA sin conexión, filtrar ruido en siete idiomas — constituyen la mayor parte del producto, y están todas estrechamente entrelazadas. Presidio se habría quedado abajo del todo ejecutando los detectores mientras cada decisión que de verdad importaba ocurría en nuestro propio código. Así que escribimos también esa capa de abajo — y acabamos con un motor del que entendemos cada pieza, que entregamos enteramente sin conexión y que calibramos sobre el tipo exacto de documentos que nuestros usuarios ocultan de verdad.

Presidio nos inspiró. Simplemente teníamos otro documento que ocultar.

Compartir

Anonimización de documentos con tecnología de IA. Detecte y oculte datos sensibles sin conexión, con total privacidad.

Producto

  • Chrome extension

Cuenta

Legal

Canada flagProudly Canadian
promptShield Inc. · 222, Wayman, Gaspé (QC) G4X 1T1, Canada · D-U-N-S® 243371918 · IP geolocation by DB-IP
© 2026 promptShield inc. Todos los derechos reservados.
promptShieldpromptShieldpromptShield
Funciones
Precios
Descargar
Desarrolladores
Cómo funciona
Flujos de trabajo con IA
Tranquilidad
vs Microsoft Presidio
Alternativas
Blog
Equipo
Iniciar sesión
Registrarse
Panel
Política de privacidad
Condiciones del servicio
Seguridad
Tratamiento de datos (DPA)
Política de reembolsos
Contacto
Tipos de cambio