Pereiti prie turinio
Autentifikavimas

Autentifikavimas

Kiekviena užklausa antraštėje turi jūsų API raktą. Vienas paskyros raktas veikia su kiekvienu galiniu tašku ir kiekvienu modeliu, naudojant bet kurią iš dviejų antraštės formų.

Antraštė · OpenAI SDK
Authorization: Bearer YOUR_API_KEY
Antraštė · Anthropic SDK
x-api-key: YOUR_API_KEY

Priimamos antraštės

Abi antraštės skaitomos kiekviename /v1 galiniame taške, kad ir kokiu formatu jis kalbėtų. Siųskite vieną iš jų.

Antraštė Aprašymas
Authorization: Bearer <key> Tikrinama pirmiausia. Bearer rašykite didžiąja B ir su vienu tarpu prieš raktą. OpenAI SDK siunčia šią antraštę.
x-api-key: <key> Skaitoma, kai užklausoje nėra Authorization: Bearer antraštės. Anthropic SDK siunčia šią antraštę.

Naudodami OpenAI SDK, nustatykite raktą ir bazinį URL; SDK siunčia 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)

Naudodami Anthropic SDK, nustatykite raktą ir bazinį URL be /v1; SDK siunčia 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"))

Kuriems galiniams taškams reikia rakto

Galutinis taškas Raktas
POST /v1/chat/completions Privalomas
POST /v1/messages Privalomas
POST /v1/responses Privalomas
POST /v1/tokenize Privalomas
POST /v1/messages/count_tokens Privalomas
GET /v1/models Nereikia

Jūsų raktas

  • Raktas yra sk- ir 43 simboliai iš A–Z, a–z, 0–9, - ir _: iš viso 46 simboliai.
  • Kiekviena paskyra turi lygiai vieną raktą. Jis sukuriamas pirmą kartą atidarius Raktai ir naudojimas.
  • Raktas suteikia visišką prieigą prie API jūsų paskyrai: visus galinius taškus, visus modelius ir visą balansą.
  • Raktas neturi galiojimo pabaigos datos. Jis veikia, kol jį pakeisite ar atšauksite.

Keitimas ir atšaukimas

Raktą keičiate ir atšaukiate puslapyje Raktai ir naudojimas. Raktai ir naudojimas

Veiksmas Kas nutinka
Pakeisti Išduodamas naujas raktas, o senasis nustoja veikti. Naujas raktas veikia iškart.
Atšaukti Raktas nustoja veikti ir naujas neišduodamas. Pakeiskite raktą, kad vėl turėtumėte veikiantį.
  • Abu veiksmai įsigalioja iškart: kita užklausa su senuoju raktu bus atmesta su 401. Laikykite 60 sekundžių viršutine riba, kol senasis raktas bus atmetamas visur.
  • Visi paskyros klientai naudoja tą patį raktą, todėl pakeitimas paliečia juos visus. Naują raktą įrašykite į savo klientus iškart po pakeitimo.
  • Balansas, naudojimas ir apsauga nuo užplūdimo priklauso paskyrai, o ne raktui. Naujas raktas tęsia su tuo pačiu balansu ir tuo pačiu dabartinės minutės užklausų skaičiumi.

Klaidos

Kiekviena autentifikavimo klaida turi būseną 401 ir tipą authentication_error. Atvejus skiria pranešimas.

Būsena Tipas Pranešimas Kada
401 authentication_error Missing authentication Užklausoje nėra nei Authorization: Bearer antraštės, nei x-api-key antraštės, prasidedančios sk-. Tai taip pat atsakymas į bearer mažosiomis raidėmis ir į Authorization reikšmę be Bearer.
401 authentication_error Invalid API key Raktas nėra dabartinis paskyros raktas: jis įvestas su klaida, buvo atšauktas arba pakeistas.
{
  "error": {
    "type": "authentication_error",
    "message": "Invalid API key",
    "code": "invalid_api_key",
    "param": null
  }
}
  • Visuose keliuose, išskyrus /v1/messages, error objekte taip pat yra code: "invalid_api_key", net jei rakto nėra, ir param: null.
  • Raktas tikrinamas prieš skaitant turinį. Užklausa be galiojančio rakto gauna 401, net jei jos turinys neteisingas ar per didelis.
  • Authorization: Bearer reikšmė, kuri neprasideda sk-, nelaikoma API raktu. Ji gauna 401 su pranešimu, kad tokenas neteisingas arba nebegalioja.

Naršyklės ir CORS

  • API atsako į naršyklių kryžminės kilmės užklausas tik fiksuotam kilmių sąrašui. Kitos kilmės puslapio JavaScript negali skaityti /v1 atsakymų.
  • Kreipkitės į API iš savo serverio, o puslapis tegul kreipiasi į jūsų serverį. Taip raktas ir nepateks į puslapio šaltinį.
  • Serverio pusės kodo ir komandinės eilutės įrankių tai neliečia: šią taisyklę taiko tik naršyklės.
  • Prisijungimas shannon-ai.com neautentifikuoja /v1 užklausų. Slapukai ten neskaitomi; raktas yra vienintelis prisijungimo duomuo.
  • Leidžiamos kilmės atveju naršyklė gali siųsti content-type, authorization, x-api-key, anthropic-version, anthropic-beta, openai-beta ir x-request-id ir gali skaityti atsakymo antraštę x-request-id.

Rakto apsauga

  • Laikykite raktą serveryje. Nedėkite jo į tinklalapius, mobiliąsias programas ar viešas saugyklas: kas jį turi, gali išleisti visą jūsų balansą.
  • Raktą įkelkite iš aplinkos kintamojo arba paslapčių saugyklos, o ne įrašykite į kodą.
  • Jei raktas galėjo nutekėti, pakeiskite jį puslapyje Raktai ir naudojimas. Senasis raktas nustoja veikti iškart.
  • Po nutekėjimo peržiūrėkite užklausų sąrašą puslapyje Raktai ir naudojimas. Jame matomos visos raktu per pastarąsias 30 dienų pateiktos užklausos.