Beleidsregels
Het beleidsobject dat bepaalt wat een organisatie mag aanroepen, waar het mag draaien en wat het mag uitgeven, veld voor veld.
Een beleid wordt per organisatie opgeslagen en bij elk inferentieverzoek gelezen. De standaardwaarden zijn de veilige: EU-eigendom of EU-regiohosting, zero retention, alleen openbare en interne gegevens, een trace vereist.
Velden
| Veld | Opslag | Standaard | Wat het bepaalt |
|---|---|---|---|
| residency_allowed | JSON array | ["eu_owned_eu_operated","eu_region_of_non_eu_parent"] | Welke hostingklassen een endpoint mag hebben. Een filter, geen voorkeur: een endpoint buiten de lijst wordt nooit gekozen. |
| providers_allow | JSON array | [] — any | Leeg betekent elke provider. Een niet-lege lijst wordt een allowlist. |
| providers_deny | JSON array | [] | Providers die nooit gebruikt mogen worden, gecontroleerd vóór de allowlist. |
| models_allow | JSON array | [] — any | Leeg betekent elk model. Een niet-lege lijst wordt een allowlist. |
| models_deny | JSON array | [] | Modellen die nooit gebruikt mogen worden. |
| max_usd_per_1m | REAL, nullable | null — no cap | Hoogste gemengde prijs per miljoen tokens die een endpoint mag kosten. Daarboven wordt het endpoint afgewezen. |
| max_usd_per_day | REAL, nullable | null — no cap | Dagelijks bestedingsplafond voor de organisatie. Bij bereiken antwoordt het met 402 budget_exceeded. |
| retention | TEXT | zero | Toegestane retentie van prompts. Alleen zero is geïmplementeerd: elke andere waarde die het beleid toestaat, laat het verzoek mislukken in plaats van iets op te slaan. |
| data_classes_allowed | JSON array | ["public","internal"] | Dataklassen die een verzoek mag aangeven. Een klasse buiten deze lijst wordt geweigerd. |
| require_trace | INTEGER 0/1 | 1 | Of elke inferentieaanroep een tracerij achterlaat. Bij zero retention bevat een trace metadata, nooit een promptbody. |
| allow_partner_endpoints | INTEGER 0/1 | 0 | Of endpoints die door een niet-EU-moeder worden beheerd, mogen worden gebruikt. Standaard uit. |
| json_logic | JSON, nullable | null | Gereserveerd voor een toekomstige aangepaste regel. Niets leest het vandaag, dus het verandert geen beslissing. |
Welk beleid geldt
Een verzoek kan er een noemen met llmeu.policy_id. Zonder dat geldt het standaardbeleid van de organisatie. Een policy_id dat bij een andere organisatie hoort, wordt geweigerd met policy_not_found, omdat de opzoeking altijd beperkt is tot de organisatie waartoe de sleutel behoort.
"llmeu": { "policy_id": "the-uuid-from-the-console" }
Omdat het standaardbeleid voor elke sleutel geldt, is de residency-belofte van een organisatie niet iets waar een aanroeper zich van kan afmelden door een veld weg te laten.
De volgorde waarin de regels worden uitgevoerd
Eerst het endpointtype — een alleen-catalogusvermelding wordt vóór al het andere afgewezen — dan status, dan de residency-klasse en regio, dan de provider- en modellenlijsten, dan de partnerregel, vision, contextgrootte en prijs. De volledige volgorde, met de foutcode die elke stap oplevert, staat op de routeringspagina.
Bewerken
In de console, of met PUT /platform/v1/policies/{id} met een sleutel die platform_write draagt. Een wijziging geldt voor het volgende verzoek; een verzoek dat al onderweg is, behoudt het beleid waaronder het begon.