အကြောင်းအရာသို့ ကျော်သွားရန်
အတည်ပြုမှု

အတည်ပြုမှု

Request တိုင်းသည် သင့် API key ကို header တစ်ခုထဲတွင် သယ်ဆောင်သည်။ အကောင့်တစ်ခုလျှင် key တစ်ခုက endpoint အားလုံးနှင့် မော်ဒယ်အားလုံးတွင် header ပုံစံ နှစ်မျိုးအနက် မည်သည့်ပုံစံနှင့်မဆို အလုပ်လုပ်သည်။

Header · OpenAI SDK များ
Authorization: Bearer YOUR_API_KEY
Header · Anthropic SDK များ
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)

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"))

မည်သည့် 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
  }
}
  • /v1/messages မှလွဲ၍ လမ်းကြောင်းတိုင်းတွင် error object တွင် 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 သည် /v1 reply များကို မဖတ်နိုင်ပါ။
  • API ကို သင့် server မှ ခေါ်ပြီး သင့်စာမျက်နှာကို သင့် server နှင့် ဆက်သွယ်စေပါ။ ထိုသို့ဖြင့် key ကို စာမျက်နှာ source ထဲမှ ဝေးဝေးထားနိုင်သည်။
  • Server-side code နှင့် command-line tool များ မထိခိုက်ပါ- ဤစည်းမျဉ်းကို browser များကသာ အသုံးပြုသည်။
  • shannon-ai.com တွင် ဝင်ရောက်ထားခြင်းသည် /v1 request များကို အတည်မပြုပါ။ ထိုနေရာတွင် cookie များကို မဖတ်ပါ။ key တစ်ခုတည်းသာ အထောက်အထားဖြစ်သည်။
  • ခွင့်ပြုထားသော origin အတွက် browser သည် content-type၊ authorization၊ x-api-key၊ anthropic-version၊ anthropic-beta၊ openai-beta နှင့် x-request-id တို့ကို ပို့နိုင်ပြီး reply header x-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 အားလုံးကို ပြသည်။