Developer guide
Autentisering med API-nøkkel
Headeren som inneholder API-nøkkelen, og base URL-en som skal angis i SDK-en
CLEVI-gatewayen autentiserer OpenAI-kompatible og Anthropic-kompatible endepunkter med én API-nøkkel.
Det er to verdier som skal angis på klientsiden: autentiseringsheaderen som inneholder nøkkelen, og SDK-ens base URL. Tillatte headere og base URL-er varierer imidlertid mellom spesifikasjonene.
Når konfigurasjonen er fullført, kan du kontrollere autentiseringen umiddelbart ved å hente modellisten.
Hvis autentiseringen mislykkes, returneres 401. Hvis autentiseringen er godkjent, men kravene til tillatelser eller grenser ikke er oppfylt, returneres 403.
Utsted API-nøkler på API-nøkkelsiden i konsollen. På samme side kan du administrere tilbakekalling av nøkler og bruksomfang.
Autentiseringsheader
Begge spesifikasjonene legger API-nøkkelen i én forespørselheader. Bruk enten X-API-Key-headeren eller Authorization-headeren. Det tillatte formatet varierer imidlertid mellom spesifikasjonene.
| Header | OpenAI-kompatibel | Anthropic-kompatibel |
|---|---|---|
| X-API-Key: <키> | Tillatt | Tillatt |
| Authorization: Bearer <키> | Tillatt | Tillatt |
| Authorization: <키> (uten Bearer) | Avvist | Tillatt |
Når du bruker Authorization-headeren med den OpenAI-kompatible banen, kreves Bearer-prefikset. Hvis du bare sender nøkkelen uten prefikset, avviser gatewayen forespørselen.
Headernavn skiller ikke mellom store og små bokstaver, så x-api-key-headeren som sendes av Anthropic SDK fungerer også uendret. Hvis begge headerne angis, prioriteres X-API-Key-verdien.
base URL
SDK-er du allerede bruker, kan fortsatt brukes ved å endre bare base URL-en til adressen nedenfor. De to adressene skiller seg fra hverandre ved om de inkluderer /v1, så angi adressen som tilsvarer spesifikasjonen, uendret.
| Spesifikasjon | base URL | Regel for bane |
|---|---|---|
| OpenAI-kompatibel | https://platform.clevi.net/api/v2/aiservice/openai/v1 | Inkluder /v1 i base URL-en. |
| Anthropic-kompatibel | https://platform.clevi.net/api/v2/aiservice/anthropic | Anthropic SDK legger selv til /v1 i forespørselsbanen, så base URL-en avsluttes før /v1. |
Kontrollere autentisering
Når du har angitt nøkkelen og base URL, kan du bekrefte autentiseringen ved å hente modellisten. Eksemplene nedenfor utfører samme forespørsel med curl, OpenAI SDK og Anthropic SDK. Sett inn nøkkelen du har utstedt på API-nøkkelsiden i stedet for sk-....
Når du henter listen med curl, angir du hele banen til /v1/models for begge spesifikasjonene. Den første kommandoen bruker X-API-Key-headeren for den OpenAI-kompatible banen, og den andre kommandoen bruker Authorization-headeren for den Anthropic-kompatible banen.
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"For OpenAI SDK angir du en adresse som inkluderer /v1 i 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)For Anthropic SDK angir du en adresse i base_url som avsluttes før /v1.
For autentisering bruker du x-api-key-headeren som SDK-en sender, uendret.
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)Hvis svaret er 200 i et av eksemplene, var autentiseringen vellykket, og data i svaret inneholder listen over modeller som kan kalles med denne nøkkelen. Hvis svaret er 401, kontrollerer du årsaken i rekkefølgen i neste avsnitt.
Autentiseringsfeil
Hvis du sender en manglende, utløpt eller tilbakekalt nøkkel, returneres 401. Hvis du kaller den OpenAI-kompatible banen uten nøkkel, returneres brødteksten nedenfor, mens error.type er authentication_error for den Anthropic-kompatible banen.
{
"error": {
"message": "API key is required.",
"type": "invalid_request_error"
}
}Hvis du får 401, kontrollerer du følgende i denne rekkefølgen.
- Kontroller nøkkelstatusen på API-nøkkelsiden. Hvis nøkkelen er utløpt eller tilbakekalt, utsteder du en ny.
- Kontroller om headernavnet er X-API-Key eller Authorization.
- Hvis du bruker Authorization-headeren på den OpenAI-kompatible banen, kontrollerer du om den har prefikset Bearer.
Kjør modellisteforespørselen i avsnittet om kontroll av autentisering på nytt etter endringene, og kontroller at du får 200.
Felles headere
Alle de følgende headerne er valgfrie. Vi anbefaler at du angir X-Request-Id for å kunne spore problemer.
| Header | Bruksområde | Hvis den utelates |
|---|---|---|
| X-Request-Id | Identifikator for sporing av forespørselen. Anthropic-kompatible ruter returnerer samme verdi i responsens request-id-header. | Utstedes av serveren. |
| X-Region-Code | Angir regionen som skal brukes for anropet. | Er global. |
| X-Product-Sku (kan også angis med spørringsparameteren product_sku) | Angir Product SKU-en som skal brukes til fakturering, direkte. Headeren har prioritet over spørringsparameteren og brukes hovedsakelig for tale- og stemmeruter. | Kan ikke utelates for stemmeruter. audio/speech og audio/transcriptions velger Product med model i forespørselens brødtekst. |
| anthropic-version / anthropic-beta | Videreformidles uendret i Anthropic-kompatible ruter. | Versjonen er 2023-06-01. |
Hvis 5xx-feil gjentar seg, kan du informere oss via hjelpesenteret og kontaktskjemaet, sammen med X-Request-Id. Hvis du har angitt verdien selv, kan den sammenlignes direkte med klientloggene.