Developer guide
Autentificarea cu cheia API
Antetul în care se introduce cheia API și base URL-ul care se configurează în SDK
Gateway-ul CLEVI autentifică rutele compatibile cu OpenAI și rutele compatibile cu Anthropic folosind o singură cheie API.
În client trebuie configurate două valori: antetul de autentificare care conține cheia și base URL-ul SDK-ului, iar formatele de antet și base URL acceptate diferă în funcție de specificație.
După finalizarea configurării, puteți verifica imediat autentificarea prin solicitarea listei de modele.
Dacă autentificarea eșuează, este returnat 401; dacă, după autentificare, nu sunt îndeplinite condițiile de autorizare sau de limită, este returnat 403.
Generați cheia API din ecranul pentru chei API din consolă. Din același ecran puteți gestiona revocarea cheii și domeniul de utilizare al acesteia.
Antetul de autentificare
Ambele specificații includ cheia API într-un singur antet al solicitării. Se utilizează unul dintre antetele X-API-Key și Authorization, iar formatul acceptat diferă în funcție de specificație.
| Antet | Compatibil cu OpenAI | Compatibil cu Anthropic |
|---|---|---|
| X-API-Key: <키> | Acceptat | Acceptat |
| Authorization: Bearer <키> | Acceptat | Acceptat |
| Authorization: <키> (fără Bearer) | Respins | Acceptat |
Pe ruta compatibilă cu OpenAI, este necesar prefixul Bearer atunci când se utilizează antetul Authorization. Dacă trimiteți doar cheia fără prefix, gateway-ul va respinge solicitarea.
Numele antetelor nu țin cont de diferența dintre literele majuscule și minuscule, astfel încât și antetul x-api-key trimis de Anthropic SDK funcționează neschimbat. Dacă sunt specificate ambele antete, valoarea X-API-Key are prioritate.
base URL
SDK-urile utilizate anterior pot fi folosite în continuare prin schimbarea base URL-ului cu adresa de mai jos. Cele două adrese diferă prin includerea sau neincluderea lui /v1, așadar specificați exact adresa corespunzătoare specificației.
| Specificație | base URL | Regula rutei |
|---|---|---|
| Compatibil cu OpenAI | https://platform.clevi.net/api/v2/aiservice/openai/v1 | Includeți /v1 în base URL. |
| Compatibil cu Anthropic | https://platform.clevi.net/api/v2/aiservice/anthropic | Anthropic SDK adaugă direct /v1 la ruta solicitării, astfel încât URL-ul se termină înainte de /v1. |
Verificarea autentificării
După configurarea cheii și a base URL, puteți verifica dacă autentificarea a reușit consultând lista de modele. Exemplele de mai jos execută aceeași interogare cu curl, OpenAI SDK și Anthropic SDK. În locul lui sk-... introduceți cheia emisă în ecranul cheii API.
La consultarea cu curl, specificați calea completă până la /v1/models pentru ambele specificații. Prima comandă folosește antetul X-API-Key pentru calea compatibilă cu OpenAI, iar a doua comandă folosește antetul Authorization pentru calea compatibilă cu 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"Pentru OpenAI SDK, specificați în base_url adresa care include /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)Pentru Anthropic SDK, specificați în base_url adresa care se termină înainte de /v1.
Pentru autentificare, utilizați neschimbat antetul x-api-key trimis de 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)Dacă răspunsul este 200 în oricare dintre exemple, autentificarea a reușit, iar în data din răspuns se află lista modelelor care pot fi apelate cu această cheie. Dacă primiți 401, verificați cauza în ordinea din secțiunea următoare.
Autentificare eșuată
Dacă trimiteți o cheie inexistentă, expirată sau revocată, se returnează 401. Dacă apelați calea compatibilă cu OpenAI fără cheie, se returnează corpul de mai jos, iar pentru calea compatibilă cu Anthropic, error.type este authentication_error.
{
"error": {
"message": "API key is required.",
"type": "invalid_request_error"
}
}Dacă primiți 401, verificați următoarele în ordine.
- Verificați starea cheii în ecranul cheii API. Dacă a expirat sau a fost revocată, emiteți una nouă.
- Verificați dacă numele antetului este X-API-Key sau Authorization.
- Dacă utilizați antetul Authorization pe calea compatibilă cu OpenAI, verificați dacă are prefixul Bearer.
După efectuarea modificărilor, executați din nou consultarea listei de modele din secțiunea Verificarea autentificării și confirmați că primiți 200.
Antete utilizate împreună
Toate antetele următoare sunt opționale. Pentru a facilita urmărirea problemelor, vă recomandăm să setați X-Request-Id.
| Antet | Scop | Dacă este omis |
|---|---|---|
| X-Request-Id | Identificator pentru urmărirea solicitării. Pe ruta compatibilă cu Anthropic, aceeași valoare este returnată în antetul request-id al răspunsului. | Este emis de server. |
| X-Region-Code | Specifică regiunea în care se efectuează apelul. | Este global. |
| X-Product-Sku (poate fi specificat și prin parametrul de interogare product_sku) | Specifică direct Product SKU utilizat pentru facturare. Antetul are prioritate față de parametrul de interogare și este utilizat în principal pe rutele de voce și voice. | Nu poate fi omis pe rutele de voce. audio/speech și audio/transcriptions selectează Product prin model din corpul solicitării. |
| anthropic-version / anthropic-beta | Este transmis neschimbat pe ruta compatibilă cu Anthropic. | Versiunea este 2023-06-01. |
Dacă erorile 5xx se repetă, vă rugăm să ne informați prin centrul de ajutor și formularul de contact, împreună cu X-Request-Id. Dacă valoarea a fost specificată direct, aceasta poate fi comparată imediat cu înregistrările clientului.