រំលងទៅមាតិកា
ការផ្ទៀងផ្ទាត់

ការផ្ទៀងផ្ទាត់

រាល់ 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 ទាំងពីរត្រូវបានអានលើគ្រប់ endpoint /v1 ទោះ endpoint និយាយទ្រង់ទ្រាយអ្វីក៏ដោយ។ សូមផ្ញើមួយក្នុងចំណោមពួកវា។

Header ការពិពណ៌នា
Authorization: Bearer <key> ពិនិត្យមុនគេ។ សរសេរ Bearer ដោយអក្សរ B ធំ និងដកឃ្លាមួយមុន key។ OpenAI SDK ផ្ញើ header នេះ។
x-api-key: <key> អាននៅពេល request មិនមាន header Authorization: Bearer។ 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 និង 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"))

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 គ្រប់ម៉ូដែល និងសមតុល្យទាំងមូល។
  • key មិនមានកាលបរិច្ឆេទផុតកំណត់ទេ។ វាដំណើរការរហូតដល់អ្នកប្តូរ ឬដកហូតវា។

ប្តូរ និងដកហូត

អ្នកប្តូរ និងដកហូត key នៅទំព័រ Keys & usage។ Keys & usage

សកម្មភាព អ្វីដែលកើតឡើង
ប្តូរ key ថ្មីត្រូវបានចេញឱ្យ ហើយ key ចាស់ឈប់ដំណើរការ។ key ថ្មីដំណើរការភ្លាមៗ។
ដកហូត key ឈប់ដំណើរការ ហើយមិនមាន key ថ្មីត្រូវបានចេញឱ្យទេ។ សូមប្តូរ key ដើម្បីទទួលបាន key ដែលដំណើរការម្តងទៀត។
  • ទាំងពីរមានប្រសិទ្ធភាពភ្លាមៗ៖ request បន្ទាប់ដែលប្រើ key ចាស់នឹងត្រូវឆ្លើយ 401។ សូមចាត់ទុក 60 វិនាទីជាកម្រិតកំណត់ខ្ពស់បំផុត មុនពេល key ចាស់ត្រូវបានបដិសេធគ្រប់ទីកន្លែង។
  • រាល់ client របស់គណនីប្រើ key ដូចគ្នា ដូច្នេះការប្តូរ key ប៉ះពាល់ដល់ពួកវាទាំងអស់។ សូមដាក់ key ថ្មីចូលក្នុង client របស់អ្នកភ្លាមៗក្រោយពេលប្តូរ។
  • សមតុល្យ ការប្រើប្រាស់ និង flood protection ជារបស់គណនី មិនមែនរបស់ key ទេ។ key ថ្មីបន្តជាមួយសមតុល្យដដែល និងចំនួន request ដដែលសម្រាប់នាទីបច្ចុប្បន្ន។

កំហុស

រាល់ការបរាជ័យនៃការផ្ទៀងផ្ទាត់មានស្ថានភាព 401 និងប្រភេទ authentication_error។ សារប្រាប់ពីករណីនីមួយៗដាច់ពីគ្នា។

ស្ថានភាព ប្រភេទ សារ ពេលណា
401 authentication_error Missing authentication request មិនមាន 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
  }
}
  • លើគ្រប់ path ក្រៅពី /v1/messages object error ក៏មាន code: "invalid_api_key" សម្រាប់ key ដែលបាត់ផងដែរ និង param: null។
  • key ត្រូវបានពិនិត្យមុនពេលអានខ្លឹមសារ។ request ដែលគ្មាន key ត្រឹមត្រូវទទួលបាន 401 ទោះបីខ្លឹមសារមិនត្រឹមត្រូវ ឬធំពេកក៏ដោយ។
  • តម្លៃ Authorization: Bearer ដែលមិនចាប់ផ្តើមដោយ sk- មិនត្រូវបានចាត់ទុកជា API key ទេ។ វាទទួលបាន 401 ជាមួយសារថា token មិនត្រឹមត្រូវ ឬផុតកំណត់។

Browser និង CORS

  • API ឆ្លើយតប request ពី browser ឆ្លង origin តែសម្រាប់បញ្ជី origin ថេរប៉ុណ្ណោះ។ JavaScript នៅលើទំព័រនៃ origin ផ្សេងមិនអាចអានចម្លើយ /v1 បានទេ។
  • ហៅ API ពី server របស់អ្នក ហើយឱ្យទំព័ររបស់អ្នកនិយាយជាមួយ server របស់អ្នក។ វាក៏រក្សា key ឱ្យនៅក្រៅប្រភពទំព័រផងដែរ។
  • កូដនៅខាង server និងឧបករណ៍ command-line មិនរងផលប៉ះពាល់ទេ៖ ច្បាប់នេះត្រូវបានអនុវត្តដោយ browser ប៉ុណ្ណោះ។
  • ការចូលគណនីនៅ shannon-ai.com មិនផ្ទៀងផ្ទាត់ request /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 ឬកន្លែងរក្សាទុកសម្ងាត់ ជំនួសឱ្យការសរសេរវាចូលក្នុងកូដ។
  • ប្រសិនបើ key អាចត្រូវបានលេចធ្លាយ សូមប្តូរវានៅ Keys & usage។ key ចាស់ឈប់ដំណើរការភ្លាមៗ។
  • បន្ទាប់ពីការលេចធ្លាយ សូមអានបញ្ជី request នៅ Keys & usage។ វាបង្ហាញរាល់ request ដែល key បានធ្វើក្នុងរយៈពេល 30 ថ្ងៃចុងក្រោយ។