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 čitaju se na svakom /v1 endpointu, bez obzira na to koji format endpoint govori. Pošaljite jedno od njih.

Zaglavlje Opis
Authorization: Bearer <key> Provjerava se prvo. Bearer napišite velikim početnim 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 skupa A–Z, a–z, 0–9, - i _: ukupno 46 znakova.
  • Svaki račun ima točno jedan ključ. Izrađuje se prvi put kada otvorite Ključevi i upotreba.
  • Ključ daje potpun 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 upotreba. Ključevi i upotreba

Radnja Što se događa
Rotacija Izdaje se novi ključ, a stari prestaje raditi. Novi ključ radi odmah.
Opoziv Ključ prestaje raditi i ne izdaje se novi. Rotirajte da biste ponovno dobili ključ koji radi.
  • Oboje djeluje odmah: sljedeći zahtjev sa starim ključem odgovara se s 401. Smatrajte 60 sekundi gornjom granicom prije nego što se stari ključ odbije posvuda.
  • Svi klijenti računa koriste isti ključ, pa rotacija utječe na sve njih. Novi ključ unesite u svoje klijente odmah nakon rotacije.
  • Stanje, upotreba i flood protection 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 autentikacije 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-. To je također odgovor na bearer malim slovima i na vrijednost Authorization bez Bearer.
401 authentication_error Invalid API key Ključ nije trenutačni ključ nijednog računa: pogrešno je utipkan, opozvan je ili ga je zamijenila rotacija.
{
  "error": {
    "type": "authentication_error",
    "message": "Invalid API key",
    "code": "invalid_api_key",
    "param": null
  }
}
  • Na svakoj putanji osim /v1/messages objekt 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 valjanog ključa dobiva 401 čak i kada je njegovo tijelo nevaljano ili preveliko.
  • Vrijednost Authorization: Bearer koja ne počinje s sk- ne tretira se kao API ključ. Dobiva 401 uz poruku da je token nevaljan ili istekao.

Preglednici i CORS

  • API odgovara na cross-origin zahtjeve preglednika samo za fiksni popis podrijetla. JavaScript na stranici drugog podrijetla ne može čitati /v1 odgovore.
  • Pozivajte API sa svog servera i neka vaša stranica komunicira s vašim serverom. Time se ključ drži i izvan izvornog koda stranice.
  • Kod na strani servera i alati naredbenog retka nisu zahvaćeni: ovo pravilo primjenjuju samo preglednici.
  • Prijava na shannon-ai.com ne autentificira /v1 zahtjeve. Kolačići se ondje ne čitaju; ključ je jedina vjerodajnica.
  • Za dopušteno podrijetlo preglednik može slati content-type, authorization, x-api-key, anthropic-version, anthropic-beta, openai-beta i x-request-id, te može čitati zaglavlje odgovora x-request-id.

Čuvanje ključa na sigurnom

  • Ključ držite na serveru. Ne stavljajte ga u web stranice, mobilne aplikacije ni javne repozitorije: tko ga ima, može potrošiti vaše cijelo 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 Ključevi i upotreba. Stari ključ odmah prestaje raditi.
  • Nakon curenja pročitajte popis zahtjeva na Ključevi i upotreba. Prikazuje svaki zahtjev koji je ključ izvršio u posljednjih 30 dana.