Autentikim
Çdo kërkesë mban çelësin tuaj API në një header. Një çelës për llogari funksionon në çdo endpoint dhe çdo model, në cilëndo nga dy format e header-it.
Header · SDK-të OpenAI
Authorization: Bearer YOUR_API_KEY Header · SDK-të Anthropic
x-api-key: YOUR_API_KEY Header-at e pranuar
Të dy header-at lexohen në çdo endpoint /v1, cilindo format që flet endpoint-i. Dërgoni njërin prej tyre.
| Header | Përshkrimi |
|---|---|
Authorization: Bearer <key> | Kontrollohet i pari. Shkruani Bearer me B të madhe dhe një hapësirë para çelësit. SDK-të OpenAI e dërgojnë këtë header. |
x-api-key: <key> | Lexohet kur kërkesa nuk ka header Authorization: Bearer. SDK-të Anthropic e dërgojnë këtë header. |
Me një SDK OpenAI, vendosni çelësin dhe URL-në bazë; SDK-ja dërgon 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!"}
]
}' Me një SDK Anthropic, vendosni çelësin dhe URL-në bazë pa /v1; SDK-ja dërgon 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!"}
]
}' Cilat endpoint-e kërkojnë çelës
| Endpoint | Çelësi |
|---|---|
POST /v1/chat/completions | Kërkohet |
POST /v1/messages | Kërkohet |
POST /v1/responses | Kërkohet |
POST /v1/tokenize | Kërkohet |
POST /v1/messages/count_tokens | Kërkohet |
GET /v1/models | Nuk nevojitet |
Çelësi juaj
- Një çelës është
sk-e ndjekur nga 43 karaktere ngaA–Z,a–z,0–9,-dhe_: gjithsej 46 karaktere. - Çdo llogari ka saktësisht një çelës. Krijohet herën e parë që hapni Çelësat dhe përdorimi.
- Çelësi jep qasje të plotë në API për llogarinë tuaj: çdo endpoint, çdo model dhe gjithë bilancin.
- Një çelës nuk ka datë skadimi. Funksionon derisa ta rrotulloni ose ta shfuqizoni.
Rrotullimi dhe shfuqizimi
Çelësin e rrotulloni dhe e shfuqizoni te faqja Çelësat dhe përdorimi. Çelësat dhe përdorimi
| Veprimi | Çfarë ndodh |
|---|---|
| Rrotullo | Lëshohet një çelës i ri dhe çelësi i vjetër ndalon së punuari. Çelësi i ri funksionon menjëherë. |
| Shfuqizo | Çelësi ndalon së punuari dhe nuk lëshohet çelës i ri. Rrotulloni për të marrë përsëri një çelës që funksionon. |
- Të dyja hyjnë në fuqi menjëherë: kërkesa tjetër me çelësin e vjetër merr përgjigje
401. Llogaritni 60 sekonda si kufirin e sipërm para se çelësi i vjetër të refuzohet kudo. - Çdo klient i llogarisë përdor të njëjtin çelës, kështu që një rrotullim i arrin të gjithë. Vendoseni çelësin e ri te klientët tuaj menjëherë pas rrotullimit.
- Bilanci, përdorimi dhe mbrojtja nga vërshimi i kërkesave i përkasin llogarisë, jo çelësit. Një çelës i ri vazhdon me të njëjtin bilanc dhe të njëjtin numër kërkesash për minutën aktuale.
Gabimet
Çdo dështim autentikimi ka statusin 401 dhe llojin authentication_error. Mesazhi i dallon rastet nga njëri-tjetri.
| Statusi | Lloji | Mesazhi | Kur |
|---|---|---|---|
401 | authentication_error | Missing authentication | Kërkesa nuk ka as header Authorization: Bearer as header x-api-key që fillon me sk-. Kjo është edhe përgjigjja për bearer me shkronja të vogla dhe për një vlerë Authorization pa Bearer. |
401 | authentication_error | Invalid API key | Çelësi nuk është çelësi aktual i një llogarie: është shkruar gabim, është shfuqizuar, ose është zëvendësuar nga një rrotullim. |
{
"error": {
"type": "authentication_error",
"message": "Invalid API key",
"code": "invalid_api_key",
"param": null
}
} {
"type": "error",
"error": {
"type": "authentication_error",
"message": "Invalid API key"
}
} - Në çdo rrugë përveç
/v1/messagesobjektierrorpërmban edhecode: "invalid_api_key", edhe për çelës që mungon, dheparam: null. - Çelësi kontrollohet para se të lexohet trupi. Një kërkesë pa çelës të vlefshëm merr
401edhe kur trupi i saj është i pavlefshëm ose shumë i madh. - Një vlerë
Authorization: Bearerqë nuk fillon mesk-nuk trajtohet si çelës API. Merr401me një mesazh që tokeni është i pavlefshëm ose ka skaduar.
Shfletuesit dhe CORS
- API u përgjigjet kërkesave cross-origin të shfletuesit vetëm për një listë fikse origjinash. JavaScript në një faqe të një origjine tjetër nuk mund t'i lexojë përgjigjet
/v1. - Thirreni API-n nga serveri juaj dhe lëreni faqen tuaj të komunikojë me serverin tuaj. Kjo e mban çelësin edhe jashtë kodit burimor të faqes.
- Kodi nga ana e serverit dhe mjetet e linjës së komandës nuk preken: këtë rregull e zbatojnë vetëm shfletuesit.
- Hyrja te shannon-ai.com nuk autentikon kërkesat
/v1. Cookies nuk lexohen aty; çelësi është kredenciali i vetëm. - Për një origjinë të lejuar, një shfletues mund të dërgojë
content-type,authorization,x-api-key,anthropic-version,anthropic-beta,openai-betadhex-request-id, dhe mund ta lexojë header-in e përgjigjesx-request-id.
Ruajtja e sigurt e çelësit
- Mbajeni çelësin në një server. Mos e vendosni në faqe uebi, aplikacione celulare ose repozitorë publikë: kushdo që e ka mund të shpenzojë gjithë bilancin tuaj.
- Ngarkojeni çelësin nga një variabël mjedisi ose nga një depo sekretesh në vend që ta shkruani në kod.
- Nëse çelësi mund të ketë rrjedhur, rrotulloni atë te Çelësat dhe përdorimi. Çelësi i vjetër ndalon së punuari menjëherë.
- Pas një rrjedhjeje, lexoni listën e kërkesave te Çelësat dhe përdorimi. Ajo tregon çdo kërkesë që çelësi ka bërë në 30 ditët e fundit.