Políticas
El objeto de política que decide qué puede llamar una organización, dónde puede ejecutarse y qué puede gastar, campo por campo.
Una política se almacena por organización y se lee en cada solicitud de inferencia. Los valores predeterminados son los seguros: alojamiento de propiedad de la UE o en región de la UE, retención cero, solo datos públicos e internos, y una traza obligatoria.
Campos
| Campo | Almacenamiento | Predeterminado | Qué decide |
|---|---|---|---|
| residency_allowed | JSON array | ["eu_owned_eu_operated","eu_region_of_non_eu_parent"] | Qué clases de alojamiento puede tener un endpoint. Un filtro, no una preferencia: un endpoint fuera de la lista nunca se elige. |
| providers_allow | JSON array | [] — any | Vacío significa cualquier proveedor. Una lista no vacía se convierte en una lista de permitidos. |
| providers_deny | JSON array | [] | Proveedores que nunca pueden usarse, comprobados antes de la lista de permitidos. |
| models_allow | JSON array | [] — any | Vacío significa cualquier modelo. Una lista no vacía se convierte en una lista de permitidos. |
| models_deny | JSON array | [] | Modelos que nunca pueden usarse. |
| max_usd_per_1m | REAL, nullable | null — no cap | Precio combinado máximo por millón de tokens que puede costar un endpoint. Por encima de él, se rechaza el endpoint. |
| max_usd_per_day | REAL, nullable | null — no cap | Límite de gasto diario para la organización. Al alcanzarlo, responde 402 budget_exceeded. |
| retention | TEXT | zero | Retención de prompts permitida. Solo se implementa cero: cualquier otro valor que permita la política hace fallar la solicitud en lugar de almacenar algo. |
| data_classes_allowed | JSON array | ["public","internal"] | Clases de datos que puede declarar una solicitud. Una clase fuera de esta lista se rechaza. |
| require_trace | INTEGER 0/1 | 1 | Si cada llamada de inferencia deja una fila de traza. Con retención cero, una traza contiene metadatos, nunca el cuerpo de un prompt. |
| allow_partner_endpoints | INTEGER 0/1 | 0 | Si pueden usarse endpoints operados por una empresa matriz no de la UE. Desactivado por defecto. |
| json_logic | JSON, nullable | null | Reservado para una futura regla personalizada. Hoy nada lo lee, así que no cambia ninguna decisión. |
Qué política se aplica
Una solicitud puede indicar una con llmeu.policy_id. Sin él, se aplica la política predeterminada de la organización. Un policy_id que pertenece a otra organización se rechaza con policy_not_found, porque la búsqueda siempre está limitada a la organización a la que pertenece la clave.
"llmeu": { "policy_id": "the-uuid-from-the-console" }
Como la política predeterminada se aplica a todas las claves, una promesa de residencia de una organización no es algo de lo que un llamador pueda excluirse omitiendo un campo.
El orden en que se ejecutan las reglas
Primero el tipo de endpoint — una entrada solo de catálogo se rechaza antes que nada —, después el estado, luego la clase de residencia y la región, luego las listas de proveedores y modelos, después la regla de partner, visión, tamaño de contexto y precio. La secuencia completa, con el código de fallo que produce cada paso, está en la página de enrutamiento.
Edición
En la consola, o con PUT /platform/v1/policies/{id} usando una clave que lleve platform_write. Un cambio se aplica a la siguiente solicitud; una solicitud ya en curso mantiene la política con la que empezó.