Վավերացում
Յուրաքանչյուր հարցում ձեր API բանալին կրում է header-ում։ Հաշվի մեկ բանալին աշխատում է յուրաքանչյուր endpoint-ում և յուրաքանչյուր մոդելի վրա՝ header-ի երկու ձևերից որևէ մեկով։
Authorization: Bearer YOUR_API_KEY x-api-key: YOUR_API_KEY Ընդունվող header-ներ
Երկու header-ներն էլ կարդացվում են յուրաքանչյուր /v1 endpoint-ում՝ անկախ այն բանից, թե endpoint-ը որ ձևաչափով է խոսում։ Ուղարկեք դրանցից մեկը։
| Header | Նկարագրություն |
|---|---|
Authorization: Bearer <key> | Ստուգվում է առաջինը։ Գրեք Bearer մեծատառ B-ով և բանալուց առաջ մեկ բացատով։ OpenAI SDK-ներն ուղարկում են այս header-ը։ |
x-api-key: <key> | Կարդացվում է, երբ հարցումը չունի Authorization: Bearer header։ Anthropic SDK-ներն ուղարկում են այս header-ը։ |
OpenAI SDK-ով սահմանեք բանալին և base URL-ը. SDK-ն ուղարկում է 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-ով սահմանեք բանալին և base URL-ը առանց /v1-ի. SDK-ն ուղարկում է 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-ներին է բանալի պետք
| Էնդփոյնթ | Բանալի |
|---|---|
POST /v1/chat/completions | Պարտադիր է |
POST /v1/messages | Պարտադիր է |
POST /v1/responses | Պարտադիր է |
POST /v1/tokenize | Պարտադիր է |
POST /v1/messages/count_tokens | Պարտադիր է |
GET /v1/models | Պետք չէ |
Ձեր բանալին
- Բանալին
sk-է, որին հաջորդում են 43 նիշA–Z,a–z,0–9,-և_շարքից. ընդամենը 46 նիշ։ - Յուրաքանչյուր հաշիվ ունի ճիշտ մեկ բանալի։ Այն ստեղծվում է «Բանալիներ և օգտագործում» էջը առաջին անգամ բացելիս։
- Բանալին ձեր հաշվի համար տալիս է API-ի լրիվ հասանելիություն. յուրաքանչյուր endpoint, յուրաքանչյուր մոդել և ամբողջ մնացորդը։
- Բանալին վերջնաժամկետ չունի։ Այն աշխատում է, մինչև դուք փոխարինեք կամ չեղարկեք այն։
Փոխարինում և չեղարկում
Բանալին փոխարինում և չեղարկում եք «Բանալիներ և օգտագործում» էջում։ Բանալիներ և օգտագործում
| Գործողություն | Ինչ է տեղի ունենում |
|---|---|
| Փոխարինել | Տրվում է նոր բանալի, իսկ հինը դադարում է աշխատել։ Նոր բանալին աշխատում է անմիջապես։ |
| Չեղարկել | Բանալին դադարում է աշխատել, և նոր բանալի չի տրվում։ Աշխատող բանալի ստանալու համար փոխարինեք։ |
- Երկուսն էլ ուժի մեջ են մտնում անմիջապես. հին բանալիով հաջորդ հարցմանը կպատասխանվի
401-ով։ Համարեք, որ հին բանալին ամենուր մերժվում է ոչ ավելի, քան 60 վայրկյանից։ - Հաշվի բոլոր կլիենտները օգտագործում են նույն բանալին, ուստի փոխարինումը վերաբերում է բոլորին։ Փոխարինելուց անմիջապես հետո դրեք նոր բանալին ձեր կլիենտների մեջ։
- Մնացորդը, օգտագործումը և flood-պաշտպանությունը պատկանում են հաշվին, ոչ թե բանալուն։ Նոր բանալին շարունակում է նույն մնացորդով և ընթացիկ րոպեի հարցումների նույն հաշվարկով։
Սխալներ
Վավերացման յուրաքանչյուր ձախողում ունի 401 կարգավիճակ և authentication_error տեսակ։ Դեպքերը տարբերվում են հաղորդագրությամբ։
| Կարգավիճակ | Տեսակ | Հաղորդագրություն | Երբ |
|---|---|---|---|
401 | authentication_error | Missing authentication | Հարցումը չունի ո՛չ Authorization: Bearer header, ո՛չ էլ sk--ով սկսվող x-api-key header։ Սա նաև պատասխանն է փոքրատառ bearer-ի և Bearer-ից զուրկ Authorization արժեքի դեպքում։ |
401 | authentication_error | Invalid API key | Բանալին հաշվի ընթացիկ բանալին չէ. այն սխալ է մուտքագրված, չեղարկվել է կամ փոխարինվել է նորով։ |
{
"error": {
"type": "authentication_error",
"message": "Invalid API key",
"code": "invalid_api_key",
"param": null
}
} {
"type": "error",
"error": {
"type": "authentication_error",
"message": "Invalid API key"
}
} /v1/messages-ից բացի բոլոր ուղիների վրաerrorօբյեկտը պարունակում է նաևcode: "invalid_api_key"՝ բանալու բացակայության դեպքում ևս, ևparam: null։- Բանալին ստուգվում է մարմինը կարդալուց առաջ։ Վավեր բանալի չունեցող հարցումը ստանում է
401նույնիսկ այն դեպքում, երբ նրա մարմինը անվավեր է կամ չափազանց մեծ։ sk--ով չսկսվողAuthorization: Bearerարժեքը API բանալի չի համարվում։ Այն ստանում է401՝ հաղորդագրությամբ, որ թոքենն անվավեր է կամ ժամկետանց։
Բրաուզերներ և CORS
- API-ն պատասխանում է cross-origin բրաուզերային հարցումներին միայն origin-ների ֆիքսված ցանկի համար։ Այլ origin-ի էջի JavaScript-ը չի կարող կարդալ
/v1պատասխանները։ - Կանչեք API-ն ձեր սերվերից, իսկ ձեր էջը թող խոսի ձեր սերվերի հետ։ Դա նաև բանալին պահում է էջի սկզբնական կոդից դուրս։
- Սերվերային կոդը և հրամանի տողի գործիքները չեն ազդվում. այս կանոնը կիրառում են միայն բրաուզերները։
- shannon-ai.com-ում մուտքը չի վավերացնում
/v1հարցումները։ Cookie-ները այնտեղ չեն կարդացվում. բանալին միակ վավերագիրն է։ - Թույլատրված origin-ի համար բրաուզերը կարող է ուղարկել
content-type,authorization,x-api-key,anthropic-version,anthropic-beta,openai-betaևx-request-idheader-ները և կարող է կարդալ պատասխանիx-request-idheader-ը։
Ինչպես պահել բանալին անվտանգ
- Պահեք բանալին սերվերում։ Մի դրեք այն վեբ էջերում, բջջային հավելվածներում կամ հանրային պահոցներում (repository). այն ունեցողը կարող է ծախսել ձեր ամբողջ մնացորդը։
- Բեռնեք բանալին միջավայրի փոփոխականից կամ գաղտնիքների պահոցից՝ այն կոդի մեջ գրելու փոխարեն։
- Եթե բանալին կարող էր արտահոսել, փոխարինեք այն «Բանալիներ և օգտագործում» էջում։ Հին բանալին անմիջապես դադարում է աշխատել։
- Արտահոսքից հետո կարդացեք հարցումների ցանկը «Բանալիներ և օգտագործում» էջում։ Այն ցույց է տալիս բանալիով վերջին 30 օրվա ընթացքում կատարված բոլոր հարցումները։