Preskoči na sadržaj
Autentikacija

Autentikacija

Svaki zahtev nosi vaš API ključ u zaglavlju. Jedan ključ po nalogu 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> Proverava se prvo. Napišite Bearer velikim slovom B i jednim razmakom pre ključa. OpenAI SDK-ovi šalju ovo zaglavlje.
x-api-key: <key> Čita se kada zahtev nema zaglavlje Authorization: Bearer. Anthropic SDK-ovi šalju ovo zaglavlje.

Sa OpenAI SDK-om podesite 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)

Sa Anthropic SDK-om podesite 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 traže 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 kog sledi 43 znaka iz A–Z, a–z, 0–9, - i _: ukupno 46 znakova.
  • Svaki nalog ima tačno jedan ključ. Pravi se kada prvi put otvorite Ključevi i upotreba.
  • Ključ daje pun pristup API-ju za vaš nalog: svaki endpoint, svaki model i celo 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 Šta se dešava
Rotiraj Izdaje se novi ključ, a stari prestaje da radi. Novi ključ radi odmah.
Opozovi Ključ prestaje da radi i novi se ne izdaje. Rotirajte da biste ponovo dobili ključ koji radi.
  • Oba važe odmah: sledeći zahtev sa starim ključem dobija odgovor 401. Računajte 60 sekundi kao gornju granicu pre nego što se stari ključ odbije svuda.
  • Svi klijenti naloga koriste isti ključ, pa rotacija pogađa sve njih. Stavite novi ključ u svoje klijente odmah nakon rotacije.
  • Stanje, upotreba i zaštita od flooda pripadaju nalogu, a ne ključu. Novi ključ nastavlja sa istim stanjem i istim brojem zahteva za tekući minut.

Greške

Svaki neuspeh autentikacije ima status 401 i tip authentication_error. Poruka razlikuje slučajeve.

Status Tip Poruka Kada
401 authentication_error Missing authentication Zahtev nema ni zaglavlje Authorization: Bearer ni zaglavlje x-api-key koje počinje sa sk-. Ovo je i odgovor na bearer malim slovima i na vrednost Authorization bez Bearer.
401 authentication_error Invalid API key Ključ nije trenutni ključ nijednog naloga: pogrešno je ukucan, opozvan je ili je zamenjen 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đe za ključ koji nedostaje, i param: null.
  • Ključ se proverava pre čitanja tela. Zahtev bez važećeg ključa dobija 401 čak i kada je njegovo telo nevažeće ili preveliko.
  • Vrednost Authorization: Bearer koja ne počinje sa sk- ne tretira se kao API ključ. Dobija 401 sa porukom da je token nevažeći ili istekao.

Pregledači i CORS

  • API odgovara na cross-origin zahteve pregledača samo za fiksnu listu origina. JavaScript na stranici drugog origina ne može da čita /v1 odgovore.
  • Pozivajte API sa svog servera i pustite da vaša stranica komunicira sa vašim serverom. Tako ključ ostaje van izvornog koda stranice.
  • Kod na strani servera i alati komandne linije nisu pogođeni: ovo pravilo primenjuju samo pregledači.
  • Prijava na shannon-ai.com ne autentifikuje /v1 zahteve. Kolačići se tamo ne čitaju; ključ je jedini kredencijal.
  • Za dozvoljeni origin, pregledač može da pošalje content-type, authorization, x-api-key, anthropic-version, anthropic-beta, openai-beta i x-request-id, i može da pročita zaglavlje odgovora x-request-id.

Čuvanje ključa

  • Držite ključ na serveru. Ne stavljajte ga u veb stranice, mobilne aplikacije ili javne repozitorijume: ko ga ima, može da potroši celo vaše stanje.
  • Učitajte ključ iz promenljive okruženja ili skladišta tajni umesto da ga upisujete u kod.
  • Ako je ključ možda procureo, rotirajte ga u Ključevi i upotreba. Stari ključ odmah prestaje da radi.
  • Nakon curenja pročitajte listu zahteva u Ključevi i upotreba. Prikazuje svaki zahtev koji je ključ uputio u poslednjih 30 dana.