Developer guide
Аўтэнтыфікацыя з дапамогай API-ключа
Загаловак для перадачы API-ключа і base URL для наладжвання SDK
Шлюз CLEVI аўтэнтыфікуе сумяшчальныя з OpenAI і Anthropic шляхі з дапамогай аднаго API-ключа.
На баку кліента трэба наладзіць два значэнні: загаловак аўтэнтыфікацыі, які змяшчае ключ, і base URL для SDK. Дапушчальныя фарматы загалоўка і base URL адрозніваюцца ў залежнасці ад спецыфікацыі.
Пасля завяршэння наладжвання атрымайце спіс мадэляў, каб адразу праверыць, ці прайшла аўтэнтыфікацыя.
Калі аўтэнтыфікацыя не прайшла, вяртаецца 401; калі пасля паспяховай аўтэнтыфікацыі не выконваюцца ўмовы доступу або ліміту, вяртаецца 403.
Атрымайце API-ключ на старонцы API-ключоў у кансолі. На гэтай жа старонцы можна кіраваць адкліканнем ключа і сферай яго выкарыстання.
Загаловак аўтэнтыфікацыі
Абедзве спецыфікацыі перадаюць API-ключ у адным загалоўку запыту. Выкарыстоўваецца адзін з загалоўкаў X-API-Key або Authorization, а дапушчальны фармат залежыць ад спецыфікацыі.
| Загаловак | Сумяшчальнасць з OpenAI | Сумяшчальнасць з Anthropic |
|---|---|---|
| X-API-Key: <ключ> | Дапускаецца | Дапускаецца |
| Authorization: Bearer <ключ> | Дапускаецца | Дапускаецца |
| Authorization: <ключ> (без Bearer) | Адхіляецца | Дапускаецца |
Пры выкарыстанні загалоўка Authorization у сумяшчальным з OpenAI шляху патрабуецца прэфікс Bearer. Калі адправіць толькі ключ без прэфікса, шлюз адхіліць запыт.
Назвы загалоўкаў не адчувальныя да рэгістра, таму загаловак 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 да шляху запыту, таму URL заканчваецца перад /v1. |
Праверка аўтэнтыфікацыі
Пасля задання ключа і базавага URL атрымайце спіс мадэляў, каб праверыць наяўнасць аўтэнтыфікацыі. У прыкладах ніжэй адзін і той жа запыт выконваецца з дапамогай curl, OpenAI SDK і Anthropic SDK. Замест sk-... устаўце ключ, выдадзены на экране API-ключа.
Пры атрыманні спісу з дапамогай 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 адказу змяшчаецца спіс мадэляў, якія можна выклікаць з дапамогай гэтага ключа. Калі атрыманы код 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 для выстаўлення рахункаў. Загаловак мае прыярытэт над параметрам запыту і выкарыстоўваецца галоўным чынам у галасавых маршрутах. | У галасавым маршруце нельга прапускаць. audio/speech і audio/transcriptions выбіраюць Product праз model у целе запыту. |
| anthropic-version / anthropic-beta | Перадаецца без змяненняў на маршруце, сумяшчальным з Anthropic. | Версія — 2023-06-01. |
Калі памылкі 5xx паўтараюцца, паведаміце пра гэта ў даведку і службу падтрымкі, указаўшы X-Request-Id. Калі значэнне было зададзена ўручную, яго можна непасрэдна супаставіць з запісамі кліента.