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é.