Budżety i cache
Limity szybkości i budżety per klucz, limity organizacji oraz dwa cache odpowiedzi.
Budżety i limity
Każdy klucz niesie limity zapytań (żądania i tokeny na minutę) oraz budżet wydatków z okresem: total, daily lub monthly. Nad każdym kluczem stoi zbiorczy limit obejmujący całą organizację.
Egzekwowanie odbywa się na bramie, w realnych pieniądzach: każde żądanie jest wyceniane z aktualnego cennika i obciążane przed wysyłką. Po przekroczeniu limitu zapytań wywołanie zwraca 429; po przekroczeniu budżetu, 402. Żądanie nigdy nie dociera do dostawcy. Jeśli liczniki są kiedykolwiek nieosiągalne, kontrola zawodzi w stanie zamkniętym (fail closed) i uzgadnia się z niezmiennym rejestrem audytu, zamiast zgadywać.
# past the key's rate limit — the request never reaches a provider { "error": { "message": "rate limit exceeded for this key", "type": "rate_limit_error", "param": null, "code": "rate_limit_exceeded" } }
# budget reached or no active plan — activate a plan or raise the budget { "error": { "message": "spend budget reached for this key", "type": "insufficient_quota", "param": null, "code": "insufficient_quota" } }
Buforowanie
Dwa opcjonalne cache'e odpowiedzi: dokładny (dopasowanie znormalizowanego żądania) i semantyczny (podobieństwo wektorowe z zachowawczym progiem). Oba są ściśle izolowane per organizacja, szyfrowane w spoczynku i wymagają retencji treści. Włącz je w Konsoli, w widoku Cache.
Każdy wpis audytu zapisuje, jak obsłużono wywołanie: none | exact | semantic.
# identical request twice — the second is served from the exact cache curl https://api.sluis.ai/v1/chat/completions \ -H "Authorization: Bearer $SLUIS_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "mistral/mistral-large-latest", "messages": [{ "role": "user", "content": "Define GDPR" }] }' # audit row of call #2: cache_hit: exact · no provider dispatch, no token cost