Skip to content

Format compatible OpenAI pour Claude

Fast-Token permet d'appeler les modèles Anthropic Claude via le protocole API OpenAI. Si vous avez déjà des applications basées sur le SDK OpenAI ou /v1/chat/completions, il suffit en général de modifier base_url et model pour utiliser Claude, sans réécrire vers l'API native Anthropic Messages.

Cette page est un guide d'utilisation. Pour les corps de requête, les champs de réponse et le débogage en ligne de chaque interface, consultez la documentation ChatGPT et les liens du tableau des capacités ci-dessous.

Deux modes d'intégration

ComparaisonFormat compatible OpenAI (cette page)API native Claude (autres docs du dossier)
Chemin typiquePOST /v1/chat/completionsPOST /v1/messages
Corps de requêteChamps OpenAI : messages, model, stream, etc.Champs Anthropic : messages, system, thinking, etc.
Cas d'usageClients OpenAI existants, passerelle multi-modèles, migration rapideFonctions propres à Claude (budget de pensée étendue, Tool Use, PDF, recherche web, etc.)
DocumentationCette page + section ChatPages API du groupe Chat de ce dossier

Les deux modes partagent la même clé API et la même URL de passerelle. La facturation suit le modèle correspondant sur la place de marché des modèles.

Configuration

Passerelle et authentification

  • Base URL : https://fast-token.com/v1 (comme Démarrage rapide)
  • Authentification : en-tête Authorization: Bearer <Fast-Token_API_KEY>
  • Nom du modèle : copiez un ID contenant claude depuis la place de marché des modèles dans le champ model

SDK OpenAI (recommandé)

Pointez base_url du SDK officiel vers Fast-Token ; le reste est identique à OpenAI :

python
from openai import OpenAI

client = OpenAI(
    base_url="https://fast-token.com/v1",
    api_key="<Fast-Token_API_KEY>",
)

completion = client.chat.completions.create(
    model="claude-sonnet-4-20250514",  # selon la place de marché
    messages=[
        {"role": "user", "content": "用一句话介绍你自己"},
    ],
)
print(completion.choices[0].message.content)
javascript
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://fast-token.com/v1",
  apiKey: "<Fast-Token_API_KEY>",
});

const completion = await client.chat.completions.create({
  model: "claude-sonnet-4-20250514",
  messages: [{ role: "user", content: "用一句话介绍你自己" }],
});
console.log(completion.choices[0].message.content);

Pour le chat en flux, définissez stream: true. Voir Créer une complétion de chat (flux).

Aperçu des capacités au format chat compatible

Les capacités suivantes passent par le chemin compatible OpenAI. Dans la console ou Apifox, elles sont souvent classées en « format compatible chat ». En pratique, c'est souvent le même POST /v1/chat/completions, différencié par le modèle, le flux et la structure des messages.

CapacitéDescriptionRéférence
Créer un chat avec réflexionDialogue avec processus de « réflexion » du modèleFlux (extra_body.enable_thinking)
Créer une complétion de chat (flux)Chat texte multi-tours standard, sortie SSECréer une complétion de chat (flux)
Créer une complétion de chat (sans flux)Chat texte multi-tours, réponse uniqueCréer une complétion de chat (sans flux)
Créer un chat vision (flux)Images pour compréhension, description ou Q&RCréer un chat vision (flux)
Créer un chat vision (sans flux)Vision, réponse complète sans fluxCréer un chat vision (sans flux)

Choix du modèle

L'ID de modèle pour chaque scénario est sur la place de marché des modèles. Essayez les modèles Claude avec claude dans le nom et la capacité indiquée. En cas d'erreur « modèle introuvable » ou non pris en charge, changez d'entrée Claude pour le même scénario.

Points par scénario

Chat standard (flux / sans flux)

Rôle system

En format OpenAI, le prompt système est dans messages avec role: "system". L'API native Claude utilise souvent un champ system de premier niveau ; voir Créer une complétion de chat (flux).

Mode réflexion

Certains modèles Claude de réflexion activent la sortie de réflexion en flux via un champ d'extension :

json
{
  "model": "claude-sonnet-4-20250514",
  "messages": [{ "role": "user", "content": "逐步推导:为什么天空是蓝色的?" }],
  "stream": true,
  "extra_body": {
    "enable_thinking": true
  }
}
  • L'affichage de la réflexion en format compatible dépend de la passerelle et du modèle ; choisissez un Claude « réflexion » sur la place de marché
  • Pour un contrôle précis du budget de tokens (thinking.budget_tokens) et des blocs réflexion/réponse, utilisez l'API native Créer un chat avec pensée étendue (POST /v1/messages)

Vision (compréhension d'images)

Dans content du message user, un tableau multimodal : text + image_url (URL ou Base64).

json
{
  "model": "claude-sonnet-4-20250514",
  "messages": [
    {
      "role": "user",
      "content": [
        { "type": "text", "text": "描述这张图片中的主要内容" },
        {
          "type": "image_url",
          "image_url": { "url": "https://example.com/photo.jpg" }
        }
      ]
    }
  ],
  "stream": true
}

Choisir format compatible OpenAI ou API native Claude

BesoinRecommandation
Intégration rapide, SDK OpenAI / code existantFormat compatible OpenAI (cette page)
Pensée étendue, budget_tokens, structure SSE des blocsAPI nativeCréer un chat avec pensée étendue
Tool Use / appels de fonctionsAPI nativeCréer un appel de fonction (flux)
Sortie structurée (JSON Schema)API nativeCréer des sorties structurées
PDF, recherche webAPI nativePrise en charge PDF, Recherche Web
Chat + vision + réflexion avec client OpenAI uniquementLe format compatible OpenAI couvre l'essentiel

FAQ

Q : Pourquoi ce n'est pas identique à la doc OpenAI officielle ?
R : La couche de compatibilité aligne requêtes/réponses sur OpenAI ; Claude exécute en dessous. Certains paramètres OpenAI peuvent être ignorés ; fiez-vous au support réel du modèle.

Q : Que mettre dans model ?
R : L'ID complet de la place de marché (souvent avec claude). Pas d'abréviations ni de noms obsolètes.

Q : Puis-je utiliser le SDK Python officiel Anthropic ?
R : Il cible POST /v1/messages par défaut. Pour le conserver, suivez l'API native de ce dossier ; le SDK OpenAI correspond à cette page.

Q : Format de réponse en flux ?
R : SSE, lignes data: {...} et data: [DONE] à la fin, comme OpenAI. Voir Objet de fragment de complétion de chat.

Q : Structure JSON complète de la réponse ?
R : Objet de complétion de chat. Pour Messages API native : Objet de complétion de chat (format Anthropic).

Pour aller plus loin