Uthibitishaji
Kila ombi hubeba API key yako kwenye header. Key moja kwa akaunti hufanya kazi kwenye kila endpoint na kila model, kwa mojawapo ya maumbo mawili ya header.
Header · SDK za OpenAI
Authorization: Bearer YOUR_API_KEY Header · SDK za Anthropic
x-api-key: YOUR_API_KEY Headers zinazokubaliwa
Headers zote mbili husomwa kwenye kila endpoint ya /v1, kwa umbizo lolote endpoint inalotumia. Tuma moja kati yake.
| Header | Maelezo |
|---|---|
Authorization: Bearer <key> | Inakaguliwa kwanza. Andika Bearer kwa B kubwa na nafasi moja kabla ya key. SDK za OpenAI hutuma header hii. |
x-api-key: <key> | Husomwa wakati ombi halina header ya Authorization: Bearer. SDK za Anthropic hutuma header hii. |
Ukiwa na SDK ya OpenAI, weka key na base URL; SDK hutuma 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!"}
]
}' Ukiwa na SDK ya Anthropic, weka key na base URL bila /v1; SDK hutuma 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!"}
]
}' Endpoint zipi zinahitaji key
| Endpoint | Key |
|---|---|
POST /v1/chat/completions | Inahitajika |
POST /v1/messages | Inahitajika |
POST /v1/responses | Inahitajika |
POST /v1/tokenize | Inahitajika |
POST /v1/messages/count_tokens | Inahitajika |
GET /v1/models | Haihitajiki |
Key yako
- Key ni
sk-ikifuatiwa na herufi 43 kutokaA–Z,a–z,0–9,-na_: herufi 46 kwa jumla. - Kila akaunti ina key moja tu. Inaundwa mara ya kwanza unapofungua Keys na matumizi.
- Key inatoa ufikiaji kamili wa API kwa akaunti yako: kila endpoint, kila model na salio lote.
- Key haina tarehe ya kuisha. Inafanya kazi hadi uibadilishe au uibatilishe.
Kubadilisha na kubatilisha
Unabadilisha na kubatilisha key kwenye ukurasa wa Keys na matumizi. Keys na matumizi
| Kitendo | Nini hutokea |
|---|---|
| Badilisha | Key mpya inatolewa na key ya zamani inaacha kufanya kazi. Key mpya inafanya kazi mara moja. |
| Batilisha | Key inaacha kufanya kazi na hakuna key mpya inayotolewa. Badilisha ili kupata key inayofanya kazi tena. |
- Vyote viwili vinaanza kutumika mara moja: ombi linalofuata lenye key ya zamani hujibiwa kwa
401. Chukulia sekunde 60 kama kikomo cha juu kabla key ya zamani kukataliwa kila mahali. - Kila client ya akaunti hutumia key ile ile, kwa hiyo kubadilisha kunazifikia zote. Weka key mpya kwenye client zako mara baada ya kubadilisha.
- Salio, matumizi na flood protection ni vya akaunti, si vya key. Key mpya inaendelea na salio lile lile na hesabu ile ile ya maombi kwa dakika ya sasa.
Makosa
Kila kushindwa kwa uthibitishaji kuna hali 401 na aina authentication_error. Ujumbe unatofautisha visa.
| Hali | Aina | Ujumbe | Lini |
|---|---|---|---|
401 | authentication_error | Missing authentication | Ombi halina header ya Authorization: Bearer wala header ya x-api-key inayoanza na sk-. Hili pia ndilo jibu kwa bearer kwa herufi ndogo na kwa thamani ya Authorization bila Bearer. |
401 | authentication_error | Invalid API key | Key si key ya sasa ya akaunti: imeandikwa vibaya, imebatilishwa, au imebadilishwa na key mpya. |
{
"error": {
"type": "authentication_error",
"message": "Invalid API key",
"code": "invalid_api_key",
"param": null
}
} {
"type": "error",
"error": {
"type": "authentication_error",
"message": "Invalid API key"
}
} - Kwenye kila path isipokuwa
/v1/messageskitu chaerrorpia kinacode: "invalid_api_key", hata kwa key iliyokosekana, naparam: null. - Key hukaguliwa kabla mwili haujasomwa. Ombi bila key halali hupata
401hata mwili wake ukiwa batili au mkubwa mno. - Thamani ya
Authorization: Bearerisiyoanza nask-haichukuliwi kama API key. Inapata401na ujumbe kwamba token ni batili au imekwisha muda.
Vivinjari na CORS
- API hujibu maombi ya kivinjari ya cross-origin kwa orodha maalum tu ya origins. JavaScript kwenye ukurasa wa origin nyingine haiwezi kusoma majibu ya
/v1. - Ita API kutoka seva yako na uache ukurasa wako uongee na seva yako. Hilo pia linaweka key nje ya chanzo cha ukurasa.
- Code ya upande wa seva na zana za command-line haziathiriwi: sheria hii inatumiwa na vivinjari pekee.
- Kuingia kwenye shannon-ai.com hakuthibitishi maombi ya
/v1. Cookies hazisomwi huko; key ndiyo credential pekee. - Kwa origin iliyoruhusiwa, kivinjari kinaweza kutuma
content-type,authorization,x-api-key,anthropic-version,anthropic-beta,openai-betanax-request-id, na kinaweza kusoma header ya jibux-request-id.
Kuweka key salama
- Weka key kwenye seva. Usiiweke kwenye kurasa za wavuti, programu za simu au repositories za umma: yeyote anayeishikilia anaweza kutumia salio lako lote.
- Pakia key kutoka kwenye environment variable au secret store badala ya kuiandika kwenye code.
- Ikiwa key inaweza kuwa imevuja, ibadilishe kwenye Keys na matumizi. Key ya zamani inaacha kufanya kazi mara moja.
- Baada ya uvujaji, soma orodha ya maombi kwenye Keys na matumizi. Inaonyesha kila ombi ambalo key ilifanya katika siku 30 zilizopita.