Zum Inhalt sprangen
Authentifikatioun

Authentifikatioun

All Ufro enthält Ären API-Schlëssel an engem Header. Ee Schlëssel pro Kont funktionéiert op all Endpoint an all Modell, a zwou méigleche Header-Forme.

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

Akzeptéiert Headers

Béid Headers ginn op all /v1-Endpoint gelies, egal a wéi engem Format den Endpoint schwätzt. Schéckt een dovun.

Header Beschreiwung
Authorization: Bearer <key> Gëtt als éischt gepréift. Schreift Bearer mat engem grousse B an engem Leerzeechen virum Schlëssel. OpenAI-SDKe schécken dësen Header.
x-api-key: <key> Gëtt gelies, wann d'Ufro keen Authorization: Bearer-Header huet. Anthropic-SDKe schécken dësen Header.

Bei enger OpenAI-SDK stellt de Schlëssel an d'Basis-URL an; d'SDK schéckt 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)

Bei enger Anthropic-SDK stellt de Schlëssel an d'Basis-URL ouni /v1 an; d'SDK schéckt 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"))

Wéi eng Endpoints e Schlëssel brauchen

Endpoint Schlëssel
POST /v1/chat/completions Erfuerderlech
POST /v1/messages Erfuerderlech
POST /v1/responses Erfuerderlech
POST /v1/tokenize Erfuerderlech
POST /v1/messages/count_tokens Erfuerderlech
GET /v1/models Net néideg

Äre Schlëssel

  • E Schlëssel ass sk- gefollegt vun 43 Zeechen aus A–Z, a–z, 0–9, - an _: insgesamt 46 Zeechen.
  • All Kont huet genee ee Schlëssel. Hie gëtt erstallt, wann Dir Schlësselen & Notzung fir d'éischt opmaacht.
  • De Schlëssel gëtt vollen Zougang zur API fir Äre Kont: all Endpoint, all Modell an de ganze Solde.
  • E Schlëssel huet kee Verfallsdatum. Hie funktionéiert, bis Dir en erneiert oder widderruff.

Erneieren a widderruffen

Dir erneiert an widderruff de Schlëssel op der Säit Schlësselen & Notzung. Schlësselen & Notzung

Aktioun Wat geschitt
Erneieren E neie Schlëssel gëtt ausgestallt an den ale Schlëssel hält op ze funktionéieren. Deen neie Schlëssel funktionéiert direkt.
Widderruffen De Schlëssel hält op ze funktionéieren a et gëtt kee neie Schlëssel ausgestallt. Erneiert, fir erëm e funktionéierende Schlëssel ze kréien.
  • Béid gëllen direkt: déi nächst Ufro mam ale Schlëssel gëtt mat 401 beäntwert. Rechent mat 60 Sekonnen als Uewergrenz, bis den ale Schlëssel iwwerall ofgeleent gëtt.
  • All Client vum Kont benotzt deeselwechte Schlëssel, sou erreecht eng Erneierung se all. Setzt de neie Schlëssel direkt nom Erneieren an Är Clienten.
  • Solde, Notzung a Flood-Schutz gehéieren zum Kont, net zum Schlëssel. E neie Schlëssel mécht mam selwechte Solde an dem selwechte Ufroenzieler fir déi aktuell Minutt weider.

Feeler

All Authentifikatiounsfeeler huet de Status 401 an den Typ authentication_error. D'Message ënnerscheet d'Fäll.

Status Typ Message Wéini
401 authentication_error Missing authentication D'Ufro huet weder en Authorization: Bearer-Header nach en x-api-key-Header, deen mat sk- ufänkt. Dat ass och d'Äntwert op bearer a klenge Buschstawen an op en Authorization-Wäert ouni Bearer.
401 authentication_error Invalid API key De Schlëssel ass net deen aktuelle Schlëssel vun engem Kont: en ass falsch getippt, en gouf widderruff, oder en gouf duerch eng Erneierung ersat.
{
  "error": {
    "type": "authentication_error",
    "message": "Invalid API key",
    "code": "invalid_api_key",
    "param": null
  }
}
  • Op all Pad ausser /v1/messages enthält d'error-Objet och code: "invalid_api_key", och bei engem feelende Schlëssel, an param: null.
  • De Schlëssel gëtt gepréift, éier de Body gelies gëtt. Eng Ufro ouni gültege Schlëssel kritt 401, och wann hire Body ongülteg oder ze grouss ass.
  • E Authorization: Bearer-Wäert, deen net mat sk- ufänkt, gëtt net als API-Schlëssel behandelt. Hie kritt 401 mat enger Message, datt den Token ongülteg oder ofgelaf ass.

Browsere a CORS

  • D'API äntwert op Cross-Origin-Browser-Ufroen nëmme fir eng fix Lëscht vun Origins. JavaScript op enger Säit vun engem anen Origin kann /v1-Äntwerten net liesen.
  • Rufft d'API vun Ärem Server aus op a loosst Är Säit mat Ärem Server schwätzen. Esou bleift de Schlëssel och aus dem Säitequellcode eraus.
  • Server-säitege Code a Kommandozeil-Tools sinn net betraff: dës Regel gëtt nëmmen vu Browser ugewannt.
  • Eng Umeldung op shannon-ai.com authentifizéiert keng /v1-Ufroen. Cookie ginn do net gelies; de Schlëssel ass déi eenzeg Credential.
  • Fir en erlaabten Origin däerf e Browser content-type, authorization, x-api-key, anthropic-version, anthropic-beta, openai-beta an x-request-id schécken an däerf den Äntwert-Header x-request-id liesen.

De Schlëssel sécher halen

  • Haalt de Schlëssel op engem Server. Setzt en net a Websäiten, Mobil-Apps oder ëffentlech Repositories: wien en huet, kann Äre ganze Solde verbrauchen.
  • Luet de Schlëssel aus enger Ëmgebungsvariabel oder engem Secret-Store, amplaz en an de Code ze schreiwen.
  • Wann de Schlëssel eventuell geleakt gouf, erneiert en ënner Schlësselen & Notzung. Den ale Schlëssel hält direkt op ze funktionéieren.
  • No engem Leak liest d'Ufroenlëscht ënner Schlësselen & Notzung. Si weist all Ufro, déi de Schlëssel an de leschten 30 Deeg gemaach huet.