Uwierzytelnianie

Dwa poświadczenia — klucz API dla maszyn, sesja dla konsoli — oraz zasady, które je rozdzielają.

Dwa rodzaje poświadczeń

API przyjmuje klucz API. Konsola przyjmuje plik cookie sesji. Nie są wymienne, a API tego pilnuje, zamiast decydować przy każdym żądaniu, czy plik cookie miał się tam znaleźć.

Zalogowana przeglądarka nie może wywołać API

Żądanie uwierzytelnione plikiem cookie sesji otrzymuje 403 api_key_required z komunikatem wskazującym stronę kluczy w konsoli. Jest to celowe: skoro nie ma ścieżki do API uwierzytelnianej plikiem cookie, żądanie cross-site nie ma czego podrobić.

Nagłówek

Wyślij klucz jako token bearer. Klucz to prefiks, kropka i sekret; prefiks identyfikuje wiersz, więc unieważnienie jest natychmiastowe i kosztuje jedno wyszukanie.

curl https://api.llmeu.com/v1/chat/completions \
  -H "Authorization: Bearer llmeu_live_xxxxxxxx.your-secret" \
  -H "Content-Type: application/json" \
  -d '{"model":"llmeu-auto","messages":[{"role":"user","content":"Hello"}]}'

Zakresy

Klucz zawiera jeden lub więcej zakresów. Żądanie, którego klucz nie ma zakresu wymaganego przez punkt końcowy, zostaje odrzucone z 403 insufficient_scope, zanim treść zostanie przeanalizowana.

Zakres Odblokowuje
inference Uzupełnianie czatu, osadzenia oraz punkty końcowe listy i szczegółów modeli.
platform_read Odczyt Twojej organizacji: profil, klucze, użycie, ślady i polityki.
platform_write Tworzenie i unieważnianie kluczy oraz tworzenie lub edycja polityk. To zakres, który zmienia, kto może co robić, więc nadawaj go rozważnie.

Zakresy są sprawdzane dla każdego punktu końcowego, a nie dla klucza. Klucz z platform_read nie może wydawać środków przez playground.

Tworzenie klucza

W konsoli lub przez API platformy za pomocą klucza, który już ma platform_write. Sekret jest wyświetlany jednorazowo przy utworzeniu: przechowywany jest tylko hash scrypt, więc nikt — łącznie z nami — nie może go odczytać.

curl -X POST https://api.llmeu.com/platform/v1/api-keys \
  -H "Authorization: Bearer llmeu_live_xxxxxxxx.a-platform-write-key" \
  -H "Content-Type: application/json" \
  -d '{"name":"ci","scopes":["inference"]}'

Czynności administracyjne w konsoli — polityki, zespół, ustawienia, środki, unieważnianie kluczy — są dostępne tylko dla właściciela lub administratora, niezależnie od zakresów klucza.

Unieważnianie i czym klucz nie jest

Klucz należy do organizacji, a organizacja jest ustalana na podstawie samego klucza — nigdy na podstawie pola w treści żądania, więc wywołujący nie może zaadresować innego dzierżawcy, prosząc grzecznie. Unieważnienie działa od następnego żądania. Rotacja oznacza utworzenie drugiego klucza, przeniesienie ruchu, a następnie unieważnienie pierwszego; nie ma okna nakładania się do skonfigurowania.

Dla konsoli

Logowanie, odzyskiwanie hasła i weryfikacja adresu są opisane w dokumentacji konsoli. Nie ma OAuth, SAML ani osobistego tokenu dostępu: konsola używa pliku cookie sesji, API używa kluczy.