Аутентификатсия
Ҳар дархост калиди API-и шуморо дар сарлавҳа мебарад. Як калид барои ҳар аккаунт дар ҳар endpoint ва ҳар модел, дар яке аз ду шакли сарлавҳа кор мекунад.
Сарлавҳа · SDK-ҳои OpenAI
Authorization: Bearer YOUR_API_KEY Сарлавҳа · SDK-ҳои Anthropic
x-api-key: YOUR_API_KEY Сарлавҳаҳои қабулшаванда
Ҳарду сарлавҳа дар ҳар endpoint-и /v1 хонда мешаванд, endpoint бо кадом формат кор карданаш фарқ надорад. Яке аз онҳоро фиристед.
| Сарлавҳа | Тавсиф |
|---|---|
Authorization: Bearer <key> | Аввал санҷида мешавад. Bearer-ро бо B-и калон ва як фосила пеш аз калид нависед. SDK-ҳои OpenAI ин сарлавҳаро мефиристанд. |
x-api-key: <key> | Вақте хонда мешавад, ки дархост сарлавҳаи Authorization: Bearer надорад. SDK-ҳои Anthropic ин сарлавҳаро мефиристанд. |
Бо SDK-и OpenAI калид ва 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!"}
]
}' Бо SDK-и Anthropic калид ва 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 сонияро ҳадди боло ҳисоб кунед, то калиди кӯҳна дар ҳама ҷо рад карда шавад. - Ҳар клиенти аккаунт ҳамон як калидро истифода мебарад, бинобар ин иваз кардан ба ҳамаи онҳо мерасад. Калиди навро пас аз иваз кардан фавран ба клиентҳои худ гузоред.
- Баланс, истифода ва ҳифз аз дархостҳои аз ҳад зиёд ба аккаунт тааллуқ доранд, на ба калид. Калиди нав бо ҳамон баланс ва ҳамон шумораи дархостҳо барои дақиқаи ҷорӣ идома меёбад.
Хатогиҳо
Ҳар нокомии аутентификатсия ҳолати 401 ва навъи authentication_error дорад. Паём ҳолатҳоро аз ҳам фарқ мекунад.
| Ҳолат | Навъ | Паём | Кай |
|---|---|---|---|
401 | authentication_error | Missing authentication | Дархост на сарлавҳаи Authorization: Bearer дорад ва на сарлавҳаи x-api-key, ки бо sk- оғоз мешавад. Ин ҳамчунин ҷавоб ба bearer бо ҳарфҳои хурд ва ба қимати Authorization бе Bearer аст. |
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мегирад, ҳатто агар баданаш нодуруст ё аз ҳад калон бошад. - Қимати
Authorization: Bearer, ки боsk-оғоз намешавад, ҳамчун калиди API баррасӣ намешавад. Он401бо паёме мегирад, ки токен нодуруст ё мӯҳлаташ гузаштааст.
Браузерҳо ва CORS
- API ба дархостҳои браузерии cross-origin танҳо барои рӯйхати собити origin-ҳо ҷавоб медиҳад. JavaScript дар саҳифаи origin-и дигар ҷавобҳои
/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 рӯзи охир анҷом додааст, нишон медиҳад.