Qué hacemos que vos no
El motor es abierto. El plus es lo que el GitHub no factura: alta de N, precio distinto de costo, aislamiento de empresa, alias como contrato, y un moderador privado con reglas de la empresa que corta antes de que el modelo público vea el secreto.
Moderador privado y RAG: destino · demo en el navegador, no el gateway
La pregunta del CTO
«Armo LiteLLM + Open WebUI yo. ¿Qué hacés vos que no pueda hacer yo?»
Un equipo con tiempo puede clonar el motor el fin de semana. El lunes tiene un chat. No tiene: el segundo cliente sin otro proyecto, una factura que no es el costo del proveedor, el modelo de atrás cambiado sin tocar su código, Norte que no se ve en Demo, y alguien de guardia cuando se pega una key. Eso no está en el repositorio. Está en el Control Plane y en el contrato.
No es plus
Chat, API tipo OpenAI, keys, cuotas, spend Open WebUI y LiteLLM ya lo hacen. Si se vende como diferencial, el CTO lo desarma en un minuto.Sí es plus
Oficio + contrato sobre el motor Alta, precio, techo comercial, aislamiento por organización, alias operado, políticas de fuga, teléfono cuando se rompe.Si el interlocutor ya corre LiteLLM en producción y está contento, no hay plus de planta que cierre. Ahí se vende un oficio encima, o no se pelea esa cuenta.
RAG no es el moderador privado
Se mezclan porque los dos hablan de «datos de la empresa». Hacen el trabajo contrario. El moderador privado son reglas de esa empresa, en nuestra planta, antes del modelo público. No es un humano de RESTART leyendo el chat. DLP es el nombre de categoría.
| RAG | Moderador privado | |
|---|---|---|
| Qué es | Retrieval-Augmented Generation: el chat busca en documentos de esa empresa y le pasa al modelo el trozo útil, no toda la biblioteca. | Moderador privado: reglas del contrato. Bloquea u ofusca secretos antes de mandar al modelo (hoy MaaS / Hong Kong). |
| Dirección | Datos de la empresa → hacia el modelo, a propósito, para responder mejor. | Secretos de la empresa → que no salgan hacia el modelo. |
| Necesita | Alias restart-embed por el gateway (ADR-012). Sin embed no hay RAG atribuible. | Reglas en el hop 3 del gateway, chat y API. No basta un filtro solo en Open WebUI. |
| Estado | Fuera del MVP. No se vende. | Destino. Catálogo en el panel (mockup). Esta demo corre en el navegador, no en api.ctrl. |
Ejemplo: María sube el contrato de logística (RAG, cuando exista) y en el mismo chat pega sk-… (moderador privado). El primero es conocimiento autorizado. El segundo es una fuga. El modelo público no tiene que ver la key aunque «ayude» con el contrato.
Lo que se viene
No está en el mapa de venta: marca blanca del chat, recorte de preguntas repetidas como si ya existiera, el moderador privado como si ya cortara en api.ctrl.
Demo: chat y moderador privado
Un lado escribe. El otro mira el hop 3 en vivo: marca la key, la tarjeta, la IP pública, la cuenta. Se elige bloquear (el modelo no ve nada) u ofuscar (llega [TARJETA]). El rastro guarda tipo y acción, no el secreto.
Demo en el navegador · no corta el gateway de producción
Probá los chips, o abrí el flujo en otra ventana y escribí acá.
Patrones de muestra: sk-, certificado PEM, password=, tarjeta (Luhn), cuenta / CBU / CLABE / IBAN, IPv4 pública (no 10/172.16/192.168). Los valores son de juguete.
Cómo se haría en planta
Sí: el moderador privado — reglas de la empresa, por tenant, opt-in Business / Enterprise. No un SKU «Compliance». El lugar correcto es el gateway (pre-call de LiteLLM o un sidecar delante de api.ctrl), porque el chat y la API tienen que verse iguales. Un filtro solo en Open WebUI deja pasar curl.
- Bloquear — keys, PEM, tarjetas. El request muere en hop 3. MaaS no recibe el prompt.
- Ofuscar — reemplazo por token ([API_KEY], [IP_PUBLICA]…) y el modelo sigue. Útil cuando el secreto es incidental.
- Auditar — hallazgo: tenant, persona, hora, alias, tipo, acción. Opcional: huella HMAC del valor, no el valor. Compatible con ADR-011 (no loguear el párrafo).
- Alertar — webhook / correo que nombró el cliente. RESTART no modera el chat en vivo.
| Regla | Ejemplo | Acción sugerida |
|---|---|---|
| API keys | sk-, AKIA, ghp_ | Bloquear |
| Secretos | password=, aws_secret… | Bloquear |
| PEM | BEGIN PRIVATE KEY / CERTIFICATE | Bloquear |
| Tarjeta | PAN con Luhn | Bloquear u ofuscar |
| Cuenta | cuenta / CBU / CLABE / IBAN | Ofuscar (más falsos positivos) |
| IP pública | IPv4 que no es RFC1918 | Ofuscar; la privada no se toca |
| Catálogo del contrato | RUT de clientes, nombres de proyectos | Por tenant, después |
Por qué antes del modelo: la inferencia de los alias actuales sale de Santiago. Si el secreto viaja, ya salió. El moderador privado no es residencia; es el corte en el hop 3.