Beleid
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: hosting in EU-eigendom of EU-regio, nul retentie, alleen openbare en interne data, 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 mogen worden gebruikt, 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 mogen worden gebruikt. |
| 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 uitgavenplafond voor de organisatie. Bij bereiken wordt 402 budget_exceeded geantwoord. |
| retention | TEXT | zero | Toegestane retentie van prompts. Alleen nul 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 opgeven. Een klasse buiten deze lijst wordt geweigerd. |
| require_trace | INTEGER 0/1 | 1 | Of elke inferentieaanroep een trace-regel achterlaat. Bij nul retentie bevat een trace metadata, nooit een prompttekst. |
| allow_partner_endpoints | INTEGER 0/1 | 0 | Of endpoints die door een niet-EU-moederbedrijf 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 aanduiden 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 op elke sleutel van toepassing is, kan een aanroeper zich niet afmelden voor de residentiebelofte van een organisatie door een veld weg te laten.
De volgorde waarin de regels worden uitgevoerd
Eerst het soort endpoint — een alleen-catalogusvermelding wordt vóór al het andere afgewezen — dan status, dan de residentieklasse 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 bevat. Een wijziging geldt voor het volgende verzoek; een verzoek dat al onderweg is, behoudt het beleid waarmee het begon.