အတည်ပြုမှု
Request တိုင်းသည် သင့် API key ကို header တစ်ခုထဲတွင် သယ်ဆောင်သည်။ အကောင့်တစ်ခုလျှင် key တစ်ခုက endpoint အားလုံးနှင့် မော်ဒယ်အားလုံးတွင် header ပုံစံ နှစ်မျိုးအနက် မည်သည့်ပုံစံနှင့်မဆို အလုပ်လုပ်သည်။
Authorization: Bearer YOUR_API_KEY x-api-key: YOUR_API_KEY လက်ခံသော header များ
Header နှစ်ခုလုံးကို /v1 endpoint တိုင်းတွင် ဖတ်သည်၊ endpoint က မည်သည့် format ကို သုံးသည်ဖြစ်စေ။ တစ်ခုကို ပို့ပါ။
| Header | ဖော်ပြချက် |
|---|---|
Authorization: Bearer <key> | ပထမဆုံး စစ်ဆေးသည်။ Bearer ကို စာလုံးကြီး B ဖြင့်ရေးပြီး key မတိုင်မီ space တစ်ခုထားပါ။ OpenAI SDK များက ဤ header ကို ပို့သည်။ |
x-api-key: <key> | Request တွင် Authorization: Bearer header မပါလျှင် ဖတ်သည်။ Anthropic SDK များက ဤ header ကို ပို့သည်။ |
OpenAI SDK ဖြင့် 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!"}
]
}' Anthropic SDK ဖြင့် key နှင့် /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 များတွင် 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-နောက်တွင်A–Z၊a–z၊0–9၊-နှင့်_မှ စာလုံး 43 လုံး လိုက်သည်- စုစုပေါင်း စာလုံး 46 လုံး။ - အကောင့်တိုင်းတွင် key တစ်ခုတည်း ရှိသည်။ Keys & usage ကို ပထမဆုံးအကြိမ် ဖွင့်သည့်အခါ ဖန်တီးပေးသည်။
- Key သည် သင့်အကောင့်အတွက် API ကို အပြည့်အဝ အသုံးပြုခွင့်ပေးသည်- endpoint အားလုံး၊ မော်ဒယ်အားလုံးနှင့် လက်ကျန်ငွေ တစ်ခုလုံး။
- Key တွင် သက်တမ်းကုန်ဆုံးရက် မရှိပါ။ သင်က လဲလှယ်ခြင်း သို့မဟုတ် ပယ်ဖျက်သည်အထိ အလုပ်လုပ်သည်။
လဲလှယ်ခြင်းနှင့် ပယ်ဖျက်ခြင်း
Key ကို Keys & usage စာမျက်နှာတွင် လဲလှယ်ခြင်းနှင့် ပယ်ဖျက်ခြင်း ပြုလုပ်ပါ။ Keys & usage
| လုပ်ဆောင်ချက် | ဖြစ်ပျက်မှု |
|---|---|
| လဲလှယ်ခြင်း | Key အသစ်ထုတ်ပေးပြီး key အဟောင်း အလုပ်မလုပ်တော့ပါ။ Key အသစ်သည် ချက်ချင်း အလုပ်လုပ်သည်။ |
| ပယ်ဖျက်ခြင်း | Key သည် အလုပ်မလုပ်တော့ဘဲ key အသစ် မထုတ်ပေးပါ။ အလုပ်လုပ်သော key ပြန်ရရန် လဲလှယ်ပါ။ |
- နှစ်မျိုးလုံး ချက်ချင်း အကျိုးသက်ရောက်သည်- key အဟောင်းဖြင့် နောက်တစ်ကြိမ် request လုပ်လျှင်
401ဖြင့် ဖြေကြားသည်။ Key အဟောင်းကို နေရာတိုင်းတွင် ငြင်းပယ်ပြီးသည်အထိ အမြင့်ဆုံး 60 စက္ကန့်အဖြစ် သတ်မှတ်ထားပါ။ - အကောင့်၏ client တိုင်းသည် key တူတူကို သုံးသဖြင့် လဲလှယ်ခြင်းသည် ၎င်းတို့အားလုံးကို ထိခိုက်သည်။ လဲလှယ်ပြီးသည်နှင့် key အသစ်ကို သင့် client များထဲသို့ ထည့်ပါ။
- လက်ကျန်ငွေ၊ အသုံးပြုမှုနှင့် flood protection တို့သည် key နှင့် မဆိုင်ဘဲ အကောင့်နှင့် ဆိုင်သည်။ Key အသစ်သည် လက်ကျန်တူညီပြီး လက်ရှိမိနစ်အတွက် request အရေအတွက် တူညီစွာ ဆက်လက်ရှိနေသည်။
Errors
Authentication မအောင်မြင်မှုတိုင်းတွင် status 401 နှင့် type authentication_error ရှိသည်။ အခြေအနေများကို message ကကွဲပြားစေသည်။
| Status | Type | Message | ဘယ်အချိန် |
|---|---|---|---|
401 | authentication_error | Missing authentication | Request တွင် Authorization: Bearer header သို့မဟုတ် sk- ဖြင့် စသော x-api-key header မပါပါ။ စာလုံးသေးဖြင့် bearer နှင့် Bearer မပါသော Authorization တန်ဖိုးအတွက်လည်း ဤ reply ကို ပြန်ပေးသည်။ |
401 | authentication_error | Invalid API 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"
}
} /v1/messagesမှလွဲ၍ လမ်းကြောင်းတိုင်းတွင်errorobject တွင် key မပါခြင်းအတွက်ပါcode: "invalid_api_key"နှင့်param: nullတို့ပါဝင်သည်။- Body မဖတ်မီ key ကို စစ်ဆေးသည်။ ခိုင်လုံသော key မပါသော request သည် body မမှန်ကန်သည့်တိုင် သို့မဟုတ် ကြီးလွန်းသည့်တိုင်
401ရသည်။ sk-ဖြင့် မစသောAuthorization: Bearerတန်ဖိုးကို API key အဖြစ် မသတ်မှတ်ပါ။ Token မမှန်ကန်ကြောင်း သို့မဟုတ် သက်တမ်းကုန်ကြောင်း message ပါသော401ရသည်။
Browser များနှင့် CORS
- API သည် cross-origin browser request များကို origin အသေအချာစာရင်းတစ်ခုအတွက်သာ ဖြေကြားသည်။ အခြား origin ၏ စာမျက်နှာပေါ်ရှိ JavaScript သည်
/v1reply များကို မဖတ်နိုင်ပါ။ - API ကို သင့် server မှ ခေါ်ပြီး သင့်စာမျက်နှာကို သင့် server နှင့် ဆက်သွယ်စေပါ။ ထိုသို့ဖြင့် key ကို စာမျက်နှာ source ထဲမှ ဝေးဝေးထားနိုင်သည်။
- Server-side code နှင့် command-line tool များ မထိခိုက်ပါ- ဤစည်းမျဉ်းကို browser များကသာ အသုံးပြုသည်။
- shannon-ai.com တွင် ဝင်ရောက်ထားခြင်းသည်
/v1request များကို အတည်မပြုပါ။ ထိုနေရာတွင် cookie များကို မဖတ်ပါ။ key တစ်ခုတည်းသာ အထောက်အထားဖြစ်သည်။ - ခွင့်ပြုထားသော origin အတွက် browser သည်
content-type၊authorization၊x-api-key၊anthropic-version၊anthropic-beta၊openai-betaနှင့်x-request-idတို့ကို ပို့နိုင်ပြီး reply headerx-request-idကို ဖတ်နိုင်သည်။
Key ကို လုံခြုံစွာ ထားခြင်း
- Key ကို server ပေါ်တွင်သာ ထားပါ။ web page၊ mobile app သို့မဟုတ် public repository များထဲသို့ မထည့်ပါနှင့်- ၎င်းကို ကိုင်ထားသူသည် သင့်လက်ကျန်ငွေ တစ်ခုလုံးကို သုံးနိုင်သည်။
- Key ကို code ထဲတွင် တိုက်ရိုက်ရေးမည့်အစား environment variable သို့မဟုတ် လျှို့ဝှက်သိမ်းဆည်းရာနေရာ (secret store) မှ load လုပ်ပါ။
- Key ပေါက်ကြားနိုင်ခြေရှိလျှင် Keys & usage တွင် လဲလှယ်ပါ။ Key အဟောင်းသည် ချက်ချင်း အလုပ်မလုပ်တော့ပါ။
- Key ပေါက်ကြားပြီးနောက် Keys & usage ရှိ request စာရင်းကို ဖတ်ပါ။ လွန်ခဲ့သော 30 ရက်အတွင်း key ဖြင့် ပြုလုပ်ခဲ့သော request အားလုံးကို ပြသည်။