Politici
Obiectul de politică ce decide ce poate apela o organizație, unde poate rula și ce poate cheltui, câmp cu câmp.
O politică este stocată pe organizație și citită la fiecare cerere de inferență. Valorile implicite sunt cele sigure: găzduire deținută în UE sau în regiune UE, retenție zero, doar date publice și interne, o urmă obligatorie.
Câmpuri
| Câmp | Stocare | Implicit | Ce decide |
|---|---|---|---|
| residency_allowed | JSON array | ["eu_owned_eu_operated","eu_region_of_non_eu_parent"] | Ce clase de găzduire poate avea un endpoint. Un filtru, nu o preferință: un endpoint din afara listei nu este niciodată ales. |
| providers_allow | JSON array | [] — any | Gol înseamnă orice furnizor. O listă nevidă devine o listă de permisiuni. |
| providers_deny | JSON array | [] | Furnizori care nu pot fi folosiți niciodată, verificați înaintea listei de permisiuni. |
| models_allow | JSON array | [] — any | Gol înseamnă orice model. O listă nevidă devine o listă de permisiuni. |
| models_deny | JSON array | [] | Modele care nu pot fi folosite niciodată. |
| max_usd_per_1m | REAL, nullable | null — no cap | Cel mai mare preț combinat pe milion de tokeni pe care îl poate costa un endpoint. Peste acesta, endpointul este respins. |
| max_usd_per_day | REAL, nullable | null — no cap | Plafonul zilnic de cheltuieli al organizației. La atingerea lui se răspunde cu 402 budget_exceeded. |
| retention | TEXT | zero | Retenția permisă pentru prompturi. Doar retenția zero este implementată: orice altă valoare permisă de politică face cererea să eșueze, în loc să stocheze ceva. |
| data_classes_allowed | JSON array | ["public","internal"] | Clase de date pe care o cerere le poate declara. O clasă din afara acestei liste este refuzată. |
| require_trace | INTEGER 0/1 | 1 | Dacă fiecare apel de inferență lasă un rând de urmă. La retenție zero, o urmă conține metadate, niciodată corpul unui prompt. |
| allow_partner_endpoints | INTEGER 0/1 | 0 | Dacă pot fi folosite endpointuri operate de o companie-mamă din afara UE. Dezactivat implicit. |
| json_logic | JSON, nullable | null | Rezervat pentru o regulă personalizată viitoare. Nimic nu îl citește astăzi, deci nu schimbă nicio decizie. |
Ce politică se aplică
O cerere poate indica una prin llmeu.policy_id. Fără acesta, se aplică politica implicită a organizației. Un policy_id care aparține altei organizații este refuzat cu policy_not_found, deoarece căutarea este întotdeauna limitată la organizația căreia îi aparține cheia.
"llmeu": { "policy_id": "the-uuid-from-the-console" }
Deoarece politica implicită se aplică fiecărei chei, promisiunea de rezidență a unei organizații nu este ceva din care un apelant se poate sustrage omitând un câmp.
Ordinea în care rulează regulile
Mai întâi tipul de endpoint — o intrare doar din catalog este respinsă înainte de orice altceva — apoi starea, apoi clasa de rezidență și regiunea, apoi listele de furnizori și modele, apoi regula pentru parteneri, viziunea, dimensiunea contextului și prețul. Secvența completă, cu codul de eroare pe care îl produce fiecare pas, se află pe pagina de rutare.
Editare
În consolă, sau cu PUT /platform/v1/policies/{id} folosind o cheie care are platform_write. O modificare se aplică la următoarea cerere; o cerere deja în curs păstrează politica sub care a început.