Preskoči na vsebino
Avtentikacija

Avtentikacija

Vsak zahtevek nosi vaš API ključ v glavi. En ključ na račun deluje na vsakem endpointu in z vsakim modelom, v eni od dveh oblik glave.

Glava · SDK-ji OpenAI
Authorization: Bearer YOUR_API_KEY
Glava · SDK-ji Anthropic
x-api-key: YOUR_API_KEY

Sprejete glave

Obe glavi se prebereta na vsakem endpointu /v1, ne glede na format, ki ga endpoint govori. Pošljite eno od njiju.

Glava Opis
Authorization: Bearer <key> Preveri se prva. Napišite Bearer z veliko začetnico B in enim presledkom pred ključem. To glavo pošiljajo SDK-ji OpenAI.
x-api-key: <key> Prebere se, kadar zahtevek nima glave Authorization: Bearer. To glavo pošiljajo SDK-ji Anthropic.

Pri SDK-ju OpenAI nastavite ključ in osnovni URL; SDK pošlje 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)

Pri SDK-ju Anthropic nastavite ključ in osnovni URL brez /v1; SDK pošlje 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"))

Kateri endpointi potrebujejo ključ

Končni točka (Endpoint) Ključ
POST /v1/chat/completions Obvezen
POST /v1/messages Obvezen
POST /v1/responses Obvezen
POST /v1/tokenize Obvezen
POST /v1/messages/count_tokens Obvezen
GET /v1/models Ni potreben

Vaš ključ

  • Ključ je sk-, ki mu sledi 43 znakov iz A–Z, a–z, 0–9, - in _: skupaj 46 znakov.
  • Vsak račun ima natanko en ključ. Ustvari se, ko prvič odprete Ključi in poraba.
  • Ključ daje poln dostop do API-ja za vaš račun: vsak endpoint, vsak model in celotno stanje.
  • Ključ nima datuma poteka. Deluje, dokler ga ne zamenjate ali prekličete.

Menjava in preklic

Ključ zamenjate in prekličete na strani Ključi in poraba. Ključi in poraba

Dejanje Kaj se zgodi
Menjava Izda se nov ključ, stari ključ preneha delovati. Novi ključ deluje takoj.
Preklic Ključ preneha delovati in nov ključ se ne izda. Zamenjajte ga, da spet dobite delujoč ključ.
  • Oboje velja takoj: na naslednji zahtevek s starim ključem se odgovori s 401. Štejte 60 sekund kot zgornjo mejo, preden je stari ključ povsod zavrnjen.
  • Vsi odjemalci računa uporabljajo isti ključ, zato menjava doseže vse. Nov ključ vnesite v svoje odjemalce takoj po menjavi.
  • Stanje, poraba in zaščita pred poplavo zahtevkov pripadajo računu, ne ključu. Nov ključ nadaljuje z istim stanjem in istim številom zahtevkov za trenutno minuto.

Napake

Vsaka napaka overitve ima status 401 in tip authentication_error. Sporočilo loči primere.

Stanje Vrsta Sporočilo Kdaj
401 authentication_error Missing authentication Zahtevek nima ne glave Authorization: Bearer ne glave x-api-key, ki se začne z sk-. To je tudi odgovor na bearer z malimi črkami in na vrednost Authorization brez Bearer.
401 authentication_error Invalid API key Ključ ni trenutni ključ nobenega računa: je napačno vpisan, preklican ali pa ga je nadomestila menjava.
{
  "error": {
    "type": "authentication_error",
    "message": "Invalid API key",
    "code": "invalid_api_key",
    "param": null
  }
}
  • Na vseh poteh razen /v1/messages objekt error vsebuje tudi code: "invalid_api_key", tudi pri manjkajočem ključu, ter param: null.
  • Ključ se preveri, preden se prebere telo. Zahtevek brez veljavnega ključa dobi 401, tudi če je njegovo telo neveljavno ali preveliko.
  • Vrednost Authorization: Bearer, ki se ne začne z sk-, se ne obravnava kot API ključ. Dobi 401 s sporočilom, da je token neveljaven ali potekel.

Brskalniki in CORS

  • API odgovarja na medizvorne zahtevke brskalnika samo za določen seznam izvorov. JavaScript na strani z drugega izvora ne more brati odgovorov /v1.
  • API kličite s svojega strežnika, stran pa naj se pogovarja z vašim strežnikom. Tako ključ ostane tudi zunaj izvorne kode strani.
  • Koda na strežniku in orodja ukazne vrstice niso prizadeta: to pravilo uveljavljajo samo brskalniki.
  • Prijava na shannon-ai.com ne overi zahtevkov /v1. Piškotki se tam ne berejo; ključ je edino poverilo.
  • Za dovoljen izvor lahko brskalnik pošlje content-type, authorization, x-api-key, anthropic-version, anthropic-beta, openai-beta in x-request-id ter lahko prebere glavo odgovora x-request-id.

Varovanje ključa

  • Ključ hranite na strežniku. Ne vstavljajte ga v spletne strani, mobilne aplikacije ali javna skladišča: kdor ga ima, lahko porabi vse vaše stanje.
  • Ključ naložite iz spremenljivke okolja ali shrambe skrivnosti, namesto da ga zapišete v kodo.
  • Če je ključ morda ušel, ga zamenjajte v Ključi in poraba. Stari ključ preneha delovati takoj.
  • Po uhajanju preberite seznam zahtevkov v Ključi in poraba. Prikazuje vsak zahtevek, ki ga je ključ naredil v zadnjih 30 dneh.