Políticas
O objeto de política que decide o que uma organização pode chamar, onde pode executar e o que pode gastar, campo a campo.
Uma política é armazenada por organização e lida em cada pedido de inferência. Os valores predefinidos são os seguros: alojamento detido na UE ou em região da UE, retenção zero, apenas dados públicos e internos, um trace obrigatório.
Campos
| Campo | Armazenamento | Predefinição | O que determina |
|---|---|---|---|
| residency_allowed | JSON array | ["eu_owned_eu_operated","eu_region_of_non_eu_parent"] | Que classes de alojamento um endpoint pode ter. Um filtro, não uma preferência: um endpoint fora da lista nunca é escolhido. |
| providers_allow | JSON array | [] — any | Vazio significa qualquer fornecedor. Uma lista não vazia torna-se uma lista de permissões. |
| providers_deny | JSON array | [] | Fornecedores que nunca podem ser usados, verificados antes da lista de permissões. |
| models_allow | JSON array | [] — any | Vazio significa qualquer modelo. Uma lista não vazia torna-se uma lista de permissões. |
| models_deny | JSON array | [] | Modelos que nunca podem ser usados. |
| max_usd_per_1m | REAL, nullable | null — no cap | Preço combinado mais elevado por milhão de tokens que um endpoint pode custar. Acima disso, o endpoint é rejeitado. |
| max_usd_per_day | REAL, nullable | null — no cap | Limite de gastos diários da organização. Ao atingi-lo, responde 402 budget_exceeded. |
| retention | TEXT | zero | Retenção de prompts permitida. Apenas zero está implementada: qualquer outro valor permitido pela política faz o pedido falhar em vez de armazenar algo. |
| data_classes_allowed | JSON array | ["public","internal"] | Classes de dados que um pedido pode declarar. Uma classe fora desta lista é recusada. |
| require_trace | INTEGER 0/1 | 1 | Se cada chamada de inferência deixa uma linha de trace. Com retenção zero, um trace contém metadados, nunca o corpo de um prompt. |
| allow_partner_endpoints | INTEGER 0/1 | 0 | Se endpoints operados por uma empresa-mãe não pertencente à UE podem ser usados. Desativado por predefinição. |
| json_logic | JSON, nullable | null | Reservado para uma futura regra personalizada. Nada o lê atualmente, por isso não altera nenhuma decisão. |
Que política se aplica
Um pedido pode indicar uma com llmeu.policy_id. Sem isso, aplica-se a política predefinida da organização. Um policy_id que pertence a outra organização é recusado com policy_not_found, porque a consulta é sempre limitada à organização a que a chave pertence.
"llmeu": { "policy_id": "the-uuid-from-the-console" }
Como a política predefinida se aplica a todas as chaves, a promessa de residência de uma organização não é algo de que um chamador possa abdicar omitindo um campo.
A ordem de execução das regras
Primeiro o tipo de endpoint — uma entrada apenas de catálogo é rejeitada antes de tudo o resto —, depois o estado, depois a classe de residência e a região, depois as listas de fornecedores e modelos, depois a regra de parceiros, visão, tamanho do contexto e preço. A sequência completa, com o código de falha que cada passo produz, está na página de encaminhamento.
Edição
Na consola, ou com PUT /platform/v1/policies/{id} usando uma chave que tenha platform_write. Uma alteração aplica-se ao pedido seguinte; um pedido já em curso mantém a política com que começou.