Developer guide
API բանալիով նույնականացում
API բանալին ներառող վերնագիրը և SDK-ում սահմանվող base URL-ը
CLEVI Gateway-ը OpenAI-ին և Anthropic-ին համատեղելի ուղիները նույնականացնում է մեկ API բանալիով։
Հաճախորդում սահմանվող երկու արժեքներն են բանալին պարունակող նույնականացման վերնագիրը և SDK-ի base URL-ը, իսկ թույլատրելի վերնագրերի ձևաչափերն ու base URL-ները տարբերվում են ըստ ստանդարտի։
Կարգավորումներն ավարտելուց հետո մոդելների ցանկը ստանալով՝ կարող եք անմիջապես ստուգել նույնականացման կարգավիճակը։
Նույնականացման ձախողման դեպքում վերադարձվում է 401, իսկ նույնականացումը հաջողությամբ անցնելուց հետո թույլտվության կամ սահմանաչափի պայմանները չբավարարելու դեպքում՝ 403։
API բանալին թողարկեք վահանակի API բանալիների էջում։ Նույն էջում կարող եք կառավարել բանալու չեղարկումն ու օգտագործման շրջանակը։
Նույնականացման վերնագիր
Երկու ստանդարտների դեպքում էլ API բանալին ներառվում է հարցման մեկ վերնագրում։ Օգտագործվում է X-API-Key կամ Authorization վերնագիրը, իսկ թույլատրելի ձևաչափը կախված է ստանդարտից։
| Վերնագիր | OpenAI-ի հետ համատեղելի | Anthropic-ի հետ համատեղելի |
|---|---|---|
| X-API-Key: <բանալի> | Թույլատրվում է | Թույլատրվում է |
| Authorization: Bearer <բանալի> | Թույլատրվում է | Թույլատրվում է |
| Authorization: <բանալի> (առանց Bearer-ի) | Մերժվում է | Թույլատրվում է |
OpenAI-ի հետ համատեղելի ուղում Authorization վերնագիր օգտագործելիս անհրաժեշտ է Bearer նախածանցը։ Եթե բանալին ուղարկեք առանց նախածանցի, Gateway-ը կմերժի հարցումը։
Վերնագրերի անունները մեծատառերի և փոքրատառերի նկատմամբ զգայուն չեն, ուստի Anthropic SDK-ի ուղարկած x-api-key վերնագիրը նույնպես գործում է անփոփոխ։ Եթե երկու վերնագրերն էլ սահմանված են, առաջնահերթ կիրառվում է 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-ից առաջ։ |
Նույնականացման ստուգում
Սահմանեք բանալին և base URL-ը, ապա հարցում կատարեք մոդելների ցանկը ստանալու համար՝ նույնականացման կարգավիճակը ստուգելու նպատակով։ Ստորև բերված օրինակները նույն հարցումը կատարում են curl-ի, OpenAI SDK-ի և Anthropic SDK-ի միջոցով։ sk-... տեղում տեղադրեք API բանալիների էջում ստեղծված բանալին։
curl-ով հարցում կատարելիս երկու ձևաչափերի համար էլ նշեք ամբողջական ուղին՝ մինչև /v1/models։ Առաջին հրամանն OpenAI-ին համատեղելի ուղու համար օգտագործում է X-API-Key վերնագիրը, իսկ երկրորդը՝ Anthropic-ին համատեղելի ուղու համար Authorization վերնագիրը։
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-ում base_url-ի համար նշեք /v1-ը ներառող հասցե։
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-ից առաջ։
Նույնականացման համար օգտագործեք SDK-ի ուղարկած x-api-key վերնագիրը 그대로։
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 դաշտում ներառված է այս բանալիով կանչելու ենթակա մոդելների ցանկը։ 401-ի դեպքում պատճառը ստուգեք հաջորդ բաժնում ներկայացված հերթականությամբ։
Նույնականացման ձախողում
Եթե ուղարկեք բացակայող, ժամկետանց կամ չեղարկված բանալի, կվերադարձվի 401։ OpenAI-ին համատեղելի ուղու դեպքում առանց բանալու հարցում կատարելիս կվերադարձվի ստորև ներկայացված մարմինը, իսկ Anthropic-ին համատեղելի ուղու դեպքում error.type-ը կլինի authentication_error։
{
"error": {
"message": "API key is required.",
"type": "invalid_request_error"
}
}401 ստանալու դեպքում ստուգեք հետևյալ հերթականությամբ։
- API բանալիների էջում ստուգեք բանալու կարգավիճակը։ Եթե բանալու ժամկետը լրացել է կամ այն չեղարկվել է, ստեղծեք նորը։
- Ստուգեք՝ վերնագրի անունը X-API-Key է, թե Authorization։
- Եթե OpenAI-ին համատեղելի ուղու դեպքում օգտագործում եք Authorization վերնագիրը, ստուգեք՝ արդյոք առկա է Bearer նախածանցը։
Ուղղումները կատարելուց հետո կրկին կատարեք մոդելների ցանկի հարցումը նույնականացման ստուգման բաժնից և ստուգեք՝ արդյոք վերադարձվում է 200։
Ընդհանուր օգտագործվող վերնագրեր
Հետևյալ բոլոր վերնագրերը կամընտրական են։ Խնդիրներին հետևելու համար խորհուրդ ենք տալիս սահմանել X-Request-Id-ը։
| Վերնագիր | Նպատակ | Եթե բաց թողնվի |
|---|---|---|
| X-Request-Id | Հարցումների հետագծման նույնացուցիչ է։ Anthropic-ի հետ համատեղելի ուղին նույն արժեքը վերադարձնում է պատասխանի request-id վերնագրում։ | Տրվում է սերվերի կողմից։ |
| X-Region-Code | Նշում է կանչի տարածաշրջանը։ | global է։ |
| X-Product-Sku (կարելի է նշել նաև product_sku հարցման պարամետրով) | Ուղղակիորեն նշում է Product SKU-ն, որն օգտագործվելու է գանձման համար։ Վերնագիրն ունի առաջնահերթություն հարցման պարամետրի նկատմամբ և հիմնականում օգտագործվում է ձայնային և voice ուղիներում։ | Voice ուղիներում չի կարելի բաց թողնել։ audio/speech և audio/transcriptions ուղիները Product-ն ընտրում են հարցման մարմնի model դաշտի միջոցով։ |
| anthropic-version / anthropic-beta | Anthropic-ի հետ համատեղելի ուղում փոխանցվում է 그대로։ | Տարբերակն է 2023-06-01։ |
Եթե 5xx սխալները կրկնվում են, տեղեկացրեք մեզ օգնության բաժնի և կապի միջոցով՝ տրամադրելով X-Request-Id-ը։ Եթե արժեքը նշել եք անմիջապես, այն կարելի է արագ համադրել հաճախորդի գրանցումների հետ։