Politiques
L'objet politique qui décide ce qu'une organisation peut appeler, où elle peut s'exécuter et ce qu'elle peut dépenser, champ par champ.
Une politique est stockée par organisation et lue à chaque requête d'inférence. Les valeurs par défaut sont les plus sûres : hébergement détenu par l'UE ou dans une région UE, rétention nulle, données publiques et internes uniquement, une trace requise.
Champs
| Champ | Stockage | Défaut | Ce qu'il détermine |
|---|---|---|---|
| residency_allowed | JSON array | ["eu_owned_eu_operated","eu_region_of_non_eu_parent"] | Quelles classes d'hébergement un endpoint peut avoir. Un filtre, pas une préférence : un endpoint hors de la liste n'est jamais choisi. |
| providers_allow | JSON array | [] — any | Vide signifie n'importe quel fournisseur. Une liste non vide devient une liste d'autorisation. |
| providers_deny | JSON array | [] | Fournisseurs qui ne peuvent jamais être utilisés, vérifiés avant la liste d'autorisation. |
| models_allow | JSON array | [] — any | Vide signifie n'importe quel modèle. Une liste non vide devient une liste d'autorisation. |
| models_deny | JSON array | [] | Modèles qui ne peuvent jamais être utilisés. |
| max_usd_per_1m | REAL, nullable | null — no cap | Prix mixte le plus élevé par million de tokens qu'un endpoint peut coûter. Au-dessus, l'endpoint est rejeté. |
| max_usd_per_day | REAL, nullable | null — no cap | Plafond de dépenses quotidiennes pour l'organisation. L'atteindre répond 402 budget_exceeded. |
| retention | TEXT | zero | Rétention des prompts autorisée. Seul zéro est implémenté : toute autre valeur que la politique autorise fait échouer la requête plutôt que de stocker quelque chose. |
| data_classes_allowed | JSON array | ["public","internal"] | Classes de données qu'une requête peut déclarer. Une classe hors de cette liste est refusée. |
| require_trace | INTEGER 0/1 | 1 | Si chaque appel d'inférence laisse une ligne de trace. À rétention nulle, une trace contient des métadonnées, jamais le corps d'un prompt. |
| allow_partner_endpoints | INTEGER 0/1 | 0 | Si les endpoints opérés par une société mère non-UE peuvent être utilisés. Désactivé par défaut. |
| json_logic | JSON, nullable | null | Réservé à une future règle personnalisée. Rien ne le lit aujourd'hui, donc il ne change aucune décision. |
Quelle politique s'applique
Une requête peut en nommer une avec llmeu.policy_id. Sans cela, la politique par défaut de l'organisation s'applique. Un policy_id qui appartient à une autre organisation est refusé avec policy_not_found, car la recherche est toujours limitée à l'organisation à laquelle la clé appartient.
"llmeu": { "policy_id": "the-uuid-from-the-console" }
Comme la politique par défaut s'applique à chaque clé, la promesse de résidence d'une organisation n'est pas quelque chose dont un appelant peut se soustraire en omettant un champ.
L'ordre d'exécution des règles
D'abord le type d'endpoint — une entrée de catalogue uniquement est rejetée avant tout le reste — puis le statut, puis la classe de résidence et la région, puis les listes de fournisseurs et de modèles, puis la règle des partenaires, la vision, la taille du contexte et le prix. La séquence complète, avec le code d'échec produit par chaque étape, est sur la page de routage.
Modification
Dans la console, ou avec PUT /platform/v1/policies/{id} en utilisant une clé qui porte platform_write. Une modification s'applique à la requête suivante ; une requête déjà en cours conserve la politique sous laquelle elle a commencé.