SDK Python
Les SDK officiels fonctionnent sans modification : tu leur donnes l’adresse de Kloria et ta clé. Choisis le SDK selon le format que tu préfères, pas selon le modèle : les modèles Claude acceptent les deux formats.
pip install openai anthropicLes exemples lisent la clé dans KLORIA_API_KEY (voir Démarrage rapide).
Requête simple
Section intitulée « Requête simple »import osfrom openai import OpenAI
client = OpenAI( base_url="https://api.kloria.dev/v1", api_key=os.environ["KLORIA_API_KEY"],)
response = client.chat.completions.create( model="claude-sonnet-5", messages=[ {"role": "system", "content": "Tu réponds en français, brièvement."}, {"role": "user", "content": "Explique ce qu'est un webhook."}, ],)
print(response.choices[0].message.content)print(response.usage) # tokens d'entrée et de sortie facturésimport osimport anthropic
client = anthropic.Anthropic( base_url="https://api.kloria.dev", # sans /v1 api_key=os.environ["KLORIA_API_KEY"],)
message = client.messages.create( model="claude-sonnet-5", max_tokens=1024, system="Tu réponds en français, brièvement.", messages=[{"role": "user", "content": "Explique ce qu'est un webhook."}],)
print(message.content[0].text)print(message.usage)Streaming
Section intitulée « Streaming »Pour afficher la réponse au fil de l’eau :
stream = client.chat.completions.create( model="gpt-6.1-sol", messages=[{"role": "user", "content": "Écris un haïku sur Git."}], stream=True,)
for chunk in stream: if chunk.choices and chunk.choices[0].delta.content: print(chunk.choices[0].delta.content, end="", flush=True)with client.messages.stream( model="claude-sonnet-5", max_tokens=1024, messages=[{"role": "user", "content": "Écris un haïku sur Git."}],) as stream: for text in stream.text_stream: print(text, end="", flush=True)Variables d’environnement reconnues
Section intitulée « Variables d’environnement reconnues »Les deux SDK savent lire leur configuration dans l’environnement. Si tu les définis, tu peux créer le client sans argument :
| SDK | Adresse | Clé |
|---|---|---|
| OpenAI | OPENAI_BASE_URL=https://api.kloria.dev/v1 |
OPENAI_API_KEY |
| Anthropic | ANTHROPIC_BASE_URL=https://api.kloria.dev |
ANTHROPIC_API_KEY |
Gérer les erreurs
Section intitulée « Gérer les erreurs »Les SDK lèvent une exception typée selon le code HTTP. Les plus fréquentes avec Kloria :
import openai
try: response = client.chat.completions.create(model="claude-sonnet-5", messages=[...])except openai.AuthenticationError: ... # 401 : clé invalide, désactivée ou expiréeexcept openai.PermissionDeniedError: ... # 403 : solde épuisé, quota de la clé atteint, ou modèle non autorisé pour cette cléexcept openai.RateLimitError: ... # 429 : trop de requêtes, réessaie après une pauseexcept openai.APIStatusError as e: print(e.status_code, e.message)Le détail de chaque code est sur la page Référence API.
© 2026 Kloria — bêta privée