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)ВідхиленоДозволено

У сумісному з OpenAI шляху під час використання заголовка Authorization потрібен префікс 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 до шляху запиту, тому адреса закінчується перед /v1.

Перевірка автентифікації

Після налаштування ключа та базової 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 вкажіть адресу, що містить /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, який використовуватиметься для виставлення рахунків. Заголовок має пріоритет над параметром запиту й переважно використовується в голосових і voice-маршрутах.У voice-маршрутах його не можна пропускати. 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