Ad contentum transili
Authenticatio

Authenticatio

Quaeque petitio clavem tuam API in header fert. Una clavis per rationem ad omne endpoint et omne modellum valet, in alterutra ex duabus formis header.

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

Headers accepti

Ambo headers in omni endpoint /v1 leguntur, quamcumque formam endpoint loquitur. Unum ex eis mitte.

Header Descriptio
Authorization: Bearer <key> Primum inspicitur. Bearer cum B maiuscula et uno spatio ante clavem scribe. SDK OpenAI hunc header mittunt.
x-api-key: <key> Legitur cum petitio header Authorization: Bearer non habet. SDK Anthropic hunc header mittunt.

Cum SDK OpenAI, clavem et URL basim pone; SDK Authorization: Bearer mittit.

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)

Cum SDK Anthropic, clavem et URL basim sine /v1 pone; SDK x-api-key mittit.

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"))

Quae endpoints clavem requirunt

Endpoint Clavis
POST /v1/chat/completions Requisita
POST /v1/messages Requisita
POST /v1/responses Requisita
POST /v1/tokenize Requisita
POST /v1/messages/count_tokens Requisita
GET /v1/models Non necessaria

Clavis tua

  • Clavis est sk- quod sequuntur 43 characteres ex A–Z, a–z, 0–9, - et _: 46 characteres in summa.
  • Quaeque ratio unam clavem exacte habet. Creatur cum primum Claves et usus aperis.
  • Clavis plenum aditum ad API pro ratione tua dat: omne endpoint, omne modellum et totum saldum.
  • Clavis diem exspirationis non habet. Operatur donec eam rotes vel revoces.

Rotare et revocare

Clavem in pagina Claves et usus rotas et revocas. Claves et usus

Actio Quid fit
Rotare Nova clavis datur et vetus clavis operari desinit. Nova clavis statim operatur.
Revocare Clavis operari desinit et nulla nova clavis datur. Rota ut iterum clavem operantem habeas.
  • Ambo statim valent: proxima petitio cum clave vetere cum 401 respondetur. 60 secunda ut limitem superiorem puta antequam vetus clavis ubique reiciatur.
  • Omnes clientes rationis eadem clave utuntur, itaque rotatio ad omnes pertingit. Novam clavem in clientes tuos pone statim post rotationem.
  • Saldum, usus et defensio inundationis ad rationem pertinent, non ad clavem. Nova clavis cum eodem saldo et eodem numero petitionum pro minuto praesenti pergit.

Errores

Omnis defectus authenticationis statum 401 et genus authentication_error habet. Nuntius casus distinguit.

Status Genus Nuntius Quando
401 authentication_error Missing authentication Petitio nec header Authorization: Bearer nec header x-api-key habet qui a sk- incipit. Hoc etiam est responsum ad bearer minusculis et ad valorem Authorization sine Bearer.
401 authentication_error Invalid API key Clavis non est clavis praesens rationis: perperam scripta est, revocata est, vel rotatione substituta est.
{
  "error": {
    "type": "authentication_error",
    "message": "Invalid API key",
    "code": "invalid_api_key",
    "param": null
  }
}
  • In omni via praeter /v1/messages objectum error etiam code: "invalid_api_key" continet, etiam pro clave absente, et param: null.
  • Clavis inspicitur antequam corpus legitur. Petitio sine clave valida 401 accipit etiam si corpus eius invalidum vel nimis magnum est.
  • Valor Authorization: Bearer qui a sk- non incipit ut clavis API non tractatur. 401 accipit cum nuntio tokenem invalidum vel exspiratum esse.

Navigatra et CORS

  • API petitionibus navigatrorum cross-origin solum pro indice certo originum respondet. JavaScript in pagina alterius originis responsa /v1 legere non potest.
  • API ex servere tuo voca et paginam tuam cum servere tuo colloqui sine. Hoc etiam clavem a fonte paginae removet.
  • Codex ex parte servi et instrumenta lineae mandatorum non afficiuntur: haec regula a navigatris solis applicatur.
  • Ingressus in shannon-ai.com petitiones /v1 non authenticat. Cookies ibi non leguntur; clavis sola credentiale est.
  • Pro origine permissa, navigator mittere potest content-type, authorization, x-api-key, anthropic-version, anthropic-beta, openai-beta et x-request-id, et header responsi x-request-id legere potest.

Clavem tutam servare

  • Clavem in servere serva. Noli eam in paginas interretiales, applicationes mobiles vel repositoria publica ponere: quisquis eam tenet totum saldum tuum impendere potest.
  • Clavem ex variabili ambitus vel ex repositorio secretorum onera, noli eam in codicem scribere.
  • Si clavis effluxisse potest, eam in Claves et usus rota. Vetus clavis statim operari desinit.
  • Post effluxum, indicem petitionum in Claves et usus lege. Omnes petitiones quas clavis in ultimis 30 diebus fecit ostendit.