Developer guide
Autenticar-se amb una clau d’API
L’encapçalament que conté la clau d’API i la base URL que cal configurar a l’SDK
La passarel·la de CLEVI autentica les rutes compatibles amb OpenAI i les rutes compatibles amb Anthropic amb una única clau d’API.
Al client, cal configurar dos valors: l’encapçalament d’autenticació que conté la clau i la base URL de l’SDK. El format d’encapçalament i la base URL permesos varien segons l’especificació.
Després de completar la configuració, podeu comprovar immediatament si l’autenticació funciona consultant la llista de models.
Si l’autenticació falla, es retorna un 401; si l’autenticació té èxit però no es compleixen les condicions de permisos o de límit, es retorna un 403.
Emeteu la clau d’API des de la pantalla de claus d’API de la consola. Des de la mateixa pantalla podeu gestionar-ne la revocació i l’àmbit d’ús.
Encapçalament d’autenticació
Ambdues especificacions inclouen la clau d’API en un únic encapçalament de la sol·licitud. S’utilitza un dels encapçalaments X-API-Key o Authorization, i el format permès varia segons l’especificació.
| Encapçalament | Compatible amb OpenAI | Compatible amb Anthropic |
|---|---|---|
| X-API-Key: <키> | Permès | Permès |
| Authorization: Bearer <키> | Permès | Permès |
| Authorization: <키> (sense Bearer) | Rebutjat | Permès |
Quan utilitzeu l’encapçalament Authorization en una ruta compatible amb OpenAI, cal el prefix Bearer. Si envieu només la clau sense el prefix, la passarel·la rebutjarà la sol·licitud.
Els noms dels encapçalaments no distingeixen entre majúscules i minúscules, de manera que l’encapçalament x-api-key que envia l’SDK d’Anthropic també funciona tal com està. Si especifiqueu ambdós encapçalaments, el valor de X-API-Key té prioritat.
base URL
Els SDK que ja utilitzeu continuaran funcionant si només canvieu la base URL per una de les adreces següents. Les dues adreces es diferencien perquè una inclou /v1 i l’altra no; especifiqueu directament l’adreça corresponent a l’especificació.
| Especificació | base URL | Regla de la ruta |
|---|---|---|
| Compatible amb OpenAI | https://platform.clevi.net/api/v2/aiservice/openai/v1 | Incloeu /v1 a la base URL. |
| Compatible amb Anthropic | https://platform.clevi.net/api/v2/aiservice/anthropic | Acaba abans de /v1, perquè l’SDK d’Anthropic afegeix directament /v1 a la ruta de la sol·licitud. |
Comprovar l’autenticació
Després de configurar la clau i l’URL base, podeu comprovar l’autenticació consultant la llista de models. Els exemples següents executen la mateixa consulta amb curl, OpenAI SDK i Anthropic SDK. Substituïu sk-... per la clau emesa a la pantalla de claus d’API.
Quan feu la consulta amb curl, especifiqueu la ruta completa fins a /v1/models en ambdues especificacions. La primera ordre utilitza la capçalera X-API-Key per a la ruta compatible amb OpenAI, i la segona utilitza la capçalera Authorization per a la ruta compatible amb 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"A OpenAI SDK, especifiqueu a base_url l’adreça que inclou /v1.
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)A Anthropic SDK, especifiqueu a base_url una adreça que acabi abans de /v1.
Per a l’autenticació, utilitzeu tal qual la capçalera x-api-key que envia l’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)Si la resposta de qualsevol exemple és 200, l’autenticació s’ha completat correctament i data de la resposta conté la llista de models que es poden invocar amb aquesta clau. Si és 401, comproveu la causa seguint l’ordre de la secció següent.
Error d’autenticació
Si envieu una clau que no existeix, ha caducat o ha estat revocada, es retorna 401. Si feu una crida sense clau a la ruta compatible amb OpenAI, es retorna el cos següent; a la ruta compatible amb Anthropic, error.type és authentication_error.
{
"error": {
"message": "API key is required.",
"type": "invalid_request_error"
}
}Si rebeu un 401, comproveu-ho en l’ordre següent.
- Comproveu l’estat de la clau a la pantalla de claus d’API. Si ha caducat o ha estat revocada, emet-ne una de nova.
- Comproveu que el nom de la capçalera sigui X-API-Key o Authorization.
- Si utilitzeu la capçalera Authorization a la ruta compatible amb OpenAI, comproveu que inclogui el prefix Bearer.
Després de fer les correccions, torneu a executar la consulta de la llista de models de la secció de comprovació de l’autenticació i confirmeu que rebeu un 200.
Capçaleres que s’utilitzen conjuntament
Totes les capçaleres següents són opcionals. Per facilitar el seguiment dels problemes, recomanem especificar X-Request-Id.
| Capçalera | Ús | Si s’omet |
|---|---|---|
| X-Request-Id | És l’identificador per al seguiment de la sol·licitud. La ruta compatible amb Anthropic retorna el mateix valor a la capçalera request-id de la resposta. | L’emet el servidor. |
| X-Region-Code | Especifica la regió de la crida. | És global. |
| X-Product-Sku (també es pot especificar amb la consulta product_sku) | Especifica directament el Product SKU que s’utilitzarà per a la facturació. La capçalera té prioritat sobre la consulta i s’utilitza principalment en les rutes de veu. | No es pot ometre en les rutes de veu. audio/speech i audio/transcriptions seleccionen el Product mitjançant model del cos de la sol·licitud. |
| anthropic-version / anthropic-beta | Es transmeten tal qual a la ruta compatible amb Anthropic. | La versió és 2023-06-01. |
Si els 5xx es repeteixen, informeu-ne a l’ajuda i a contacte juntament amb X-Request-Id. Si heu especificat directament el valor, es pot contrastar immediatament amb els registres del client.