Todos los trabajos
Productos Oronts2024Ongoing

OGuardAI

Semantic data protection runtime for AI systems. Policy engine, PII detection and reversible tokenization between your application and any LLM.

Cliente: Oronts GmbH

De un vistazo

99.7%
PII detection recall on our test corpus
<50ms
Rejection latency target for blocked content
3
Validation layers: policy, PII, tokenization
0
Raw PII values exposed to the model after tokenization

El desafío

Production LLM systems share a failure class: PII leaking into prompts and outputs, hallucinated data reaching customers, and generated text violating communication policies. Ad-hoc filters solve one incident and break on the next edge case. GDPR makes this an architecture problem, not a patching problem.

Nuestro enfoque

OGuardAI runs as a synchronous filter in the LLM request and response path. Three validation layers: content policy classification against hot-reloadable YAML rule sets, PII detection combining pattern matching with named entity recognition, and semantic tokenization that swaps sensitive values for reversible tokens so the model never sees raw data. Restoration happens per output channel policy.

Arquitectura del sistema

Cargando diagrama...

Arquitectura del sistema: LLM Response, OGuardAI, Policy Check, Pass, Deliver to User, Violation, Content Classifier, PII Found?, Yes, Redact / Tokenize, No, Block + Reason, Upstream Retry

Capa de IA

OGuardAI es la propia capa de protección de IA: un runtime en Rust que se sitúa entre una aplicación y cualquier LLM, detecta datos sensibles, los sustituye por tokens semánticos tipados sobre los que el modelo puede seguir razonando y restaura los originales en la respuesta según la política.

Detección

Una base de expresiones regulares escrita en Rust se ejecuta siempre y encuentra datos basados en formato (correo electrónico, teléfono, IBAN, tarjeta de crédito, pasaporte, números fiscales y de la seguridad social, entre otros) en texto de cualquier idioma. Un sidecar en Python añade reconocimiento de entidades nombradas (GLiNER y spaCy) para personas, organizaciones, ubicaciones y direcciones en unos veinte idiomas. Las coincidencias superpuestas se fusionan por confianza, y una entidad obligatoria que no se encuentra hace que la solicitud falle en cerrado.

Tokenización semántica

Los valores detectados se sustituyen por tokens semánticos tipados, de modo que un nombre se convierte en un token de nombre y un IBAN en un token de IBAN. El modelo conserva el contexto que necesita en lugar de ver espacios en blanco. Los tokens se deduplican y se vinculan a entidades, con dos esquemas de identidad (aleatorio por sesión o determinista por corpus), y solo el texto seguro y tokenizado se envía al LLM.

Motor de políticas

Las políticas son YAML declarativo con herencia. Deciden, por tipo de entidad, si tokenizar, censurar, bloquear o permitir, y por canal de salida cuánto restaurar. El kernel resuelve la política efectiva en cada solicitud, de modo que el mismo runtime puede aplicar reglas distintas para una respuesta de chat, un correo electrónico o un log interno.

Rehidratación y robustez de tokens

En el camino de vuelta, una reparación de tokens en tres etapas (estricta, reparación y difusa) restaura cada token a su valor original a través de seis modos de restauración y rechaza los tokens que el modelo haya alucinado. La restauración es determinista e idempotente, y cualquier valor que haya sido revocado vuelve siempre como eliminado.

Sesiones, seguridad de prompts y guardián de salida

Las sesiones se sellan con AES-256-GCM o se respaldan en Redis, con rechazo de reenvíos, vinculación por tenant y una tabla de revocación. Una pasada de seguridad de prompts analiza la entrada en busca de intentos de extracción e inyecta un preámbulo de sistema reforzado, y un guardián de salida opcional ejecuta una segunda pasada de detección sobre la respuesta del modelo para capturar datos personales generados por el propio modelo.

RAG, documentos y streaming

La misma protección cubre la generación aumentada por recuperación (ingesta, consulta, contexto y respuesta, con identidad de tokens acotada al corpus y filtrado por nivel de acceso), la ingesta de documentos con OCR y censura visual para imágenes y PDF, y las respuestas en streaming con búfer en los límites de token para que un token nunca se divida entre fragmentos.

Cargando diagrama...

Capa de IA: App request, Detect: regex floor + NER sidecar, Policy per entity, block or required missing, Fail closed, tokenize, Semantic tokens, safe text, Any LLM provider, Token repair: strict, repair, fuzzy, Rehydrate under output-channel policy, Output guard: catch model-generated PII, App response, PII-safe audit and metrics

Infraestructura y despliegue

OGuardAI es autoalojado y neutral respecto al proveedor, de modo que los datos sensibles nunca salen del perímetro del cliente. Se distribuye como imágenes Docker y se ejecuta en cualquier entorno, desde un único contenedor hasta un clúster con múltiples réplicas.

Runtime y servicios

El núcleo en Rust se ejecuta como un servidor HTTP axum, un proxy de proveedor transparente que se coloca delante de una API de LLM existente y una herramienta de línea de comandos oguardai, todos construidos sobre un mismo kernel de protección. Un servicio Python independiente sirve los modelos de NER. Se distribuye como imágenes Docker con un stack completo de Docker Compose.

Estado y escalado

Las sesiones, el rechazo de reenvíos y la revocación se ejecutan en memoria para una sola instancia o en Redis compartido entre réplicas, de modo que el runtime escala horizontalmente. Las sesiones se cifran en reposo con AES-256-GCM y TLS termina en el servidor.

Autenticación y acceso

La autenticación admite los modos dev, clave de API, JWT y OIDC con aplicación de scopes por ruta. El salto del servidor al detector está protegido por un secreto compartido, y el endpoint de métricas requiere un scope de administrador mientras que las sondas de salud permanecen abiertas.

Observabilidad

Las métricas de Prometheus (transformación, rehidratación, detección, entidades detectadas y bloqueadas, activaciones del guardián de salida y de la seguridad de prompts, e histogramas de latencia) están libres de PII por construcción. El trazado con OpenTelemetry correlaciona una solicitud a través de la detección, el LLM y la rehidratación con un id de traza basado en huella y no identificable.

SDK e integración

Los SDK de cliente están disponibles para TypeScript, Python, Go y Java, junto con un servidor MCP en TypeScript y adaptadores de framework, de modo que las aplicaciones adoptan la capa de protección sin tocar el núcleo.

Cargando diagrama...

Infraestructura y despliegue: Client SDKs: TS, Python, Go, Java, Rust server or proxy, MCP server, Python NER sidecar: GLiNER + spaCy, Redis: sessions, replay, revocation, Any LLM provider, Prometheus + OpenTelemetry

Decisiones de ingeniería

A synchronous filter in the request and response path

Guardrails only work if they run before the model sees data and before output reaches a user. OGuardAI sits inline rather than as an after-the-fact audit, accepting a small, bounded latency cost for enforcement that cannot be skipped.

Reversible tokenization over blunt redaction

Redaction destroys the context a model needs to answer well. OGuardAI swaps sensitive values for structure-preserving tokens, so the model reasons over coherent text and never sees raw data. Restoration happens per output-channel policy, which makes the token vault the asset to secure.

Hot-reloadable YAML policies

Communication and data rules change faster than release cycles. Policies are YAML that reloads without a restart, so operations can tighten or relax rules live instead of waiting for a deploy.

Pattern matching and NER together

Regular expressions catch known formats; named-entity recognition catches contextual PII a pattern misses. Running both raises detection recall instead of betting on one technique.

Tecnologías

Backend
RustaxumPythonFastAPITypeScript
Infraestructura
DockerRedisPrometheusGitHub Actions
IA / ML
PII detectionNER (GLiNER + spaCy)Semantic tokenizationPolicy engine
Frontend
Next.js

Resultados clave

  • GDPR-aware AI architecture by design, not by patching
  • Hot-reloadable YAML policies without restarts or redeployments
  • Reversible tokenization keeps LLM output quality while protecting data
  • The pattern is documented publicly in our engineering guides

El resultado

Una capa de salvaguardas reutilizable e independiente del framework que convierte la IA conforme al RGPD de un apagafuegos por proyecto en infraestructura. Un producto propietario de Oronts, autoalojado y neutral respecto al proveedor, con la arquitectura documentada en nuestra guía sobre fugas de datos.

What an OGuardAI deployment looks like

OGuardAI drops into a client's AI stack as the layer between the application and any model provider.

  • It sits between your application and any LLM, inside your infrastructure
  • Your content and data rules live as YAML that you control
  • EU or private hosting keeps data in your tenancy; the model never sees raw PII
  • Reversible tokens preserve output quality while protecting sensitive values
  • We integrate it into your pipeline and hand over a layer your team operates