ການຢືນຢັນ
ທຸກຄຳຮ້ອງຂໍຕ້ອງມີ API key ຂອງທ່ານໃນ header. key ດຽວຕໍ່ບັນຊີໃຊ້ໄດ້ກັບທຸກ endpoint ແລະ ທຸກ model, ໃນ header ສອງຮູບແບບໃດກໍໄດ້.
Header · SDK ຂອງ OpenAI
Authorization: Bearer YOUR_API_KEY Header · SDK ຂອງ Anthropic
x-api-key: YOUR_API_KEY Header ທີ່ຮັບ
ທັງສອງ header ຖືກອ່ານໃນທຸກ endpoint /v1, ບໍ່ວ່າ endpoint ນັ້ນຈະໃຊ້ຮູບແບບໃດ. ສົ່ງອັນໃດອັນໜຶ່ງ.
| Header | ຄຳອະທິບາຍ |
|---|---|
Authorization: Bearer <key> | ກວດກ່ອນ. ຂຽນ Bearer ດ້ວຍ B ຕົວໃຫຍ່ ແລະ ເວັ້ນວັກໜຶ່ງບ່ອນກ່ອນ key. SDK ຂອງ OpenAI ສົ່ງ header ນີ້. |
x-api-key: <key> | ອ່ານເມື່ອຄຳຮ້ອງຂໍບໍ່ມີ header Authorization: Bearer. SDK ຂອງ Anthropic ສົ່ງ header ນີ້. |
ກັບ SDK ຂອງ OpenAI, ຕັ້ງ key ແລະ 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, ຕັ້ງ key ແລະ 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 ໃດຕ້ອງໃຊ້ key
| Endpoint | Key |
|---|---|
POST /v1/chat/completions | ຈຳເປັນ |
POST /v1/messages | ຈຳເປັນ |
POST /v1/responses | ຈຳເປັນ |
POST /v1/tokenize | ຈຳເປັນ |
POST /v1/messages/count_tokens | ຈຳເປັນ |
GET /v1/models | ບໍ່ຈຳເປັນ |
key ຂອງທ່ານ
- key ແມ່ນ
sk-ຕາມດ້ວຍ 43 ຕົວອັກສອນຈາກA–Z,a–z,0–9,-ແລະ_: ລວມ 46 ຕົວອັກສອນ. - ທຸກບັນຊີມີ key ພຽງອັນດຽວ. ມັນຖືກສ້າງຕອນທີ່ທ່ານເປີດ Keys & usage ເປັນຄັ້ງທຳອິດ.
- key ໃຫ້ສິດເຂົ້າເຖິງ API ຢ່າງເຕັມສຳລັບບັນຊີຂອງທ່ານ: ທຸກ endpoint, ທຸກ model ແລະ ຍອດເງິນທັງໝົດ.
- key ບໍ່ມີວັນໝົດອາຍຸ. ມັນໃຊ້ໄດ້ຈົນກວ່າທ່ານຈະປ່ຽນ ຫຼື ຖອນມັນ.
ປ່ຽນ ແລະ ຖອນ
ທ່ານປ່ຽນ ແລະ ຖອນ key ໄດ້ໃນໜ້າ Keys & usage. Keys & usage
| ການກະທຳ | ສິ່ງທີ່ເກີດຂຶ້ນ |
|---|---|
| ປ່ຽນ | ອອກ key ໃໝ່ ແລະ key ເກົ່າຢຸດໃຊ້ງານ. key ໃໝ່ໃຊ້ງານໄດ້ທັນທີ. |
| ຖອນ | key ຢຸດໃຊ້ງານ ແລະ ບໍ່ມີການອອກ key ໃໝ່. ປ່ຽນ key ເພື່ອໃຫ້ໄດ້ key ທີ່ໃຊ້ງານໄດ້ອີກຄັ້ງ. |
- ທັງສອງມີຜົນທັນທີ: ຄຳຮ້ອງຂໍຖັດໄປທີ່ໃຊ້ key ເກົ່າຈະຖືກຕອບດ້ວຍ
401. ໃຫ້ຖື 60 ວິນາທີເປັນຂີດສູງສຸດກ່ອນທີ່ key ເກົ່າຈະຖືກປະຕິເສດທຸກບ່ອນ. - ທຸກ client ຂອງບັນຊີໃຊ້ key ດຽວກັນ, ດັ່ງນັ້ນການປ່ຽນ key ມີຜົນກັບທຸກຄົນ. ໃສ່ key ໃໝ່ໃນ client ຂອງທ່ານທັນທີຫຼັງຈາກປ່ຽນ.
- ຍອດເງິນ, ການນຳໃຊ້ ແລະ flood protection ເປັນຂອງບັນຊີ, ບໍ່ແມ່ນຂອງ key. key ໃໝ່ຈະສືບຕໍ່ດ້ວຍຍອດເງິນເດີມ ແລະ ຈຳນວນຄຳຮ້ອງຂໍເດີມຂອງນາທີປັດຈຸບັນ.
ຂໍ້ຜິດພາດ
ທຸກຄວາມລົ້ມເຫຼວຂອງການຢືນຢັນມີສະຖານະ 401 ແລະ ປະເພດ authentication_error. ຂໍ້ຄວາມຈະບອກວ່າເປັນກໍລະນີໃດ.
| ສະຖານະ | ປະເພດ | ຂໍ້ຄວາມ | ເມື່ອໃດ |
|---|---|---|---|
401 | authentication_error | Missing authentication | ຄຳຮ້ອງຂໍບໍ່ມີທັງ header Authorization: Bearer ແລະ header x-api-key ທີ່ຂຶ້ນຕົ້ນດ້ວຍ sk-. ນີ້ກໍເປັນຄຳຕອບສຳລັບ bearer ຕົວພິມນ້ອຍ ແລະ ຄ່າ Authorization ທີ່ບໍ່ມີ Bearer. |
401 | authentication_error | Invalid API key | key ບໍ່ແມ່ນ key ປັດຈຸບັນຂອງບັນຊີໃດ: ພິມຜິດ, ຖືກຖອນແລ້ວ, ຫຼື ຖືກແທນທີ່ດ້ວຍການປ່ຽນ 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"
}
} - ໃນທຸກ path ຍົກເວັ້ນ
/v1/messagesobjecterrorຍັງມີcode: "invalid_api_key"ເຖິງແມ່ນບໍ່ມີ key ກໍຕາມ, ແລະparam: null. - key ຖືກກວດກ່ອນອ່ານ body. ຄຳຮ້ອງຂໍທີ່ບໍ່ມີ key ທີ່ຖືກຕ້ອງຈະໄດ້
401ເຖິງ body ຈະບໍ່ຖືກຕ້ອງ ຫຼື ໃຫຍ່ເກີນໄປກໍຕາມ. - ຄ່າ
Authorization: Bearerທີ່ບໍ່ຂຶ້ນຕົ້ນດ້ວຍsk-ຈະບໍ່ຖືກຖືວ່າເປັນ API key. ຈະໄດ້401ພ້ອມຂໍ້ຄວາມວ່າ token ບໍ່ຖືກຕ້ອງ ຫຼື ໝົດອາຍຸ.
Browser ແລະ CORS
- API ຕອບຄຳຮ້ອງຂໍ browser ຂ້າມ origin ສະເພາະກັບລາຍການ origin ທີ່ກຳນົດໄວ້. JavaScript ຢູ່ໜ້າຂອງ origin ອື່ນບໍ່ສາມາດອ່ານຄຳຕອບ
/v1ໄດ້. - ເອີ້ນ API ຈາກ server ຂອງທ່ານ ແລະ ໃຫ້ໜ້າເວັບຂອງທ່ານຕິດຕໍ່ກັບ server ຂອງທ່ານ. ວິທີນີ້ຍັງຊ່ວຍບໍ່ໃຫ້ key ປາກົດໃນ source ຂອງໜ້າເວັບ.
- ໂຄ້ດຝັ່ງ server ແລະ ເຄື່ອງມື command-line ບໍ່ໄດ້ຮັບຜົນກະທົບ: ກົດນີ້ໃຊ້ໂດຍ browser ເທົ່ານັ້ນ.
- ການເຂົ້າສູ່ລະບົບຢູ່ shannon-ai.com ບໍ່ໄດ້ຢືນຢັນຄຳຮ້ອງຂໍ
/v1. ບໍ່ອ່ານ cookie ທີ່ນັ້ນ; key ແມ່ນຂໍ້ມູນຢືນຢັນດຽວ. - ສຳລັບ origin ທີ່ອະນຸຍາດ, browser ສົ່ງ
content-type,authorization,x-api-key,anthropic-version,anthropic-beta,openai-betaແລະx-request-idໄດ້, ແລະ ອ່ານ header ຂອງຄຳຕອບx-request-idໄດ້.
ການຮັກສາ key ໃຫ້ປອດໄພ
- ເກັບ key ໄວ້ໃນ server. ຢ່າໃສ່ມັນໃນໜ້າເວັບ, ແອັບມືຖື ຫຼື repository ສາທາລະນະ: ຜູ້ທີ່ຖືມັນສາມາດໃຊ້ຍອດເງິນທັງໝົດຂອງທ່ານໄດ້.
- ໂຫຼດ key ຈາກ environment variable ຫຼື secret store ແທນການຂຽນມັນໃສ່ໃນໂຄ້ດ.
- ຖ້າ key ອາດຮົ່ວ, ໃຫ້ປ່ຽນມັນໃນ Keys & usage. key ເກົ່າຈະຢຸດໃຊ້ງານທັນທີ.
- ຫຼັງຈາກ key ຮົ່ວ, ໃຫ້ອ່ານລາຍການຄຳຮ້ອງຂໍໃນ Keys & usage. ມັນສະແດງທຸກຄຳຮ້ອງຂໍທີ່ key ໄດ້ສົ່ງໃນ 30 ວັນທີ່ຜ່ານມາ.