Autentimine
Iga päring kannab sinu API võtit päises. Üks võti konto kohta töötab igas lõpp-punktis ja igal mudelil, kummagi kahest päisevormist abil.
Päis · OpenAI SDK-d
Authorization: Bearer YOUR_API_KEY Päis · Anthropic SDK-d
x-api-key: YOUR_API_KEY Vastu võetavad päised
Mõlemat päist loetakse igas /v1 lõpp-punktis, olenemata sellest, millist formaati lõpp-punkt kõneleb. Saada üks neist.
| Päis | Kirjeldus |
|---|---|
Authorization: Bearer <key> | Kontrollitakse esimesena. Kirjuta Bearer suure B-ga ja üks tühik enne võtit. OpenAI SDK-d saadavad selle päise. |
x-api-key: <key> | Loetakse, kui päringul ei ole Authorization: Bearer päist. Anthropic SDK-d saadavad selle päise. |
OpenAI SDK-ga määra võti ja base URL; SDK saadab 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) import OpenAI from 'openai';
const client = new OpenAI({
apiKey: 'YOUR_API_KEY',
baseURL: 'https://api.shannon-ai.com/v1'
});
const response = await client.chat.completions.create({
model: 'shannon-3',
messages: [
{ role: 'user', content: 'Hello, Shannon!' }
]
});
console.log(response.choices[0].message.content); curl -X POST "https://api.shannon-ai.com/v1/chat/completions" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "shannon-3",
"messages": [
{"role": "user", "content": "Hello, Shannon!"}
]
}' Anthropic SDK-ga määra võti ja base URL ilma /v1; SDK saadab 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")) import Anthropic from '@anthropic-ai/sdk';
const client = new Anthropic({
apiKey: 'YOUR_API_KEY',
baseURL: 'https://api.shannon-ai.com'
});
const message = await client.messages.create({
model: 'shannon-3',
max_tokens: 1024,
messages: [
{ role: 'user', content: 'Hello, Shannon!' }
]
});
console.log(message.content.filter((block) => block.type === 'text').map((block) => block.text).join('')); curl -X POST "https://api.shannon-ai.com/v1/messages" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "shannon-3",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Hello, Shannon!"}
]
}' Millised lõpp-punktid vajavad võtit
| Lõpppunkt | Võti |
|---|---|
POST /v1/chat/completions | Nõutav |
POST /v1/messages | Nõutav |
POST /v1/responses | Nõutav |
POST /v1/tokenize | Nõutav |
POST /v1/messages/count_tokens | Nõutav |
GET /v1/models | Pole vaja |
Sinu võti
- Võti on
sk-, millele järgneb 43 märki hulgastA–Z,a–z,0–9,-ja_: kokku 46 märki. - Igal kontol on täpselt üks võti. See luuakse esimest korda, kui avad lehe Võtmed ja kasutus.
- Võti annab sinu konto nimel täieliku juurdepääsu API-le: igale lõpp-punktile, igale mudelile ja kogu saldole.
- Võtmel ei ole aegumiskuupäeva. See töötab, kuni sa selle vahetad või tühistad.
Vahetamine ja tühistamine
Võtit vahetad ja tühistad lehel Võtmed ja kasutus. Võtmed ja kasutus
| Tegevus | Mis juhtub |
|---|---|
| Vaheta | Antakse uus võti ja vana võti lakkab töötamast. Uus võti töötab kohe. |
| Tühista | Võti lakkab töötamast ja uut võtit ei anta. Töötava võtme saamiseks vaheta. |
- Mõlemad jõustuvad kohe: järgmisele vana võtmega päringule vastatakse
401. Arvesta 60 sekundit ülempiiriks, enne kui vana võtit kõikjal enam ei aktsepteerita. - Konto kõik kliendid kasutavad sama võtit, seega vahetus ulatub kõigini. Pane uus võti oma klientidesse kohe pärast vahetamist.
- Saldo, kasutus ja kiirusepiirang kuuluvad kontole, mitte võtmele. Uus võti jätkab sama saldo ja sama jooksva minuti päringute arvuga.
Vead
Iga autentimistõrke olek on 401 ja tüüp authentication_error. Juhud eristab teade.
| Olek | Tüüp | Teade | Millal |
|---|---|---|---|
401 | authentication_error | Missing authentication | Päringul ei ole ei Authorization: Bearer päist ega x-api-key päist, mis algaks sk-. See on ka vastus väikeste tähtedega bearer ja ilma Bearer-ita Authorization väärtuse korral. |
401 | authentication_error | Invalid API key | Võti ei ole konto kehtiv võti: see on valesti sisestatud, tühistatud või asendatud vahetamisega. |
{
"error": {
"type": "authentication_error",
"message": "Invalid API key",
"code": "invalid_api_key",
"param": null
}
} {
"type": "error",
"error": {
"type": "authentication_error",
"message": "Invalid API key"
}
} - Igal teel peale
/v1/messagessisaldaberror-objekt kacode: "invalid_api_key", puuduva võtme korral samuti, japaram: null. - Võtit kontrollitakse enne sisu lugemist. Kehtiva võtmeta päring saab
401ka siis, kui selle sisu on vigane või liiga suur. Authorization: Bearerväärtust, mis ei algask-, ei käsitleta API võtmena. See saab401teatega, et token on vigane või aegunud.
Brauserid ja CORS
- API vastab brauseri cross-origin päringutele ainult kindla originite loendi puhul. Teise origini lehel olev JavaScript ei saa lugeda
/v1vastuseid. - Kutsu API-t oma serverist ja lase oma lehel rääkida oma serveriga. Nii jääb võti ka lehe lähtekoodist välja.
- Serveripoolset koodi ja käsurea tööriistu see ei mõjuta: seda reeglit rakendavad ainult brauserid.
- Sisselogimine saidil shannon-ai.com ei autendi
/v1päringuid. Küpsiseid seal ei loeta; võti on ainus volitus. - Lubatud origini puhul võib brauser saata
content-type,authorization,x-api-key,anthropic-version,anthropic-beta,openai-betajax-request-idning lugeda vastuse päistx-request-id.
Võtme turvaline hoidmine
- Hoia võtit serveris. Ära pane seda veebilehtedele, mobiilirakendustesse ega avalikesse repositooriumitesse: kes seda omab, saab kulutada kogu sinu saldo.
- Laadi võti keskkonnamuutujast või saladuste hoidlast, selle asemel et kirjutada see koodi.
- Kui võti võis lekkida, vaheta see lehel Võtmed ja kasutus. Vana võti lakkab kohe töötamast.
- Pärast lekkimist vaata päringute loendit lehel Võtmed ja kasutus. See näitab kõiki päringuid, mille võti on teinud viimase 30 päeva jooksul.