Developer guide
Awtentikazzjoni b'ċavetta API
L-intestatura li fiha għandha tiddaħħal iċ-ċavetta API u l-base URL li għandu jiġi kkonfigurat fl-SDK
Il-gateway ta' CLEVI jawtentika l-mogħdijiet kompatibbli ma' OpenAI u dawk kompatibbli ma' Anthropic b'ċavetta API waħda.
Il-valuri li għandhom jiġu kkonfigurati fuq il-klijent huma l-intestatura ta' awtentikazzjoni li fiha tinżamm iċ-ċavetta u l-base URL tal-SDK; il-formati tal-intestaturi u l-base URL permessi jvarjaw skont l-ispeċifikazzjoni.
Wara li tlesti l-konfigurazzjoni, tista' tivverifika immedjatament jekk l-awtentikazzjoni rnexxietx billi tirkupra l-lista tal-mudelli.
Jekk l-awtentikazzjoni tfalli, jintbagħat 401; jekk l-awtentikazzjoni tgħaddi iżda ma jiġux issodisfati l-kundizzjonijiet tal-permessi jew tal-limiti, jintbagħat 403.
Oħroġ ċavetta API mill-iskrin taċ-ċavetti API fil-console. Mill-istess skrin tista' timmaniġġja r-revoka taċ-ċavetta u l-ambitu tal-użu tagħha.
Intestatura ta' awtentikazzjoni
Iż-żewġ speċifikazzjonijiet ipoġġu ċ-ċavetta API f'intestatura waħda tat-talba. Uża waħda mill-intestaturi X-API-Key jew Authorization; il-format permess ivarja skont l-ispeċifikazzjoni.
| Intestatura | Kompatibbli ma' OpenAI | Kompatibbli ma' Anthropic |
|---|---|---|
| X-API-Key: <ċavetta> | Disponibbli | Disponibbli |
| Authorization: Bearer <ċavetta> | Disponibbli | Disponibbli |
| Authorization: <ċavetta> (mingħajr Bearer) | Miċħud | Disponibbli |
Meta tuża l-intestatura Authorization fil-mogħdija kompatibbli ma' OpenAI, huwa meħtieġ il-prefiss Bearer. Jekk tibgħat iċ-ċavetta waħedha mingħajr il-prefiss, il-gateway jiċħad it-talba.
L-ismijiet tal-intestaturi ma jiddistingwux bejn ittri kbar u żgħar, għalhekk l-intestatura x-api-key mibgħuta mill-SDK ta' Anthropic taħdem ukoll kif inhi. Jekk tispeċifika ż-żewġ intestaturi, il-valur ta' X-API-Key jingħata prijorità.
base URL
L-SDK li kont tuża qabel jista' jintuża kif inhu billi tibdel biss il-base URL għall-indirizz ta' hawn taħt. Iż-żewġ indirizzi jvarjaw fuq jekk jinkludux /v1, għalhekk speċifika l-indirizz xieraq għall-ispeċifikazzjoni kif inhu.
| Speċifikazzjoni | base URL | Regola tal-mogħdija |
|---|---|---|
| Kompatibbli ma' OpenAI | https://platform.clevi.net/api/v2/aiservice/openai/v1 | Inkludi /v1 fil-base URL. |
| Kompatibbli ma' Anthropic | https://platform.clevi.net/api/v2/aiservice/anthropic | Peress li l-SDK ta' Anthropic iżid /v1 direttament mal-mogħdija tat-talba, jispiċċa qabel /v1. |
Verifika tal-awtentikazzjoni
Wara li tissettja ċ-ċavetta u l-base URL, tista’ tivverifika l-awtentikazzjoni billi tirkupra l-lista tal-mudelli. L-eżempju hawn taħt iwettaq l-istess talba b’curl, OpenAI SDK u Anthropic SDK. Fil-post ta’ sk-... daħħal iċ-ċavetta maħruġa mill-iskrin taċ-ċwievet API.
Meta tirkupra l-lista b’curl, speċifika l-mogħdija sħiħa sa /v1/models għaż-żewġ speċifikazzjonijiet. L-ewwel kmand juża l-header X-API-Key għall-mogħdija kompatibbli ma’ OpenAI, u t-tieni kmand juża l-header Authorization għall-mogħdija kompatibbli ma’ 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 jispeċifika indirizz li jinkludi /v1 f’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 jispeċifika indirizz li jispiċċa qabel /v1 f’base_url.
Għall-awtentikazzjoni, uża l-header x-api-key li jibgħat l-SDK kif inhu.
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)Jekk ir-rispons ta’ kwalunkwe eżempju jkun 200, l-awtentikazzjoni tkun irnexxiet, u d-data fir-rispons ikun fiha l-lista tal-mudelli li jistgħu jissejħu b’din iċ-ċavetta. Jekk tirċievi 401, iċċekkja l-kawża fl-ordni tat-taqsima li jmiss.
Falliment tal-awtentikazzjoni
Jekk tibgħat ċavetta li ma teżistix jew li skadiet jew ġiet revokata, jintbagħat 401. Jekk tagħmel talba mingħajr ċavetta fil-mogħdija kompatibbli ma’ OpenAI, jintbagħat il-kontenut hawn taħt, filwaqt li fil-mogħdija kompatibbli ma’ Anthropic error.type ikun authentication_error.
{
"error": {
"message": "API key is required.",
"type": "invalid_request_error"
}
}Jekk tirċievi 401, iċċekkja dan li ġej fl-ordni indikata.
- Iċċekkja l-istatus taċ-ċavetta fl-iskrin taċ-ċwievet API. Jekk tkun skadiet jew ġiet revokata, oħroġ waħda ġdida.
- Iċċekkja jekk l-isem tal-header huwiex X-API-Key jew Authorization.
- Jekk tuża l-header Authorization fil-mogħdija kompatibbli ma’ OpenAI, iċċekkja jekk għandux il-prefiss Bearer.
Wara li tagħmel il-korrezzjonijiet, erġa’ wettaq l-irkupru tal-lista tal-mudelli fit-taqsima tal-verifika tal-awtentikazzjoni u kkonferma li tirċievi 200.
Headers użati flimkien
L-headers li ġejjin kollha huma fakultattivi. Nirrakkomandaw li tispeċifika X-Request-Id biex tkun tista’ ssegwi l-problemi.
| Header | Użu | Jekk jitħalla barra |
|---|---|---|
| X-Request-Id | Identifikatur għat-traċċar tat-talba. Ir-rotta kompatibbli ma’ Anthropic tirritorna l-istess valur fl-header request-id tar-rispons. | Jinħareġ mis-server. |
| X-Region-Code | Jispeċifika r-reġjun fejn issir it-talba. | Huwa global. |
| X-Product-Sku (jista’ jiġi speċifikat ukoll permezz tal-query product_sku) | Jispeċifika direttament il-Product SKU li għandu jintuża għall-iċċarġjar. L-header għandu prijorità fuq il-query u jintuża prinċipalment fir-rotot tal-vuċi·voice. | Ma jistax jitħalla barra fir-rotot tal-vuċi. audio/speech u audio/transcriptions jagħżlu l-Prodott permezz tal-model fil-korp tat-talba. |
| anthropic-version / anthropic-beta | Jiġi mgħoddi kif inhu fir-rotta kompatibbli ma’ Anthropic. | Il-verżjoni hija 2023-06-01. |
Jekk il-5xx jirrepetu ruħhom, jekk jogħġbok għarrafna permezz tal-għajnuna u l-kuntatt, flimkien ma’ X-Request-Id. Jekk il-valur ġie speċifikat direttament, jista’ jiġi mqabbel immedjatament mar-rekords tal-klijent.