Aqbeż għall-kontenut
Awtentikazzjoni

Awtentikazzjoni

Kull talba ġġorr iċ-ċavetta tal-API tiegħek f'header. Ċavetta waħda għal kull kont taħdem fuq kull endpoint u kull mudell, f'waħda miż-żewġ forom ta' header.

Header · SDKs ta' OpenAI
Authorization: Bearer YOUR_API_KEY
Header · SDKs ta' Anthropic
x-api-key: YOUR_API_KEY

Headers aċċettati

Iż-żewġ headers jinqraw fuq kull endpoint /v1, ikun xi jkun il-format li jitkellem l-endpoint. Ibgħat wieħed minnhom.

Header Deskrizzjoni
Authorization: Bearer <key> Jiġi vverifikat l-ewwel. Ikteb Bearer b'B kbira u spazju wieħed qabel iċ-ċavetta. L-SDKs ta' OpenAI jibagħtu dan l-header.
x-api-key: <key> Jinqara meta t-talba m'għandhiex header Authorization: Bearer. L-SDKs ta' Anthropic jibagħtu dan l-header.

B'SDK ta' OpenAI, issettja ċ-ċavetta u l-base URL; l-SDK jibgħat 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)

B'SDK ta' Anthropic, issettja ċ-ċavetta u l-base URL mingħajr /v1; l-SDK jibgħat 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"))

Liema endpoints jeħtieġu ċavetta

Endpoint Ċavetta
POST /v1/chat/completions Meħtieġa
POST /v1/messages Meħtieġa
POST /v1/responses Meħtieġa
POST /v1/tokenize Meħtieġa
POST /v1/messages/count_tokens Meħtieġa
GET /v1/models Mhux meħtieġa

Iċ-ċavetta tiegħek

  • Ċavetta hija sk- segwita minn 43 karattru minn A–Z, a–z, 0–9, - u _: 46 karattru b'kollox.
  • Kull kont għandu ċavetta waħda biss. Tinħoloq l-ewwel darba li tiftaħ Ċwievet u użu.
  • Iċ-ċavetta tagħti aċċess sħiħ għall-API għall-kont tiegħek: kull endpoint, kull mudell u l-bilanċ kollu.
  • Ċavetta m'għandhiex data ta' skadenza. Taħdem sakemm iddawwarha jew tirrevokaha.

Dawwar u irrevoka

Iddawwar u tirrevoka ċ-ċavetta fil-paġna Ċwievet u użu. Ċwievet u użu

Azzjoni X'jiġri
Iddawwar Tinħareġ ċavetta ġdida u l-qadima tieqaf taħdem. Iċ-ċavetta l-ġdida taħdem minnufih.
Irrevoka Iċ-ċavetta tieqaf taħdem u ma tinħareġ ebda ċavetta ġdida. Iddawwar biex terġa' tikseb ċavetta li taħdem.
  • It-tnejn jidħlu fis-seħħ minnufih: it-talba li jmiss biċ-ċavetta l-qadima tiġi mwieġba b'401. Qis 60 sekonda bħala l-limitu massimu qabel ma ċ-ċavetta l-qadima tkun miċħuda kullimkien.
  • Kull klijent tal-kont juża l-istess ċavetta, għalhekk dawran jaslu għal kollha. Poġġi ċ-ċavetta l-ġdida fil-klijenti tiegħek immedjatament wara li ddawwar.
  • Il-bilanċ, l-użu u l-protezzjoni mill-flood jappartjenu lill-kont, mhux liċ-ċavetta. Ċavetta ġdida tkompli bl-istess bilanċ u bl-istess għadd ta' talbiet għall-minuta attwali.

Żbalji

Kull falliment tal-awtentikazzjoni għandu status 401 u tip authentication_error. Il-messaġġ jiddistingwi l-każijiet.

Status Tip Messaġġ Meta
401 authentication_error Missing authentication It-talba m'għandha la header Authorization: Bearer u lanqas header x-api-key li jibda b'sk-. Din hija wkoll it-tweġiba għal bearer b'ittri żgħar u għal valur Authorization mingħajr Bearer.
401 authentication_error Invalid API key Iċ-ċavetta mhijiex iċ-ċavetta attwali ta' kont: inkitbet ħażin, ġiet irrevokata, jew ġiet sostitwita b'dawran.
{
  "error": {
    "type": "authentication_error",
    "message": "Invalid API key",
    "code": "invalid_api_key",
    "param": null
  }
}
  • Fuq kull path ħlief /v1/messages l-oġġett error fih ukoll code: "invalid_api_key", anki għal ċavetta nieqsa, u param: null.
  • Iċ-ċavetta tiġi vverifikata qabel ma jinqara l-body. Talba mingħajr ċavetta valida tikseb 401 anki jekk il-body tagħha jkun invalidu jew kbir wisq.
  • Valur Authorization: Bearer li ma jibdiex b'sk- ma jiġix ittrattat bħala ċavetta tal-API. Jikseb 401 b'messaġġ li t-token huwa invalidu jew skadut.

Browsers u CORS

  • L-API iwieġeb talbiet cross-origin tal-browser biss għal lista fissa ta' origins. JavaScript fuq paġna ta' origin ieħor ma jistax jaqra tweġibiet /v1.
  • Sejjaħ l-API mis-server tiegħek u ħalli l-paġna tiegħek titkellem mas-server tiegħek. Dan iżomm ukoll iċ-ċavetta barra mis-sors tal-paġna.
  • Il-kodiċi fuq is-server u t-tools tal-linja tal-kmand mhumiex affettwati: din ir-regola tiġi applikata mill-browsers biss.
  • Dħul fuq shannon-ai.com ma jawtentikax talbiet /v1. Il-cookies ma jinqrawx hemm; iċ-ċavetta hija l-unika kredenzjali.
  • Għal origin permess, browser jista' jibgħat content-type, authorization, x-api-key, anthropic-version, anthropic-beta, openai-beta u x-request-id, u jista' jaqra l-header tat-tweġiba x-request-id.

Kif iżżomm iċ-ċavetta sikura

  • Żomm iċ-ċavetta fuq server. Tpoġġihiex f'paġni web, f'apps mobbli jew f'repositories pubbliċi: min iżommha jista' jonfoq il-bilanċ kollu tiegħek.
  • Ikkarga ċ-ċavetta minn environment variable jew minn secret store minflok ma tikteb fil-kodiċi.
  • Jekk iċ-ċavetta setgħet tnixxiet, iddawwarha f'Ċwievet u użu. Iċ-ċavetta l-qadima tieqaf taħdem minnufih.
  • Wara tnixxija, aqra l-lista tat-talbiet f'Ċwievet u użu. Turi kull talba li ċ-ċavetta għamlet fl-aħħar 30 jum.