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Правіла шляху
Сумяшчальнасць з OpenAIhttps://platform.clevi.net/api/v2/aiservice/openai/v1Уключыце /v1 у base URL.
Сумяшчальнасць з Anthropichttps://platform.clevi.net/api/v2/aiservice/anthropicAnthropic 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, праверце наступнае ў паказаным парадку.

  1. Праверце статус ключа на экране API-ключа. Калі тэрмін дзеяння ключа скончыўся або ён быў адкліканы, выпусціце новы.
  2. Праверце, ці з'яўляецца назва загалоўка X-API-Key або Authorization.
  3. Калі на 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. Калі значэнне было зададзена ўручную, яго можна непасрэдна супаставіць з запісамі кліента.

Мова і рэгіён

Мовы, перакладзеныя машынай, перакладаюцца з дапамогай clevi/cip-5.5-im і пазначаюцца адпаведным чынам. Гэта датычыцца моў, для якіх апублікаваны пакет сайта.

137 моў

Рэкамендуецца

1

Усходняя Азія

7

Паўднёва-Усходняя Азія

11

Паўднёвая Азія

18

Цэнтральная Азія

5

Блізкі Усход і Каўказ

10

Заходняя Еўропа і Паўднёвая Еўропа

17

Вялікабрытанія і Ірландыя

4

Паўночная Еўропа

10

Цэнтральная Еўропа і Балканы

14

Усходняя Еўропа

5

Усходняя Афрыка

8

Заходняя Афрыка і Сярэдняя Афрыка

9

Паўднёвая Афрыка

8

Паўночная і Паўднёвая Амерыкі

5

Акіянія

5