Developer guide
Authentifizéiere mat engem API-Schlëssel
Den Header, deen den API-Schlëssel enthält, an d'Base-URL, déi am SDK festgeluecht gëtt
D'CLEVI Gateway authentifizéiert den OpenAI-kompatibele Wee an den Anthropic-kompatibele Wee mat engem eenzegen API-Schlëssel.
Op der Client-Säit mussen zwou Wäerter konfiguréiert ginn: den Authentifizéierungs-Header, deen de Schlëssel enthält, an d'Base-URL vum SDK. Déi erlaabt Header-Formater an d'Base-URL ënnerscheede sech jee no Spezifikatioun.
Nodeems d'Konfiguratioun ofgeschloss ass, kënnt Dir d'Authentifizéierung direkt iwwerpréiwen, andeems Dir d'Lëscht vun de Modeller ofrufft.
Wann d'Authentifizéierung feelgeschloen ass, gëtt 401 zeréckginn. Wann d'Authentifizéierung erfollegräich war, awer d'Berechtigungen oder d'Limitebedéngungen net erfëllt sinn, gëtt 403 zeréckginn.
Gitt den API-Schlëssel op der API-Schlëssel-Säit an der Konsole aus. Op därselwechter Säit kënnt Dir d'Schlësselen ofzéien an hiren Asazberäich verwalten.
Authentifizéierungs-Header
A béide Spezifikatioune gëtt den API-Schlëssel an engem eenzege Request-Header iwwerdroen. Dir benotzt entweder den X-API-Key-Header oder den Authorization-Header; dat erlaabt Format hänkt vun der Spezifikatioun of.
| Header | OpenAI-kompatibel | Anthropic-kompatibel |
|---|---|---|
| X-API-Key: <키> | Erlaabt | Erlaabt |
| Authorization: Bearer <키> | Erlaabt | Erlaabt |
| Authorization: <키> (ouni Bearer) | Refuséiert | Erlaabt |
Wann Dir den Authorization-Header um OpenAI-kompatibele Wee benotzt, ass de Bearer-Prefix erfuerderlech. Wann Dir nëmmen de Schlëssel ouni Prefix schéckt, refuséiert d'Gateway d'Ufro.
D'Nimm vun den Header si net kleng- a Groussschreif-sensitive, dofir funktionéiert och den x-api-key-Header, deen den Anthropic SDK schéckt, onverännert. Wann Dir béid Header ugitt, huet de Wäert vun X-API-Key Prioritéit.
Base-URL
Är bis elo benotzt SDK kënne Sie weider benotzen, wann Dir nëmmen d'Base-URL op déi folgend Adress ännert. Well sech déi zwou Adressen doran ënnerscheeden, ob si /v1 enthalen, gitt déi passend Adress jee no Spezifikatioun onverännert un.
| Spezifikatioun | Base-URL | Reegel fir de Wee |
|---|---|---|
| OpenAI-kompatibel | https://platform.clevi.net/api/v2/aiservice/openai/v1 | /v1 ass an der Base-URL enthalen. |
| Anthropic-kompatibel | https://platform.clevi.net/api/v2/aiservice/anthropic | Den Anthropic SDK füügt /v1 direkt un de Request-Wee un, dofir hält d'URL virun /v1 op. |
Authentifizéierung iwwerpréiwen
Nodeems Dir de Schlëssel an d'base URL agestallt hutt, kënnt Dir d'Authentifikatioun iwwerpréiwen, andeems Dir d'Modellerlëscht ofrufft. D'Beispill hei ënnen féiert déiselwecht Ufro mat curl, dem OpenAI SDK an dem Anthropic SDK aus. Setzt op der Plaz vun sk-... de Schlëssel an, deen Dir op der API-Schlësselsäit ausgestallt hutt.
Wann Dir d'Modellerlëscht mat curl ofrufft, gitt fir béid Formater de komplette Wee bis /v1/models un. Den éischte Kommando benotzt den X-API-Key-Header fir den OpenAI-kompatibele Wee, den zweete Kommando den Authorization-Header fir den Anthropic-kompatibele Wee.
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"Am OpenAI SDK gitt bei base_url eng Adress un, déi /v1 enthält.
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)Am Anthropic SDK gitt bei base_url eng Adress un, déi virun /v1 ophält.
Fir d'Authentifikatioun benotzt Dir den x-api-key-Header, deen den SDK schéckt, onverännert.
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)Wann d'Äntwert bei engem vun de Beispiller 200 ass, war d'Authentifikatioun erfollegräich, an data an der Äntwert enthält d'Lëscht vun de Modeller, déi Dir mat dësem Schlëssel opruffe kënnt. Bei 401 iwwerpréift d'Ursaach an der Reiefolleg aus dem nächste Kapitel.
Authentifikatioun feelgeschloen
Wann Dir kee Schlëssel oder e ofgelafenen beziehungsweise zréckgeruffene Schlëssel schéckt, gëtt 401 zeréckginn. Wann Dir den OpenAI-kompatibele Wee ouni Schlëssel oprufft, gëtt de Kierper hei ënnen zeréckginn; beim Anthropic-kompatibele Wee ass error.type authentication_error.
{
"error": {
"message": "API key is required.",
"type": "invalid_request_error"
}
}Wann Dir 401 kritt, iwwerpréift d'Punkten an dëser Reiefolleg.
- Iwwerpréift de Status vum Schlëssel op der API-Schlësselsäit. Wann de Schlëssel ofgelaf oder zréckgeruff ass, stellt en neie Schlëssel aus.
- Iwwerpréift, ob den Header X-API-Key oder Authorization heescht.
- Wann Dir um OpenAI-kompatibele Wee den Authorization-Header benotzt, iwwerpréift, ob de Bearer-Präfix dobäi ass.
Nodeems Dir d'Ännerunge gemaach hutt, féiert d'Modellerlëscht-Ufro aus dem Kapitel iwwer d'Authentifikatiounsverifikatioun nach eng Kéier aus a kontrolléiert, ob 200 zeréckkënnt.
Header fir zesumme benotzt ze ginn
All folgend Header si fakultativ. Fir Problemer kënnen ze verfollegen, recommandéiere mir, X-Request-Id festzeleeën.
| Header | Zweck | Wann e weggelooss gëtt |
|---|---|---|
| X-Request-Id | Identifikator fir d'Verfollegung vun der Ufro. Den Anthropic-kompatibele Wee gëtt dee selwechte Wäert am request-id-Header vun der Äntwert zréck. | Gëtt vum Server ausgestallt. |
| X-Region-Code | Gëtt d'Regioun vum Opruff un. | Ass global. |
| X-Product-Sku (kann och mam Query-Parameter product_sku uginn ginn) | Gëtt de Product SKU fir d'Ofrechnung direkt un. Den Header huet Virrang virum Query-Parameter a gëtt haaptsächlech bei Audio- a Voice-Weeër benotzt. | Bei Voice-Weeër däerf en net ewechgelooss ginn. audio/speech an audio/transcriptions wielen de Product mam model am Ufrotext. |
| anthropic-version / anthropic-beta | Gëtt um Anthropic-kompatibele Wee onverännert weidergeleet. | D'Versioun ass 2023-06-01. |
Wann 5xx widderholl optrieden, mellt eis dat iwwer d'Hëllef an de Kontakt zesumme mam X-Request-Id. Wann Dir de Wäert direkt uginn hutt, kann en direkt mat de Client-Opzeechnunge verglach ginn.