Tous les modèles, capacités et tarifs

Chat completions

POST /v1/chat/completions accepte le format de requête OpenAI et renvoie le format de réponse OpenAI. L’identifiant du modèle est le seul changement obligatoire dans votre code OpenAI actuel.

Requête

http
POST https://api-ai.fr/v1/chat/completions
Authorization: Bearer mdf-...
content-type: application/json

{
  "model": "claude-sonnet-5-5",
  "messages": [
    { "role": "system", "content": "You are concise." },
    { "role": "user",   "content": "Why is the sky blue?" }
  ],
  "max_tokens": 256,
  "stream": false
}

Réponse

Format identique à OpenAI, 1 pour 1 — id, choices[].message, usage.

json
{
  "id": "chatcmpl_01...",
  "object": "chat.completion",
  "created": 1715472000,
  "model": "claude-sonnet-5-5",
  "choices": [
    {
      "index": 0,
      "message": { "role": "assistant", "content": "Rayleigh scattering..." },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens":     48,
    "completion_tokens": 92,
    "total_tokens":      140
  }
}

SDK OpenAI (Python)

python
from openai import OpenAI

client = OpenAI(
    api_key="<OPENAI_API_KEY>",
    base_url="https://api-ai.fr/v1",
)

r = client.chat.completions.create(
    model="claude-sonnet-5-5",
    messages=[{"role": "user", "content": "Say hi."}],
)
print(r.choices[0].message.content)

SDK OpenAI (Node)

ts
import OpenAI from "openai";

const client = new OpenAI({
  apiKey:  process.env.OPENAI_API_KEY,
  baseURL: "https://api-ai.fr/v1",
});

const r = await client.chat.completions.create({
  model: "claude-sonnet-5-5",
  messages: [{ role: "user", content: "Say hi." }],
});
console.log(r.choices[0].message?.content);

Correspondance des champs

Données de référence
Champ OpenAIComportement sur API-AI
messagesTransmis ; le rôle system est remonté dans le champ Anthropic system.
max_tokensForwarded.
temperature, top_pForwarded.
tools, tool_choiceTraduit en tools / tool_choice Anthropic — même normalisation que pour l’utilisation d’outils.
streamTransmis ; émet des fragments SSE au format OpenAI (pas des événements Anthropic).
response_formatjson_object est respecté via une consigne système. Le mode strict json_schema est actuellement ignoré.
logprobs, top_logprobsIgnoré — non exposé par le fournisseur amont.
seedIgnoré — non pris en charge en amont.
n > 1Renvoie un seul choix. Appelez le point d’accès N fois si vous avez besoin de N échantillons.
Choisissez un format et tenez-vous-y
/v1/chat/completions et /v1/messages atteignent les mêmes modèles au même prix. La couche chat-completions ajoute une traduction ; le point d’accès Messages natif, non. Pour un nouveau projet, nous recommandons /v1/messages. Pour migrer depuis OpenAI, la couche de compatibilité est la voie la plus rapide.
Dernière mise à jour : 2 octobre 2026Une erreur ? support@minedom-france.fr