Developer guide
ការផ្ទៀងផ្ទាត់ដោយប្រើ API key
បឋមកថាដែលត្រូវដាក់ API key និង base URL ដែលត្រូវកំណត់ក្នុង SDK
CLEVI Gateway ផ្ទៀងផ្ទាត់ផ្លូវដែលឆបគ្នាជាមួយ OpenAI និងផ្លូវដែលឆបគ្នាជាមួយ Anthropic ដោយប្រើ API key តែមួយ។
តម្លៃដែលត្រូវកំណត់នៅម៉ាស៊ីនភ្ញៀវមានពីរ គឺបឋមកថាផ្ទៀងផ្ទាត់ដែលផ្ទុក key និង base URL របស់ SDK ហើយទម្រង់បឋមកថា និង base URL ដែលអនុញ្ញាតខុសគ្នាតាមស្តង់ដារនីមួយៗ។
បន្ទាប់ពីបញ្ចប់ការកំណត់ អ្នកអាចពិនិត្យការផ្ទៀងផ្ទាត់បានភ្លាមៗ ដោយទាញយកបញ្ជីម៉ូដែល។
ប្រសិនបើការផ្ទៀងផ្ទាត់បរាជ័យ នឹងត្រឡប់ 401 ហើយប្រសិនបើការផ្ទៀងផ្ទាត់ជោគជ័យ ប៉ុន្តែមិនបំពេញលក្ខខណ្ឌសិទ្ធិ ឬកម្រិតប្រើប្រាស់ នឹងត្រឡប់ 403។
សូមចេញ API key ពីទំព័រ API key ក្នុងកុងសូល។ អ្នកក៏អាចគ្រប់គ្រងការលុបចោល key និងវិសាលភាពនៃការប្រើប្រាស់របស់វាពីទំព័រដដែលបាន។
បឋមកថាផ្ទៀងផ្ទាត់
ស្តង់ដារទាំងពីរដាក់ API key ក្នុងបឋមកថាសំណើមួយ។ ប្រើមួយក្នុងចំណោមបឋមកថា X-API-Key និង Authorization ហើយទម្រង់ដែលអនុញ្ញាតខុសគ្នាតាមស្តង់ដារ។
| បឋមកថា | ឆបគ្នាជាមួយ OpenAI | ឆបគ្នាជាមួយ Anthropic |
|---|---|---|
| X-API-Key: <키> | អាចប្រើបាន | អាចប្រើបាន |
| Authorization: Bearer <키> | អាចប្រើបាន | អាចប្រើបាន |
| Authorization: <키> (ដោយគ្មាន Bearer) | បដិសេធ | អាចប្រើបាន |
នៅពេលប្រើបឋមកថា Authorization ក្នុងផ្លូវដែលឆបគ្នាជាមួយ OpenAI ត្រូវមានបុព្វបទ Bearer។ ប្រសិនបើផ្ញើតែ key ដោយគ្មានបុព្វបទនេះ Gateway នឹងបដិសេធសំណើ។
ឈ្មោះបឋមកថាមិនប្រកាន់អក្សរធំតូចទេ ដូច្នេះបឋមកថា x-api-key ដែល Anthropic SDK ផ្ញើក៏ដំណើរការដូចដើមដែរ។ ប្រសិនបើកំណត់បឋមកថាទាំងពីរ តម្លៃ X-API-Key នឹងត្រូវបានអនុវត្តជាអាទិភាព។
base URL
SDK ដែលអ្នកបានប្រើពីមុនអាចប្រើបានដដែល ដោយគ្រាន់តែប្តូរ base URL ទៅអាសយដ្ឋានខាងក្រោម។ អាសយដ្ឋានទាំងពីរខុសគ្នាត្រង់ថាតើរួមបញ្ចូល /v1 ឬអត់ ដូច្នេះសូមកំណត់អាសយដ្ឋានឱ្យដូចដែលបានបង្ហាញ ស្របតាមស្តង់ដារ។
| ស្តង់ដារ | base URL | ច្បាប់ផ្លូវ |
|---|---|---|
| ឆបគ្នាជាមួយ OpenAI | https://platform.clevi.net/api/v2/aiservice/openai/v1 | រួមបញ្ចូលរហូតដល់ /v1 ក្នុង base URL។ |
| ឆបគ្នាជាមួយ Anthropic | https://platform.clevi.net/api/v2/aiservice/anthropic | Anthropic SDK បន្ថែម /v1 ដោយផ្ទាល់ទៅក្នុងផ្លូវសំណើ ដូច្នេះវាបញ្ចប់មុន /v1។ |
ពិនិត្យការផ្ទៀងផ្ទាត់
បន្ទាប់ពីកំណត់ API key និង base URL រួច សូមទាញយកបញ្ជីម៉ូដែល ដើម្បីពិនិត្យមើលថាតើការផ្ទៀងផ្ទាត់បានជោគជ័យឬអត់។ ឧទាហរណ៍ខាងក្រោមបង្ហាញពីការដំណើរការការទាញយកដូចគ្នា ដោយប្រើ curl, OpenAI SDK និង Anthropic SDK។ នៅកន្លែង sk-... សូមបញ្ចូល key ដែលបានចេញពីទំព័រ API key។
នៅពេលទាញយកដោយប្រើ curl សូមបញ្ជាក់ផ្លូវពេញលេញរហូតដល់ /v1/models សម្រាប់ទម្រង់ទាំងពីរ។ ពាក្យបញ្ជាទីមួយប្រើបឋមកថា X-API-Key សម្រាប់ផ្លូវដែលឆបគ្នាជាមួយ OpenAI ហើយពាក្យបញ្ជាទីពីរប្រើបឋមកថា Authorization សម្រាប់ផ្លូវដែលឆបគ្នាជាមួយ Anthropic។
curl https://platform.clevi.net/api/v2/aiservice/openai/v1/models \
-H "X-API-Key: sk-..."
curl https://platform.clevi.net/api/v2/aiservice/anthropic/v1/models \
-H "Authorization: Bearer sk-..." \
-H "anthropic-version: 2023-06-01"សម្រាប់ OpenAI SDK សូមបញ្ជាក់អាសយដ្ឋានដែលរួមមាន /v1 នៅក្នុង base_url។
from openai import OpenAI
client = OpenAI(
api_key="sk-...",
base_url="https://platform.clevi.net/api/v2/aiservice/openai/v1",
)
for model in client.models.list():
print(model.id)សម្រាប់ Anthropic SDK សូមបញ្ជាក់ base_url ជាអាសយដ្ឋានដែលបញ្ចប់នៅមុខ /v1។
សម្រាប់ការផ្ទៀងផ្ទាត់ សូមប្រើបឋមកថា x-api-key ដែល SDK ផ្ញើដោយផ្ទាល់។
from anthropic import Anthropic
client = Anthropic(
api_key="sk-...",
base_url="https://platform.clevi.net/api/v2/aiservice/anthropic",
)
for model in client.models.list(limit=20).data:
print(model.id)ប្រសិនបើការឆ្លើយតបពីឧទាហរណ៍ណាមួយមានលេខ 200 នោះមានន័យថាការផ្ទៀងផ្ទាត់បានជោគជ័យ ហើយ data ក្នុងការឆ្លើយតបមានបញ្ជីម៉ូដែលដែលអាចហៅបានដោយប្រើ key នេះ។ ប្រសិនបើទទួលបាន 401 សូមពិនិត្យមូលហេតុតាមលំដាប់ក្នុងផ្នែកបន្ទាប់។
ការផ្ទៀងផ្ទាត់បានបរាជ័យ
ប្រសិនបើផ្ញើដោយគ្មាន key ឬប្រើ key ដែលផុតកំណត់ ឬត្រូវបានលុបចោល នឹងត្រឡប់ 401។ នៅលើផ្លូវដែលឆបគ្នាជាមួយ OpenAI ប្រសិនបើហៅដោយគ្មាន key នឹងត្រឡប់តួអត្ថបទខាងក្រោម ហើយនៅលើផ្លូវដែលឆបគ្នាជាមួយ Anthropic, error.type គឺ authentication_error។
{
"error": {
"message": "API key is required.",
"type": "invalid_request_error"
}
}ប្រសិនបើទទួលបាន 401 សូមពិនិត្យតាមលំដាប់ដូចខាងក្រោម។
- សូមពិនិត្យស្ថានភាព key នៅទំព័រ API key។ ប្រសិនបើ key ផុតកំណត់ ឬត្រូវបានលុបចោល សូមចេញ key ថ្មី។
- សូមពិនិត្យថាឈ្មោះបឋមកថាជា X-API-Key ឬ Authorization។
- ប្រសិនបើប្រើបឋមកថា Authorization នៅលើផ្លូវដែលឆបគ្នាជាមួយ OpenAI សូមពិនិត្យថាមានបុព្វបទ Bearer ឬអត់។
បន្ទាប់ពីកែតម្រូវរួច សូមដំណើរការការទាញយកបញ្ជីម៉ូដែលឡើងវិញនៅក្នុងផ្នែកពិនិត្យការផ្ទៀងផ្ទាត់ ដើម្បីបញ្ជាក់ថាទទួលបាន 200។
បឋមកថាដែលប្រើរួមគ្នា
បឋមកថាខាងក្រោមទាំងអស់ជាជម្រើស។ យើងណែនាំឱ្យកំណត់ X-Request-Id ដើម្បីអាចតាមដានបញ្ហាបាន។
| បឋមកថា | គោលបំណង | ប្រសិនបើលុបចោល |
|---|---|---|
| X-Request-Id | នេះជាឧបករណ៍សម្គាល់សម្រាប់តាមដានសំណើ។ ផ្លូវដែលឆបគ្នាជាមួយ Anthropic នឹងបញ្ជូនតម្លៃដូចគ្នាត្រឡប់មកវិញក្នុង header request-id នៃការឆ្លើយតប។ | ម៉ាស៊ីនមេជាអ្នកចេញតម្លៃនេះ។ |
| X-Region-Code | កំណត់តំបន់ដែលត្រូវហៅប្រើ។ | វាគឺ global។ |
| X-Product-Sku (អាចកំណត់បានតាម query product_sku ផងដែរ) | កំណត់ Product SKU ដែលត្រូវប្រើសម្រាប់ការគិតថ្លៃដោយផ្ទាល់។ Header មានអាទិភាពជាង query ហើយប្រើជាចម្បងក្នុងផ្លូវសំឡេង·voice។ | មិនអាចលុបចោលបានក្នុងផ្លូវ voice ទេ។ audio/speech និង audio/transcriptions ជ្រើសរើស Product តាម model ក្នុងតួសំណើ។ |
| anthropic-version / anthropic-beta | បញ្ជូនបន្តដដែលក្នុងផ្លូវដែលឆបគ្នាជាមួយ Anthropic។ | កំណែគឺ 2023-06-01។ |
ប្រសិនបើ 5xx កើតឡើងម្តងហើយម្តងទៀត សូមជូនដំណឹងតាមជំនួយ និងការទាក់ទង ដោយភ្ជាប់ X-Request-Id មកជាមួយ។ ប្រសិនបើជាតម្លៃដែលបានកំណត់ដោយផ្ទាល់ អ្នកអាចផ្ទៀងផ្ទាត់ជាមួយកំណត់ត្រារបស់ម៉ាស៊ីនភ្ញៀវបានភ្លាមៗ។