Preskoči na sadržaj
Autentikacija

Autentikacija

Svaki zahtjev nosi vaš API ključ u zaglavlju. Jedan ključ po računu radi na svakom endpointu i svakom modelu, u jednom od dva oblika zaglavlja.

Zaglavlje · OpenAI SDK-ovi
Authorization: Bearer YOUR_API_KEY
Zaglavlje · Anthropic SDK-ovi
x-api-key: YOUR_API_KEY

Prihvaćena zaglavlja

Oba zaglavlja se čitaju na svakom /v1 endpointu, bez obzira na format koji endpoint govori. Pošaljite jedno od njih.

Zaglavlje Opis
Authorization: Bearer <key> Provjerava se prvo. Napišite Bearer velikim slovom B i s jednim razmakom prije ključa. OpenAI SDK-ovi šalju ovo zaglavlje.
x-api-key: <key> Čita se kada zahtjev nema zaglavlje Authorization: Bearer. Anthropic SDK-ovi šalju ovo zaglavlje.

S OpenAI SDK-om postavite ključ i osnovni URL; SDK šalje Authorization: Bearer.

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.shannon-ai.com/v1"
)

response = client.chat.completions.create(
    model="shannon-3",
    messages=[
        {"role": "user", "content": "Hello, Shannon!"}
    ]
)

print(response.choices[0].message.content)

S Anthropic SDK-om postavite ključ i osnovni URL bez /v1; SDK šalje x-api-key.

import anthropic

client = anthropic.Anthropic(
    api_key="YOUR_API_KEY",
    base_url="https://api.shannon-ai.com"
)

message = client.messages.create(
    model="shannon-3",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "Hello, Shannon!"}
    ]
)

print("".join(block.text for block in message.content if block.type == "text"))

Koji endpointi trebaju ključ

Endpoint Ključ
POST /v1/chat/completions Obavezan
POST /v1/messages Obavezan
POST /v1/responses Obavezan
POST /v1/tokenize Obavezan
POST /v1/messages/count_tokens Obavezan
GET /v1/models Nije potreban

Vaš ključ

  • Ključ je sk- iza kojeg slijedi 43 znaka iz A–Z, a–z, 0–9, - i _: ukupno 46 znakova.
  • Svaki račun ima tačno jedan ključ. Kreira se kada prvi put otvorite Ključevi i korištenje.
  • Ključ daje puni pristup API-ju za vaš račun: svaki endpoint, svaki model i cijelo stanje.
  • Ključ nema datum isteka. Radi dok ga ne rotirate ili opozovete.

Rotacija i opoziv

Ključ rotirate i opozivate na stranici Ključevi i korištenje. Ključevi i korištenje

Radnja Šta se dešava
Rotacija Izdaje se novi ključ, a stari prestaje raditi. Novi ključ radi odmah.
Opoziv Ključ prestaje raditi i ne izdaje se novi ključ. Rotirajte da ponovo dobijete ispravan ključ.
  • Oba djeluju odmah: sljedeći zahtjev sa starim ključem dobija odgovor 401. Računajte 60 sekundi kao gornju granicu prije nego što se stari ključ svuda odbije.
  • Svi klijenti računa koriste isti ključ, pa rotacija utiče na sve njih. Stavite novi ključ u svoje klijente odmah nakon rotacije.
  • Stanje, korištenje i flood zaštita pripadaju računu, a ne ključu. Novi ključ nastavlja s istim stanjem i istim brojem zahtjeva za tekuću minutu.

Greške

Svaka greška autentifikacije ima status 401 i tip authentication_error. Poruka razlikuje slučajeve.

Status Tip Poruka Kada
401 authentication_error Missing authentication Zahtjev nema ni zaglavlje Authorization: Bearer ni zaglavlje x-api-key koje počinje s sk-. Ovo je i odgovor na bearer malim slovima i na vrijednost Authorization bez Bearer.
401 authentication_error Invalid API key Ključ nije trenutni ključ nekog računa: pogrešno je otkucan, opozvan je ili je zamijenjen rotacijom.
{
  "error": {
    "type": "authentication_error",
    "message": "Invalid API key",
    "code": "invalid_api_key",
    "param": null
  }
}
  • Na svakoj putanji osim /v1/messages objekat error sadrži i code: "invalid_api_key", također za ključ koji nedostaje, i param: null.
  • Ključ se provjerava prije čitanja tijela. Zahtjev bez važećeg ključa dobija 401 čak i kada je njegovo tijelo nevažeće ili preveliko.
  • Vrijednost Authorization: Bearer koja ne počinje s sk- ne tretira se kao API ključ. Dobija 401 s porukom da je token nevažeći ili istekao.

Preglednici i CORS

  • API odgovara na cross-origin zahtjeve preglednika samo za fiksnu listu porijekla (origin). JavaScript na stranici drugog porijekla ne može čitati /v1 odgovore.
  • Pozivajte API sa svog servera i neka vaša stranica komunicira s vašim serverom. Time ključ ostaje i izvan izvornog koda stranice.
  • Kod na strani servera i alati komandne linije nisu pogođeni: ovo pravilo primjenjuju samo preglednici.
  • Prijava na shannon-ai.com ne autentifikuje /v1 zahtjeve. Kolačići se tamo ne čitaju; ključ je jedini kredencijal.
  • Za dozvoljeno porijeklo (origin), preglednik može poslati content-type, authorization, x-api-key, anthropic-version, anthropic-beta, openai-beta i x-request-id, i može čitati zaglavlje odgovora x-request-id.

Čuvanje ključa

  • Držite ključ na serveru. Ne stavljajte ga u web stranice, mobilne aplikacije ili javne repozitorije: ko ga posjeduje može potrošiti cijelo vaše stanje.
  • Učitajte ključ iz varijable okruženja ili spremišta tajni umjesto da ga upisujete u kod.
  • Ako je ključ možda procurio, rotirajte ga na stranici Ključevi i korištenje. Stari ključ odmah prestaje raditi.
  • Nakon curenja pročitajte listu zahtjeva na stranici Ključevi i korištenje. Prikazuje svaki zahtjev koji je ključ napravio u posljednjih 30 dana.