Developer guide
Автентикација со API клуч
Заглавието во кое се внесува API клучот и base URL-то што треба да се постави во SDK
CLEVI Gateway ги автентицира патеките компатибилни со 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. Ако го испратите само клучот без префиксот, Gateway ќе го одбие барањето.
Имињата на заглавијата не се чувствителни на големи и мали букви, па и заглавието 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 | Завршува пред /v1, бидејќи Anthropic SDK директно го додава /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 наведете адреса што завршува пред /v1 во base_url.
За автентикација користете го заглавието 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.
- Ако користите заглавие Authorization на патеката компатибилна со OpenAI, проверете дали има префикс Bearer.
По измените, повторно извршете го преземањето на списокот на модели од поглавјето за проверка на автентикацијата и проверете дали се добива 200.
Заглавија што се користат заедно
Сите следни заглавија се опционални. Препорачуваме да наведете X-Request-Id за полесно следење на проблемите.
| Заглавие | Намена | Ако се изостави |
|---|---|---|
| X-Request-Id | Идентификатор за следење на барањето. Патеката компатибилна со Anthropic ја враќа истата вредност во заглавието request-id на одговорот. | Го издава серверот. |
| X-Region-Code | Го одредува регионот за повикот. | Тоа е global. |
| X-Product-Sku (може да се одреди и со query product_sku) | Директно го одредува Product SKU што ќе се користи за наплата. Заглавието има предност пред query-параметарот и главно се користи кај патеките за глас и voice. | Не може да се изостави кај патеките за voice. audio/speech и audio/transcriptions го избираат Product преку model во телото на барањето. |
| anthropic-version / anthropic-beta | Се проследува непроменето кај патеката компатибилна со Anthropic. | Верзијата е 2023-06-01. |
Ако 5xx грешките се повторуваат, известете нè преку помошта и контакт-формуларот, заедно со X-Request-Id. Ако вредноста е одредена директно, може веднаш да се спореди со записите на клиентот.