Баталгаажуулалт
Хүсэлт бүр API түлхүүрийг header-т агуулна. Бүртгэл бүрийн нэг түлхүүр бүх endpoint, бүх загвар дээр ажиллах бөгөөд header-ийн хоёр хэлбэрийн аль алинд нь болно.
Header · OpenAI SDK-ууд
Authorization: Bearer YOUR_API_KEY Header · Anthropic SDK-ууд
x-api-key: YOUR_API_KEY Хүлээн авдаг header-ууд
Endpoint ямар форматаар ажиллаж байгаагаас үл хамааран хоёр header-ийг бүх /v1 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-тай бол түлхүүр ба /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 түлхүүр шаардах вэ
| 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 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-ийг агуулна.- Түлхүүрийг body уншихаас өмнө шалгана. Хүчинтэй түлхүүргүй хүсэлт body нь буруу эсвэл хэт том байсан ч
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-idheader-ийг унших боломжтой.
Түлхүүрийг аюулгүй хадгалах
- Түлхүүрийг сервер дээр хадгална уу. Вэб хуудас, мобайл апп эсвэл нийтийн repository-д бүү оруул: түлхүүртэй хүн таны бүх үлдэгдлийг зарцуулж чадна.
- Түлхүүрийг кодонд бичихийн оронд орчны хувьсагч эсвэл нууцын сангаас ачаална уу.
- Түлхүүр алдагдсан байж магадгүй бол Түлхүүр ба хэрэглээ дээр солино уу. Хуучин түлхүүр тэр даруй ажиллахаа болино.
- Алдагдсаны дараа Түлхүүр ба хэрэглээ дээрх хүсэлтийн жагсаалтыг уншина уу. Түлхүүрээр сүүлийн 30 хоногт хийсэн бүх хүсэлтийг харуулна.