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 | Тъй като Anthropic SDK добавя директно /v1 към пътя на заявката, адресът завършва преди /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.
- Ако използвате заглавката Authorization в OpenAI-съвместимия път, проверете дали има префикс 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. Ако стойността е зададена директно, можете веднага да я сравните със записите на клиента.