Salti al la enhavo
Aŭtentigo

Aŭtentigo

Ĉiu peto portas vian API-ŝlosilon en kapo. Unu ŝlosilo por konto funkcias ĉe ĉiu endpoint kaj ĉiu modelo, en unu el du kapformoj.

Kapo · SDK-oj de OpenAI
Authorization: Bearer YOUR_API_KEY
Kapo · SDK-oj de Anthropic
x-api-key: YOUR_API_KEY

Akceptataj kapoj

Ambaŭ kapoj estas legataj ĉe ĉiu endpoint de /v1, kia ajn formato la endpoint parolas. Sendu unu el ili.

Kapo Priskribo
Authorization: Bearer <key> Kontrolata unue. Skribu Bearer kun majuskla B kaj unu spaco antaŭ la ŝlosilo. SDK-oj de OpenAI sendas ĉi tiun kapon.
x-api-key: <key> Legata kiam la peto ne havas kapon Authorization: Bearer. SDK-oj de Anthropic sendas ĉi tiun kapon.

Kun SDK de OpenAI agordu la ŝlosilon kaj la bazan URL; la SDK sendas 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)

Kun SDK de Anthropic agordu la ŝlosilon kaj la bazan URL sen /v1; la SDK sendas 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"))

Kiuj endpoints bezonas ŝlosilon

Ĉuĵuŝpunkto Ŝlosilo
POST /v1/chat/completions Necesa
POST /v1/messages Necesa
POST /v1/responses Necesa
POST /v1/tokenize Necesa
POST /v1/messages/count_tokens Necesa
GET /v1/models Ne necesa

Via ŝlosilo

  • Ŝlosilo estas sk- sekvata de 43 signoj el A–Z, a–z, 0–9, - kaj _: entute 46 signoj.
  • Ĉiu konto havas ĝuste unu ŝlosilon. Ĝi estas kreata la unuan fojon, kiam vi malfermas Ŝlosiloj kaj uzado.
  • La ŝlosilo donas plenan aliron al la API por via konto: ĉiu endpoint, ĉiu modelo kaj la tuta saldo.
  • Ŝlosilo ne havas eksvalidiĝan daton. Ĝi funkcias ĝis vi rotacias aŭ revokas ĝin.

Rotacii kaj revoki

Vi rotacias kaj revokas la ŝlosilon en la paĝo Ŝlosiloj kaj uzado. Ŝlosiloj kaj uzado

Ago Kio okazas
Rotacii Nova ŝlosilo estas eldonata kaj la malnova ŝlosilo ĉesas funkcii. La nova ŝlosilo funkcias tuj.
Revoki La ŝlosilo ĉesas funkcii kaj neniu nova ŝlosilo estas eldonata. Rotaciu por denove ricevi funkciantan ŝlosilon.
  • Ambaŭ efikas tuj: la sekva peto kun la malnova ŝlosilo ricevas respondon 401. Rigardu 60 sekundojn kiel supran limon ĝis la malnova ŝlosilo estas rifuzata ĉie.
  • Ĉiu kliento de la konto uzas la saman ŝlosilon, do rotacio atingas ĉiujn. Metu la novan ŝlosilon en viajn klientojn tuj post la rotacio.
  • Saldo, uzado kaj flood protection apartenas al la konto, ne al la ŝlosilo. Nova ŝlosilo daŭrigas kun la sama saldo kaj la sama nombro da petoj por la nuna minuto.

Eraroj

Ĉiu aŭtentiga malsukceso havas staton 401 kaj tipon authentication_error. La mesaĝo distingas la kazojn.

Stato Tipo Mesaĝo Kiam
401 authentication_error Missing authentication La peto havas nek kapon Authorization: Bearer nek kapon x-api-key, kiu komenciĝas per sk-. Tio estas ankaŭ la respondo al bearer en minuskloj kaj al valoro de Authorization sen Bearer.
401 authentication_error Invalid API key La ŝlosilo ne estas la nuna ŝlosilo de konto: ĝi estas mistajpita, ĝi estis revokita, aŭ ĝi estis anstataŭigita per rotacio.
{
  "error": {
    "type": "authentication_error",
    "message": "Invalid API key",
    "code": "invalid_api_key",
    "param": null
  }
}
  • Ĉe ĉiu vojo krom /v1/messages la objekto error enhavas ankaŭ code: "invalid_api_key", ankaŭ por mankanta ŝlosilo, kaj param: null.
  • La ŝlosilo estas kontrolata antaŭ ol la korpo estas legata. Peto sen valida ŝlosilo ricevas 401 eĉ se ĝia korpo estas nevalida aŭ tro granda.
  • Valoro de Authorization: Bearer, kiu ne komenciĝas per sk-, ne estas traktata kiel API-ŝlosilo. Ĝi ricevas 401 kun mesaĝo, ke la token estas nevalida aŭ eksvalidiĝinta.

Retumiloj kaj CORS

  • La API respondas al tra-originaj retumilaj petoj nur por fiksa listo de originoj. JavaScript sur paĝo de alia origino ne povas legi respondojn de /v1.
  • Vokku la API de via servilo kaj lasu vian paĝon paroli kun via servilo. Tio ankaŭ tenas la ŝlosilon ekster la fontkodo de la paĝo.
  • Servilflanka kodo kaj komandliniaj iloj ne estas tuŝitaj: ĉi tiun regulon aplikas nur retumiloj.
  • Ensaluto ĉe shannon-ai.com ne aŭtentigas petojn al /v1. Kuketoj tie ne estas legataj; la ŝlosilo estas la sola akreditaĵo.
  • Por permesata origino retumilo povas sendi content-type, authorization, x-api-key, anthropic-version, anthropic-beta, openai-beta kaj x-request-id, kaj povas legi la respondan kapon x-request-id.

Sekura konservado de la ŝlosilo

  • Tenu la ŝlosilon sur servilo. Ne metu ĝin en TTT-paĝojn, porteblajn aplikaĵojn aŭ publikajn deponejojn: kiu ajn posedas ĝin, povas elspezi vian tutan saldon.
  • Ŝargu la ŝlosilon el medivariablo aŭ sekreta konservejo anstataŭ skribi ĝin en kodon.
  • Se la ŝlosilo eble likis, rotaciu ĝin en Ŝlosiloj kaj uzado. La malnova ŝlosilo tuj ĉesas funkcii.
  • Post liko legu la liston de petoj en Ŝlosiloj kaj uzado. Ĝi montras ĉiun peton, kiun la ŝlosilo faris dum la lastaj 30 tagoj.