Choisir la forme du client
Les clients JavaScript, Python et curl brut de type OpenAI reçoivent https://cicora.ai/api/v1 et ajoutent les routes sans second /v1.
Les SDK Messages et Claude Code reçoivent la racine de la passerelle https://cicora.ai/api car ils ajoutent eux-mêmes /v1/messages. Les exemples ci-dessous présentent les deux formes.
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://cicora.ai/api/v1",
apiKey: process.env.CICORA_API_KEY,
});
const completion = await client.chat.completions.create({
model: "openai/gpt-5.6-sol",
messages: [{ role: "user", content: "Hello" }],
});from openai import OpenAI
import os
client = OpenAI(
base_url="https://cicora.ai/api/v1",
api_key=os.environ["CICORA_API_KEY"],
)
completion = client.chat.completions.create(
model="openai/gpt-5.6-sol",
messages=[{"role": "user", "content": "Hello"}],
)from anthropic import Anthropic
import os
client = Anthropic(
base_url="https://cicora.ai/api",
auth_token=os.environ["CICORA_API_KEY"],
)
message = client.messages.create(
model="anthropic/claude-sonnet-5",
max_tokens=500,
messages=[{"role": "user", "content": "Hello"}],
)import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
baseURL: "https://cicora.ai/api",
authToken: process.env.CICORA_API_KEY,
});
const message = await client.messages.create({
model: "anthropic/claude-sonnet-5",
max_tokens: 500,
messages: [{ role: "user", content: "Hello" }],
});export ANTHROPIC_BASE_URL=https://cicora.ai/api
export ANTHROPIC_AUTH_TOKEN="$CICORA_API_KEY"
export ANTHROPIC_API_KEY=""
# The Messages client appends /v1/messages to the gateway root.
# Clear a preexisting API key so it cannot conflict with the Bearer token.Frontière d’intégration
- Créez un client par processus ou par frontière d’application sécurisée.
- Transmettez le timeout et l’AbortSignal du flux de travail appelant.
- Renvoyez le statut HTTP et un corps d’erreur structuré au code appelant.
Versions et mises à jour
N’appliquez pas l’URL de base de type OpenAI à un SDK Messages et n’ajoutez pas manuellement /v1 à la racine de sa passerelle.
Après une modification de la référence, mettez le client à jour et vérifiez le parcours principal via models avant la mise en production.