Аутентификация
Ар бир сурам API ачкычыңызды башта алып жүрөт. Аккаунтка бир ачкыч ар бир endpoint'те жана ар бир модельде, эки баш формасынын каалаганында иштейт.
Баш · OpenAI SDK'лар
Authorization: Bearer YOUR_API_KEY Баш · Anthropic SDK'лар
x-api-key: YOUR_API_KEY Кабыл алынган баштар
Эки баш тең ар бир /v1 endpoint'те окулат, endpoint кайсы форматта сүйлөбөсүн. Бирин жөнөтүңүз.
| Баш | Сүрөттөмө |
|---|---|
Authorization: Bearer <key> | Биринчи текшерилет. Bearer сөзүн чоң B менен жана ачкычтын алдында бир боштук менен жазыңыз. OpenAI SDK'лар бул башты жөнөтөт. |
x-api-key: <key> | Сурамда Authorization: Bearer башы жок болгондо окулат. Anthropic SDK'лар бул башты жөнөтөт. |
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 менен ачкычты жана /v1'сиз base URL'ди коюңуз; 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-жана андан кийинA–Z,a–z,0–9,-жана_белгилеринен турган 43 белги: жалпысынан 46 белги. - Ар бир аккаунттун так бир ачкычы бар. Ал «Ачкычтар жана колдонуу» бетин биринчи ирет ачканда түзүлөт.
- Ачкыч аккаунтуңуз үчүн API'ге толук жетүү берет: ар бир endpoint, ар бир модель жана бүт баланс.
- Ачкычтын мөөнөтү жок. Аны алмаштырганга же жокко чыгарганга чейин иштейт.
Алмаштыруу жана жокко чыгаруу
Ачкычты «Ачкычтар жана колдонуу» бетинде алмаштырасыз жана жокко чыгарасыз. Ачкычтар жана колдонуу
| Аракет | Эмне болот |
|---|---|
| Алмаштыруу | Жаңы ачкыч берилет, эски ачкыч иштебей калат. Жаңы ачкыч дароо иштейт. |
| Жокко чыгаруу | Ачкыч иштебей калат жана жаңы ачкыч берилбейт. Иштеген ачкыч алуу үчүн алмаштырыңыз. |
- Экөө тең дароо күчүнө кирет: эски ачкыч менен кийинки сурамга
401жооп берилет. Эски ачкыч бардык жерде четке кагылганга чейинки жогорку чек катары 60 секундду эсептеңиз. - Аккаунттун бардык клиенттери бир эле ачкычты колдонот, андыктан алмаштыруу баарына тиет. Алмаштыргандан кийин жаңы ачкычты клиенттериңизге дароо коюңуз.
- Баланс, колдонуу жана flood protection ачкычка эмес, аккаунтка таандык. Жаңы ачкыч ошол эле баланс жана учурдагы мүнөттүн ошол эле сурам саны менен уланат.
Каталар
Аутентификациянын ар бир катасынын статусу 401 жана түрү authentication_error. Учурларды билдирүү айырмалайт.
| Статус | Түрү | Билдирүү | Качан |
|---|---|---|---|
401 | authentication_error | Missing authentication | Сурамда Authorization: Bearer башы да, sk- менен башталган x-api-key башы да жок. Бул кичине тамгадагы 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-idбаштарын жөнөтө алат жанаx-request-idжооп башын окуй алат.
Ачкычты коопсуз сактоо
- Ачкычты серверде сактаңыз. Аны веб-беттерге, мобилдик колдонмолорго же ачык репозиторийлерге салбаңыз: ким колунда кармаса, бүт балансыңызды сарптай алат.
- Ачкычты кодго жазбай, чөйрө өзгөрмөсүнөн же сырлар сактагычынан жүктөңүз.
- Ачкыч чыгып кетиши мүмкүн болсо, аны «Ачкычтар жана колдонуу» бетинде алмаштырыңыз. Эски ачкыч дароо иштебей калат.
- Ачкыч жоголгондон кийин «Ачкычтар жана колдонуу» бетиндеги сурамдар тизмесин окуңуз. Ал ачкыч акыркы 30 күндө жасаган ар бир сурамды көрсөтөт.