Nonimo Gateway, en tu servidor
Nonimo Gateway tapa los datos personales en tus propios servidores antes de cada llamada a la IA y los devuelve en la respuesta. Va en un contenedor delante de la API de OpenAI y tus servicios no cambian el código: sólo el base_url.
Resumí el expediente de la clienta Graciela Olivera Cardozo y escribile a cliente@example.com.
Resumí el expediente de la clienta [PERSONA_1] y escribile a [CORREO_1].
Hola, [PERSONA_1]: revisamos tu expediente y está completo.
Hola, Graciela Olivera Cardozo: revisamos tu expediente y está completo.
Cómo se instala
Sin tocar el código de tus servicios: un contenedor en tu servidor y un base_url nuevo.
Un contenedor en tu centro de datos o en tu nube.
Se instala en tus servidores o en tu cuenta de nube, al lado de tus servicios, y podés tener varias instancias a la vez.
Tu código sigue hablando con la API de OpenAI. Sólo cambia la dirección.
El Gateway habla la API de OpenAI. Tus servicios apuntan a él y siguen llamando a /v1/chat/completions o a /v1/responses, con function calling incluido. El destino puede ser OpenAI o cualquier API compatible.
Los datos salen como etiquetas y vuelven reales en la respuesta.
Cada pedido se revisa entero antes de salir hacia tu proveedor: los datos personales se cambian por etiquetas y, en la respuesta, cada etiqueta recupera su valor. Los pedidos de tus servicios a la IA pasan por él antes de salir de tu red.
El SDK oficial de OpenAI funciona sin cambios; alcanza con apuntar el cliente al Gateway:
from openai import OpenAI
# El mismo cliente y la misma clave: sólo cambia base_url
client = OpenAI(base_url="http://tu-servidor:8080/v1")
resp = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Resumí el expediente de la clienta Graciela Olivera Cardozo."}],
) import OpenAI from "openai";
// El mismo cliente y la misma clave: sólo cambia baseURL
const client = new OpenAI({ baseURL: "http://tu-servidor:8080/v1" });
const resp = await client.chat.completions.create({
model: "gpt-4o",
messages: [{ role: "user", content: "Resumí el expediente de la clienta Graciela Olivera Cardozo." }],
}); # El mismo pedido de siempre, contra tu servidor
curl http://tu-servidor:8080/v1/chat/completions \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o",
"messages": [{"role": "user", "content": "Resumí el expediente de la clienta Graciela Olivera Cardozo."}]
}' Respuesta completa
Tu proveedor sólo ve etiquetas; tu servicio recibe la respuesta con los datos reales, cada uno en su lugar.
Chatbot interno
Resumí el ticket que abrió la clienta Martina Acosta Rivero[PERSONA_1] desde cliente@example.com[CORREO_1].
El ticket de la clienta Martina Acosta Rivero[PERSONA_1] es un problema para conectarse a la VPN desde el lunes. Le escribo a cliente@example.com[CORREO_1] con los pasos para volver a conectarse.
Atención al cliente
Redactá un correo para Walter Pintos Silveira[PERSONA_1] (cliente@example.com[CORREO_1]) para confirmarle que recibimos su documentación.
Hola, Walter Pintos Silveira[PERSONA_1]: te confirmamos que recibimos tu documentación. Te vamos a escribir a cliente@example.com[CORREO_1] apenas esté todo pronto.
Agente con herramientas
Consultá el estado del trámite de Gustavo Moreira Sosa[PERSONA_1], pasaporte C0000000[PASAPORTE_1].
buscar_tramite({ "titular": "Gustavo Moreira Sosa[PERSONA_1]", "pasaporte": "C0000000[PASAPORTE_1]" })
Tu herramienta recibe el valor real; el proveedor sólo vio la etiqueta.
RR. HH.
Prepará la carta de bienvenida de la señora Adriana Viera Machado[PERSONA_1]; su celular es +598 99 000 000[TELEFONO_1].
Hola, Adriana Viera Machado[PERSONA_1]: te damos la bienvenida al equipo. Ya agendamos tu celular +598 99 000 000[TELEFONO_1] para avisarte cuando esté tu primer recibo de sueldo.
Para el responsable de protección de datos: los datos llegan a tu proveedor sin poder asociarse a la persona, y la correspondencia con los datos reales se queda en tu infraestructura. Lo que dice la Ley 18.331, en las preguntas.
La diferencia entre anonimizar y seudonimizar la explicamos en anonimización de datos personales.
Los datos se tapan dentro de tu red: no salen de ella para taparse. No reescribe ni resume, sólo marca qué es un dato personal, y dentro de una conversación cada dato mantiene su etiqueta de principio a fin. En las llamadas a herramientas, tapa los valores de texto de los argumentos sin alterar su estructura y, cuando el modelo pide ejecutar una función, se la entrega con el valor real para que tu herramienta trabaje con los datos de verdad.
Lo que sale hacia OpenAI
Redactá un correo para [PERSONA_1] ([CORREO_1]) para confirmarle que recibimos su documentación. Lo que recibe tu servicio
Hola, Walter Pintos Silveira: te confirmamos que recibimos tu documentación. Te vamos a escribir a cliente@example.com apenas esté todo pronto. Documentos de cada país
Cada documento, con su formato propio. Elegí un país y mirá qué le llega a la IA.
Y además, en Uruguay
[PERSONA_1][TELEFONO_1][DIRECCION_1][CORREO_1]Y además, en Argentina
[PERSONA_1][TELEFONO_1][DIRECCION_1][CORREO_1]Y además, en México
[PERSONA_1][TELEFONO_1][DIRECCION_1][CORREO_1]Y además, en Brasil
[PERSONA_1][TELEFONO_1][DIRECCION_1][CORREO_1]Y además, en España
[PERSONA_1][TELEFONO_1][IBAN_1][DIRECCION_1][CORREO_1]Y además, en Alemania
[PERSONA_1][TELEFONO_1][IBAN_1][DIRECCION_1][CORREO_1]Y además, en Francia
[PERSONA_1][TELEFONO_1][IBAN_1][DIRECCION_1][CORREO_1]Y además, en Italia
[PERSONA_1][TELEFONO_1][IBAN_1][DIRECCION_1][CORREO_1]Y además, en Portugal
[PERSONA_1][TELEFONO_1][IBAN_1][CODIGO_POSTAL_PT_1][CORREO_1]Y además, en Reino Unido
[PERSONA_1][TELEFONO_1][CUENTA_GB_1][CODIGO_POSTAL_GB_1][CORREO_1]Y además, en Irlanda
[PERSONA_1][TELEFONO_1][IBAN_1][CODIGO_POSTAL_IE_1][CORREO_1]Y además, en Australia
[PERSONA_1][TELEFONO_1][BSB_1][CUENTA_AU_1][CORREO_1]Y además, en EE. UU.
[PERSONA_1][TELEFONO_1][CUENTA_US_1][DIRECCION_1][CORREO_1]Y en todos los países
[CLAVE_API_1][TARJETA_1][PASAPORTE_1][HISTORIA_CLINICA_1]Tu servicio envía
Resumí la última consulta del paciente Rubén de León Pereyra, Historia clínica N° 000123.
La IA recibe
Resumí la última consulta del paciente [PERSONA_1], Historia clínica N° [HISTORIA_CLINICA_1].
[DNI_AR_1][TRAMITE_DNI_AR_1]Tu servicio envía
Resumí la carpeta de Facundo Pérez, DNI 99.999.999.
La IA recibe
Resumí la carpeta de [PERSONA_1], DNI [DNI_AR_1].
[CURP_1][RFC_1]Tu servicio envía
Revisá el expediente de Diana Hernández, CURP HEMD850315MDFRRN09.
La IA recibe
Revisá el expediente de [PERSONA_1], CURP [CURP_1].
[CPF_1][CNPJ_1][DRIVING_LICENCE_BR_1]Tu servicio envía
Escribile a Ana Souza por su pedido, CPF 123.456.789-00.
La IA recibe
Escribile a [PERSONA_1] por su pedido, CPF [CPF_1].
[DNI_1][NIE_1][NIF_1][NUSS_1]Tu servicio envía
Resumí el expediente de María López, DNI 12345678A.
La IA recibe
Resumí el expediente de [PERSONA_1], DNI [DNI_1].
[NIF_DE_1][NUSS_DE_1]Tu servicio envía
Prepará la carta para Jonas Weber, Steuer-ID 12345678901.
La IA recibe
Prepará la carta para [PERSONA_1], Steuer-ID [NIF_DE_1].
[NIR_1][SIREN_1][SIRET_1]Tu servicio envía
Revisá la carpeta de Camille Martin, NIR 1 85 05 78 006 084 00.
La IA recibe
Revisá la carpeta de [PERSONA_1], NIR [NIR_1].
[CODIGO_FISCAL_IT_1][NIF_IVA_IT_1][DNI_IT_1][TARJETA_SANITARIA_IT_1]Tu servicio envía
Respondele a Mario Rossi, codice fiscale RSSMRA80A01H501X.
La IA recibe
Respondele a [PERSONA_1], codice fiscale [CODIGO_FISCAL_IT_1].
[NIF_PT_1][NISS_1]Tu servicio envía
Verificá el alta de João Silva, NIF 123456780.
La IA recibe
Verificá el alta de [PERSONA_1], NIF [NIF_PT_1].
[NINO_1][NHS_NUMBER_1]Tu servicio envía
Actualizá el registro de Oliver Smith, National Insurance QQ 12 34 56 C.
La IA recibe
Actualizá el registro de [PERSONA_1], National Insurance [NINO_1].
[PPS_1]Tu servicio envía
Mandale el resumen a Aoife Murphy, PPS 1234567A.
La IA recibe
Mandale el resumen a [PERSONA_1], PPS [PPS_1].
[TFN_1][MEDICARE_1]Tu servicio envía
Prepará el recibo de sueldo de Jack Wilson, TFN 123 456 789.
La IA recibe
Prepará el recibo de sueldo de [PERSONA_1], TFN [TFN_1].
[SSN_1]Tu servicio envía
Revisá la solicitud de John Miller, SSN 987-65-4321.
La IA recibe
Revisá la solicitud de [PERSONA_1], SSN [SSN_1].
Datos inventados y números de ejemplo que no son válidos.
El Gateway reconoce los datos personales de siempre (nombres, correos, celulares y teléfonos con el prefijo internacional, direcciones, claves de API) y, además, los números de documento de cada país con su formato propio. También IBAN, tarjetas y pasaportes (su zona de lectura mecánica). Si en un texto queda un dato a la vista, podés sumarlo como término propio para que se tape siempre.
| País | Documentos |
|---|---|
| Uruguay | número de historia clínica |
| Argentina | DNI, número de trámite del DNI |
| México | CURP, RFC |
| Brasil | CPF, CNPJ, CNH (licencia de conducir brasileña) |
| España | DNI, NIE, NIF, número de la Seguridad Social |
| Alemania | Steuer-ID, Sozialversicherungsnummer |
| Francia | NIR (numéro de sécurité sociale), SIREN, SIRET |
| Italia | codice fiscale, partita IVA, carta d’identità elettronica (CIE), tessera sanitaria |
| Portugal | NIF, NISS |
| Reino Unido | National Insurance number, NHS number |
| Irlanda | PPS number |
| Australia | TFN, Medicare |
| Estados Unidos | Social Security number |
| En todos los países | IBAN, pasaportes (zona de lectura mecánica), tarjetas |
Frente a Presidio
Presidio detecta datos personales en un texto. El proxy compatible con OpenAI que lo pone delante de la API lo tiene que armar tu equipo; con Nonimo Gateway viene hecho.
| Tarea | Armarlo con Presidio | Con Nonimo Gateway |
|---|---|---|
| Detectar datos personales en el texto | Lo trae Presidio | Incluido |
| Proxy compatible con OpenAI | Lo armás vos | Viene hecho |
| Ponerlo delante de tu proveedor de IA | Lo conectás vos | Cambiás base_url |
| Devolver los datos reales en la respuesta | Lo armás vos | Viene hecho |
| Números de identificación de cada país | Elegís y ajustás reconocedores | Los de la tabla de arriba |
| Textos en español y otros idiomas | Lo configurás vos | Viene hecho |
| Mantenerlo al día | Tu equipo | Versiones nuevas de nuestra parte |
| Dónde corre | En tu infraestructura | Un contenedor en tu servidor |
Presidio detecta datos personales en un texto, pero no trae un proxy compatible con OpenAI: para ponerlo delante de la API, tu equipo tiene que armarlo, conectarlo y mantenerlo.
Nonimo Gateway te lo da hecho: un contenedor en tu propio servidor, una API compatible con OpenAI, los datos reales de vuelta en la respuesta y los números de identificación de cada país de la tabla de arriba.
En tu servidor
Seguís con tu proveedor de IA y el Gateway es una pieza más de tu infraestructura.
Se instala en tus servidores o en tu nube, al lado de tus servicios.
Nos llegan la licencia y cifras de uso, no lo que procesás.
Tu clave de API no se guarda en el Gateway.
LiteLLM
Si tu plataforma ya enruta las llamadas con LiteLLM, Nonimo encaja de dos formas. Elegí la que necesitás.
Sale Resumí el expediente de la clienta [PERSONA_1]
Vuelve La respuesta llega con las etiquetas: [PERSONA_1]
Sale Resumí el expediente de la clienta [PERSONA_1]
Vuelve La respuesta llega con los valores reales: Graciela Olivera Cardozo
¿Ya usás LiteLLM? Nonimo se activa como guardrail, o como proxy delante de tu proveedor si querés los datos de vuelta en la respuesta.
Planes
Todos los planes empiezan con 30 días de prueba y, si pasás el límite de palabras, el Gateway te avisa y el servicio sigue.
Te sirve Nonimo Gateway Empresa, US$ 539/mes
Para estudios jurídicos y contables
Nonimo Gateway Estudio US$ 319/mes Nonimo Gateway Estudio o US$ 3.190 por año
Para empresas con varios equipos y más volumen
Nonimo Gateway Empresa US$ 539/mes Nonimo Gateway Empresa o US$ 5.390 por año
Para grandes organizaciones con requisitos propios
Precio a convenir
Según nuestra estimación: el plan Estudio incluye 25 millones de palabras por mes, suficiente para equipos de hasta unas 200 personas; el plan Empresa, 150 millones, para equipos de hasta unas 1.000; y el plan A medida no tiene límite, pensado para más de 1.000 personas o varias sedes. Si alguna vez te pasás, te avisamos y el servicio sigue funcionando.
Acceso
Contanos con qué trabajás hoy y te escribimos para instalarlo en tus servidores.
Preguntas
Lo que preguntan el responsable de informática, el de seguridad y el de protección de datos antes de instalar el Gateway.
Con la de OpenAI y con cualquier API compatible con ella: Chat Completions y Responses, con function calling.
La consulta con una etiqueta como [PERSONA_1] o [CORREO_1] en el lugar de cada dato personal. Por tipo de dato elegís tapar, frenar el pedido o sólo avisar. También podés sumar tus propios términos, como números de expediente.
Los datos se tapan dentro de tu red, sin llamar a ningún servicio externo.
Seudonimizar. Anonimizar corta para siempre el vínculo con la persona; el enmascaramiento de datos del Gateway cambia cada dato por una etiqueta y te lo devuelve en la respuesta. Mucha gente busca anonimización de datos para usar la IA y lo que necesita es justamente esto: que el modelo no sepa de quién habla y que vos tengas la respuesta completa. El vínculo con la persona lo recuperás vos, en tu infraestructura.
Según nuestra estimación: el plan Estudio incluye 25 millones de palabras por mes, suficiente para equipos de hasta unas 200 personas; el plan Empresa, 150 millones, para equipos de hasta unas 1.000; y el plan A medida no tiene límite, pensado para más de 1.000 personas o varias sedes. Si alguna vez te pasás, te avisamos y el servicio sigue funcionando.
Por defecto, el pedido no sale y tu aplicación recibe un error claro.
Para la licencia y cifras de uso, nunca para el contenido. Si tu red no puede salir hacia Nonimo, en los planes Empresa y A medida tenés un modo sin conexión, a solicitud. Escribinos a hello@nonimo.ai y acordamos las condiciones.
Te ayuda a achicar lo que le llega a tu proveedor de IA. El artículo 10 de la Ley 18.331 le pide al responsable o usuario de la base de datos adoptar las medidas necesarias para garantizar la seguridad y confidencialidad de los datos personales, y el artículo 23 prohíbe, salvo excepciones, transferirlos a países u organismos internacionales que no proporcionen niveles de protección adecuados. Tapar los datos antes de que la consulta salga hacia OpenAI es una medida concreta en esa línea y reduce lo que viaja a servidores fuera del Uruguay. Para quien tiene la correspondencia con los datos reales, el dato sigue siendo personal, pero esa correspondencia se queda en tu infraestructura. No reemplaza tu análisis de riesgos, el contrato con tu proveedor ni lo que te indique la URCDP, pero deja menos datos personales en manos de terceros.
En un servidor o un clúster donde corran contenedores, en tu centro de datos o en tu nube. Se instala al lado de tus servicios y podés tener varias instancias.
Cada instancia tiene su licencia, que en los planes con conexión se renueva sola. Sin conexión, la cargás a mano y su vigencia depende de las condiciones que acordemos con cada cliente. Si pasás el uso de tu plan, el Gateway te avisa y el servicio sigue.
No. Las actualizaciones las aplica tu área de informática cuando quiera, y el Gateway te avisa cuando sale una versión nueva.
Empezá ahora
Pedí acceso, instalá el contenedor al lado de tus servicios y comprobá con tu propio tráfico que los datos personales le llegan a la IA convertidos en etiquetas. Para el ChatGPT que tu equipo usa en el navegador está la aplicación de escritorio de Nonimo.
Elegí el tipo de archivo y tapá los datos personales antes de mandarlo. Sin registrarte y en un minuto.