Developer guide
Autentisera med en API-nyckel
Headern som innehåller API-nyckeln och den base URL som ska konfigureras i SDK:t
CLEVI-gatewayen autentiserar både OpenAI-kompatibla sökvägar och Anthropic-kompatibla sökvägar med en enda API-nyckel.
Det finns två värden som ska konfigureras på klienten: autentiseringsheadern som innehåller nyckeln och SDK:ts base URL. Tillåtna headerformat och base URL skiljer sig åt mellan specifikationerna.
När konfigurationen är klar kan du kontrollera autentiseringen direkt genom att hämta en lista över modeller.
Om autentiseringen misslyckas returneras 401. Om begäran autentiseras men inte uppfyller behörighets- eller gränsvillkoren returneras 403.
Utfärda API-nyckeln på API-nyckelsidan i konsolen. På samma sida kan du hantera återkallande av nyckeln och dess användningsomfattning.
Autentiseringsheader
Båda specifikationerna placerar API-nyckeln i en enda request-header. Använd antingen X-API-Key-headern eller Authorization-headern. Det tillåtna formatet varierar beroende på specifikation.
| Header | OpenAI-kompatibel | Anthropic-kompatibel |
|---|---|---|
| X-API-Key: <키> | Tillåten | Tillåten |
| Authorization: Bearer <키> | Tillåten | Tillåten |
| Authorization: <키> (utan Bearer) | Avvisas | Tillåten |
När du använder Authorization-headern med en OpenAI-kompatibel sökväg krävs prefixet Bearer. Om du skickar endast nyckeln utan prefixet avvisar gatewayen begäran.
Headernamn är inte skiftlägeskänsliga, så även x-api-key-headern som Anthropic SDK skickar fungerar utan ändringar. Om båda headerna anges används värdet i X-API-Key i första hand.
base URL
Befintliga SDK:er kan fortsätta användas genom att endast ändra base URL till adressen nedan. De två adresserna skiljer sig åt genom om de innehåller /v1 eller inte, så ange exakt den adress som motsvarar specifikationen.
| Specifikation | base URL | Sökvägsregler |
|---|---|---|
| OpenAI-kompatibel | https://platform.clevi.net/api/v2/aiservice/openai/v1 | Inkludera /v1 i base URL. |
| Anthropic-kompatibel | https://platform.clevi.net/api/v2/aiservice/anthropic | Den slutar före /v1 eftersom Anthropic SDK lägger till /v1 direkt i request-sökvägen. |
Kontrollera autentiseringen
När du har angett nyckeln och base URL kan du kontrollera autentiseringen genom att hämta modellistan. Exemplen nedan kör samma förfrågan med curl, OpenAI SDK och Anthropic SDK. Ersätt sk-... med nyckeln som utfärdats på sidan för API-nycklar.
När du hämtar listan med curl anger du hela sökvägen, inklusive /v1/models, för båda specifikationerna. Det första kommandot använder rubriken X-API-Key för den OpenAI-kompatibla sökvägen, och det andra kommandot använder rubriken Authorization för den Anthropic-kompatibla sökvägen.
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"För OpenAI SDK anger du en adress som inkluderar /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)För Anthropic SDK anger du en adress i base_url som slutar före /v1.
För autentisering används x-api-key-rubriken som SDK:t skickar utan ändringar.
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)Om svaret är 200 i något av exemplen har autentiseringen lyckats, och data i svaret innehåller en lista över modeller som kan anropas med den här nyckeln. Om svaret är 401 kontrollerar du orsaken enligt ordningen i nästa avsnitt.
Autentiseringsfel
Om du skickar en nyckel som saknas, har löpt ut eller har återkallats returneras 401. Om du anropar den OpenAI-kompatibla sökvägen utan nyckel returneras följande brödtext, medan error.type är authentication_error för den Anthropic-kompatibla sökvägen.
{
"error": {
"message": "API key is required.",
"type": "invalid_request_error"
}
}Om du får 401 kontrollerar du följande i ordning.
- Kontrollera nyckelns status på sidan för API-nycklar. Om nyckeln har löpt ut eller återkallats utfärdar du en ny.
- Kontrollera att rubriknamnet är X-API-Key eller Authorization.
- Om du använder rubriken Authorization på den OpenAI-kompatibla sökvägen kontrollerar du att prefixet Bearer finns.
Kör sedan modellisteförfrågan i avsnittet om autentiseringskontroll igen efter ändringarna och kontrollera att svaret blir 200.
Gemensamma rubriker
Alla följande rubriker är valfria. Vi rekommenderar att du anger X-Request-Id för att underlätta felsökning.
| Rubrik | Användning | Om den utelämnas |
|---|---|---|
| X-Request-Id | En identifierare för spårning av begäran. Anthropic-kompatibla sökvägar returnerar samma värde i svarshuvudet request-id. | Utfärdas av servern. |
| X-Region-Code | Anger den region som ska anropas. | Är global. |
| X-Product-Sku (kan även anges med frågeparametern product_sku) | Anger direkt det Product SKU som ska användas för debitering. Rubriken har företräde framför frågeparametern och används främst för röst- och voice-sökvägar. | Kan inte utelämnas för voice-sökvägar. audio/speech och audio/transcriptions väljer Product med model i begärans brödtext. |
| anthropic-version / anthropic-beta | Vid Anthropic-kompatibla sökvägar vidarebefordras dessa oförändrade. | Versionen är 2023-06-01. |
Om 5xx-fel upprepas, meddela oss via hjälpen och kontaktformuläret tillsammans med X-Request-Id. Om värdet har angetts direkt kan det jämföras omedelbart med klientens loggar.