Slaan oor na inhoud
Verifikasie

Verifikasie

Elke versoek dra jou API-sleutel in 'n header. Een sleutel per rekening werk op elke eindpunt en elke model, in enige van twee header-vorme.

Header · OpenAI SDK's
Authorization: Bearer YOUR_API_KEY
Header · Anthropic SDK's
x-api-key: YOUR_API_KEY

Aanvaarde headers

Albei headers word op elke /v1-eindpunt gelees, watter formaat die eindpunt ook praat. Stuur een van hulle.

Header Beskrywing
Authorization: Bearer <key> Word eerste nagegaan. Skryf Bearer met 'n hoofletter B en een spasie voor die sleutel. OpenAI SDK's stuur hierdie header.
x-api-key: <key> Word gelees wanneer die versoek geen Authorization: Bearer-header het nie. Anthropic SDK's stuur hierdie header.

Met 'n OpenAI SDK, stel die sleutel en die basis-URL; die SDK stuur 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)

Met 'n Anthropic SDK, stel die sleutel en die basis-URL sonder /v1; die SDK stuur 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"))

Watter eindpunte 'n sleutel nodig het

Eindpunt Sleutel
POST /v1/chat/completions Verpligtend
POST /v1/messages Verpligtend
POST /v1/responses Verpligtend
POST /v1/tokenize Verpligtend
POST /v1/messages/count_tokens Verpligtend
GET /v1/models Nie nodig nie

Jou sleutel

  • 'n Sleutel is sk- gevolg deur 43 karakters uit A–Z, a–z, 0–9, - en _: 46 karakters in totaal.
  • Elke rekening het presies een sleutel. Dit word geskep die eerste keer wat jy Sleutels en gebruik oopmaak.
  • Die sleutel gee volle toegang tot die API vir jou rekening: elke eindpunt, elke model en die hele balans.
  • 'n Sleutel het geen vervaldatum nie. Dit werk totdat jy dit roteer of herroep.

Roteer en herroep

Jy roteer en herroep die sleutel op die bladsy Sleutels en gebruik. Sleutels en gebruik

Aksie Wat gebeur
Roteer 'n Nuwe sleutel word uitgereik en die ou sleutel hou op werk. Die nuwe sleutel werk dadelik.
Herroep Die sleutel hou op werk en geen nuwe sleutel word uitgereik nie. Roteer om weer 'n werkende sleutel te kry.
  • Albei tree dadelik in werking: die volgende versoek met die ou sleutel word met 401 beantwoord. Beskou 60 sekondes as die boonste grens voordat die ou sleutel oral geweier word.
  • Elke kliënt van die rekening gebruik dieselfde sleutel, so 'n rotasie raak almal. Sit die nuwe sleutel in jou kliënte sodra jy roteer het.
  • Balans, gebruik en vloedbeskerming behoort aan die rekening, nie aan die sleutel nie. 'n Nuwe sleutel gaan voort met dieselfde balans en dieselfde versoektelling vir die huidige minuut.

Foute

Elke verifikasiemislukking het status 401 en tipe authentication_error. Die boodskap onderskei die gevalle.

Status Tipe Boodskap Wanneer
401 authentication_error Missing authentication Die versoek het nie 'n Authorization: Bearer-header of 'n x-api-key-header wat met sk- begin nie. Dit is ook die antwoord op bearer in kleinletters en op 'n Authorization-waarde sonder Bearer.
401 authentication_error Invalid API key Die sleutel is nie die huidige sleutel van 'n rekening nie: dit is verkeerd getik, dit is herroep, of dit is deur 'n rotasie vervang.
{
  "error": {
    "type": "authentication_error",
    "message": "Invalid API key",
    "code": "invalid_api_key",
    "param": null
  }
}
  • Op elke pad behalwe /v1/messages bevat die error-objek ook code: "invalid_api_key", ook vir 'n ontbrekende sleutel, en param: null.
  • Die sleutel word nagegaan voordat die liggaam gelees word. 'n Versoek sonder 'n geldige sleutel kry 401 selfs wanneer sy liggaam ongeldig of te groot is.
  • 'n Authorization: Bearer-waarde wat nie met sk- begin nie, word nie as 'n API-sleutel behandel nie. Dit kry 401 met 'n boodskap dat die token ongeldig of verval is.

Blaaiers en CORS

  • Die API beantwoord kruisoorsprong-blaaierversoeke slegs vir 'n vaste lys oorspronge. JavaScript op 'n bladsy van 'n ander oorsprong kan nie /v1-antwoorde lees nie.
  • Roep die API vanaf jou bediener en laat jou bladsy met jou bediener praat. Dit hou ook die sleutel uit die bladsybron.
  • Bedienerkant-kode en opdragreëlhulpmiddels word nie geraak nie: hierdie reël word slegs deur blaaiers toegepas.
  • 'n Aanmelding op shannon-ai.com verifieer nie /v1-versoeke nie. Koekies word daar nie gelees nie; die sleutel is die enigste bewys van identiteit.
  • Vir 'n toegelate oorsprong mag 'n blaaier content-type, authorization, x-api-key, anthropic-version, anthropic-beta, openai-beta en x-request-id stuur, en mag die antwoord-header x-request-id lees.

Hou die sleutel veilig

  • Hou die sleutel op 'n bediener. Moenie dit in webbladsye, mobiele toepassings of openbare bewaarplekke sit nie: wie dit het, kan jou hele balans bestee.
  • Laai die sleutel uit 'n omgewingsveranderlike of 'n geheimwinkel in plaas daarvan om dit in kode te skryf.
  • As die sleutel dalk gelek het, roteer dit op Sleutels en gebruik. Die ou sleutel hou dadelik op werk.
  • Lees ná 'n lek die versoeklys op Sleutels en gebruik. Dit wys elke versoek wat die sleutel in die laaste 30 dae gemaak het.