Политики
Обектът на политиката, който определя какво може да извиква дадена организация, къде може да се изпълнява и какво може да харчи, поле по поле.
Политиката се съхранява за всяка организация и се чете при всяка заявка за инференция. Стойностите по подразбиране са безопасните: хостинг, собственост на ЕС или в регион на ЕС, нулево задържане, само публични и вътрешни данни, изисква се следа.
Полета
| Поле | Съхранение | По подразбиране | Какво определя |
|---|---|---|---|
| residency_allowed | JSON array | ["eu_owned_eu_operated","eu_region_of_non_eu_parent"] | Кои класове хостинг може да има даден endpoint. Филтър, не предпочитание: endpoint извън списъка никога не се избира. |
| providers_allow | JSON array | [] — any | Празно означава всеки доставчик. Непразен списък се превръща в списък с разрешени. |
| providers_deny | JSON array | [] | Доставчици, които никога не могат да се използват, проверяват се преди списъка с разрешени. |
| models_allow | JSON array | [] — any | Празно означава всеки модел. Непразен списък се превръща в списък с разрешени. |
| models_deny | JSON array | [] | Модели, които никога не могат да се използват. |
| max_usd_per_1m | REAL, nullable | null — no cap | Най-високата смесена цена за милион токена, която endpoint може да струва. Над нея endpoint се отхвърля. |
| max_usd_per_day | REAL, nullable | null — no cap | Дневен таван на разходите за организацията. При достигане се отговаря с 402 budget_exceeded. |
| retention | TEXT | zero | Разрешено задържане на промпт. Реализирано е само нулево: всяка друга стойност, която политиката позволява, кара заявката да се провали, вместо да съхрани нещо. |
| data_classes_allowed | JSON array | ["public","internal"] | Класове данни, които заявката може да декларира. Клас извън този списък се отказва. |
| require_trace | INTEGER 0/1 | 1 | Дали всяко инференционно извикване оставя ред за следа. При нулево задържане следата съдържа метаданни, никога тялото на промпта. |
| allow_partner_endpoints | INTEGER 0/1 | 0 | Дали могат да се използват endpoint-и, управлявани от дружество майка извън ЕС. По подразбиране е изключено. |
| json_logic | JSON, nullable | null | Запазено за бъдещо персонализирано правило. Нищо не го чете днес, така че не променя нито едно решение. |
Коя политика се прилага
Заявката може да посочи такава с llmeu.policy_id. Без него се прилага политиката по подразбиране на организацията. policy_id, който принадлежи на друга организация, се отказва с policy_not_found, защото търсенето винаги е ограничено до организацията, на която принадлежи ключът.
"llmeu": { "policy_id": "the-uuid-from-the-console" }
Тъй като политиката по подразбиране се прилага за всеки ключ, обещанието на организацията за резидентност не е нещо, от което извикващият може да се откаже чрез пропускане на поле.
Редът, в който се изпълняват правилата
Първо видът на endpoint — запис само от каталог се отхвърля преди всичко друго — после статусът, после класът на резидентност и регионът, после списъците с доставчици и модели, после правилото за партньори, зрение, размерът на контекста и цената. Пълната последователност, с кода за неуспех, който произвежда всяка стъпка, е на страницата за маршрутизиране.
Редактиране
В конзолата или с PUT /platform/v1/policies/{id} с ключ, който носи platform_write. Промяната се прилага за следващата заявка; заявка, която вече е в ход, запазва политиката, с която е започнала.