Accueil / Apprendre / Utiliser Claude avec le SDK OpenAI : point de terminaison compatible avec OpenAI, streaming, outils et limites
SDK OpenAI + Claude. Deux formes de connecteurs physiques complémentaires relient une fenêtre de code à une autre, une métaphore claire de la compatibilité des SDK.

Utiliser Claude avec le SDK OpenAI : endpoint compatible OpenAI, streaming, outils et limites

Le code écrit pour le SDK OpenAI peut appeler Claude sans réécriture : faites pointer base_url vers le /v1de la passerelle, utilisez une clé de passerelle et un identifiant de modèle Claude. Le point de terminaison accepte les requêtes Chat Completions, diffuse les réponses en streaming dans le même format et prend en charge l’appel de fonctions. Certaines fonctionnalités de Claude n’existent que dans le format natif d’Anthropic ; la dernière section explique quand changer de format.

Informations sur le point de terminaison

Élément Valeur
URL de basehttps://aiprimetech.io/v1
Point de terminaison de chatPOST https://aiprimetech.io/v1/chat/completions
Liste des modèlesGET https://aiprimetech.io/v1/models
AuthentificationAuthorization: Bearer <key>; x-api-key est également accepté
ModèlesDes identifiants Claude tels que claude-sonnet-5 ; des identifiants GPT avec une clé du groupe Codex

Python

terminal
pip install openai
app.py
import os
from openai import OpenAI

client = OpenAI(base_url="https://aiprimetech.io/v1", api_key=os.environ["AIPRIME_API_KEY"])

resp = client.chat.completions.create(
    model="claude-sonnet-5",
    max_tokens=1024,
    messages=[
        {"role": "system", "content": "You are a concise assistant."},
        {"role": "user", "content": "Explain idempotency keys in two sentences."},
    ],
)
print(resp.choices[0].message.content)
print(resp.usage)

base_url doit se terminer par /v1 : le SDK y ajoute /chat/completions . Sans /v1 la requête arrive sur le site web et renvoie HTML ; avec /v1 deux fois, elle renvoie 404 page not found.

Node.js

app.mjs
import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://aiprimetech.io/v1", apiKey: process.env.AIPRIME_API_KEY });

const resp = await client.chat.completions.create({
  model: "claude-sonnet-5",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Write a haiku about retries." }],
});
console.log(resp.choices[0].message.content);

Diffusion en continu

stream.py
stream = client.chat.completions.create(
    model="claude-sonnet-5",
    max_tokens=2048,
    stream=True,
    stream_options={"include_usage": True},
    messages=[{"role": "user", "content": "Outline a zero-downtime migration."}],
)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)
    if chunk.usage:
        print("\n", chunk.usage)

Utilisez le streaming pour les réponses longues : une requête sans streaming doit se terminer avant l’expiration du délai d’attente de votre client, contrairement à une requête en streaming. include_usage ajoute un dernier fragment contenant le nombre de tokens. Pour en savoir plus sur son importance, consultez les réponses des LLM en streaming.

Appel de fonctions

tools.py
tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "Current weather for a city",
        "parameters": {
            "type": "object",
            "properties": {"city": {"type": "string"}},
            "required": ["city"],
        },
    },
}]

resp = client.chat.completions.create(
    model="claude-sonnet-5", max_tokens=512, tools=tools,
    messages=[{"role": "user", "content": "What is the weather in Paris?"}],
)
call = resp.choices[0].message.tool_calls[0]
print(call.function.name, call.function.arguments)   # get_weather {"city": "Paris"}

La réponse contient finish_reason: "tool_calls" et, au format OpenAI, tool_calls. Exécutez la fonction, ajoutez un tool message contenant le résultat et la valeur correspondante de tool_call_id, puis effectuez un nouvel appel, exactement comme avec les modèles OpenAI.

Raisonnement et réflexion

reasoning_effort correspond au paramètre d’effort de Claude et accepte low, medium, high, xhigh ou max. La valeur none est rejetée. Lorsque le modèle réfléchit, son raisonnement arrive dans un champ distinct reasoning_content à côté de content, de sorte que le code qui lit message.content continue de fonctionner sans modification.

reasoning.py
resp = client.chat.completions.create(
    model="claude-opus-5-5", max_tokens=4096, reasoning_effort="high",
    messages=[{"role": "user", "content": "Find the bug in this function: ..."}],
)

Modèles

Identifiant du modèle À utiliser pour
claude-sonnet-5Choix par défaut pour le développement et les tâches d’agents : rapide, performant, à prix intermédiaire.
claude-opus-5-5Raisonnement plus difficile, refactorisations importantes, longues exécutions d’agents.
claude-fable-5-1Le plus performant et le plus cher ; réservez-le aux tâches les plus difficiles.
claude-haiku-4-5Économique et rapide : titres, résumés, classification, petites étapes.

Utilisez ces identifiants tels quels. Les anciens identifiants datés, comme claude-3-5-sonnet-20241022 figurent encore dans certaines listes de modèles, mais ne sont pas disponibles et renvoient une erreur indiquant que le modèle n’est pas pris en charge.

Quand utiliser plutôt l’API native d’Anthropic

Le format OpenAI prend en charge le chat, le streaming, les outils et les images. Utilisez le format Messages d’Anthropic, sur la même passerelle, lorsque vous avez besoin de points de mise en cache explicites pour les prompts, de blocs de réflexion à renvoyer entre les tours, de documents PDF ou de citations. Le guide du SDK Python Anthropic et le guide du SDK Vercel AI couvrent cette méthode.

Dépannage

Ce que vous voyez Cause Solution
Une erreur d’analyse JSON, une réponse commençant par <base_url sans /v1https://aiprimetech.io/v1
404 page not found/v1 deux foisExactement un /v1
401 Invalid API keyClé absente ou incorrecte dans le processusVérifiez la variable ; une clé appartient à une seule passerelle
Modèle non pris en chargeIdentifiant de modèle ancien et daté, ou mal orthographiéUtilisez un identifiant du tableau ci-dessus
'none' is not supportedreasoning_effort="none"Utilisez low ou une valeur supérieure, ou omettez ce paramètre
429 Concurrency limit exceeded for userTrop de requêtes en coursLimitez le parallélisme ; consultez les limites de débit et les nouvelles tentatives
Délais d’attente dépassés pour les réponses longuesRequête longue sans streamingUtilisez le streaming ou augmentez le délai d’attente du client

Questions fréquentes

Puis-je utiliser Claude avec le SDK OpenAI ?
Oui, via un endpoint compatible avec OpenAI : définissez base_url sur l’URL de la passerelle se terminant par /v1, utilisez une clé API de la passerelle et un identifiant de modèle Claude tel que claude-sonnet-5. Le streaming et l’appel de fonctions fonctionnent au format OpenAI.
Quelle URL de base utiliser pour Claude dans le SDK OpenAI ?
L’URL de la passerelle se terminant par /v1, par exemple https://aiprimetech.io/v1. Le SDK y ajoute /chat/completions.
L’appel de fonctions fonctionne-t-il avec Claude au format OpenAI ?
Oui. Transmettez les outils au format OpenAI ; Claude renvoie tool_calls avec finish_reason défini sur tool_calls, et vous répondez avec des messages d’outil comme d’habitude.
Quand dois-je utiliser plutôt l’API native d’Anthropic ?
Lorsque vous avez besoin d’une mise en cache explicite des prompts, de blocs de réflexion entre les tours, de PDF en entrée ou de citations. Ces fonctionnalités font partie du format Messages d’Anthropic.
Commencez à utiliser Claude en quelques minutes

Obtenez une clé API — aucun compte Anthropic ni inscription sur liste d’attente requis.

Obtenir votre clé API

AI Prime Tech est une passerelle API indépendante. Elle n’est ni affiliée à Anthropic, ni approuvée par Anthropic, ni revendeuse d’Anthropic. Claude et les noms de modèles associés sont des marques de leurs propriétaires respectifs.

Autres guides sur l’API Claude

Comment obtenir une clé API ClaudeComprendre la tarification de l’API ClaudeLa façon la moins chère d’utiliser l’API ClaudeCursor illimité avec l’API ClaudeAccès illimité à Claude CodePasserelle API Claude ou accès direct à AnthropicComprendre les modèles Claude : comparaison de Claude Opus, Sonnet, Haiku et Fable — tous les modèles de l’API Claude, noms des modèles Anthropic et prix (2026)Payer l’API Claude en cryptomonnaiesAccéder à l’API Claude sans liste d’attenteComment réduire la consommation de tokens de ClaudeCline illimité avec l’API ClaudeRoo Code illimité avec l’API ClaudeClaude illimité dans les IDE JetBrainsAider avec Claude via une passerelle : ANTHROPIC_API_BASE, fichiers de configuration, mode architect et correctifsClaude illimité dans VS CodeConfiguration d’OpenCode pour Claude : paramètres d’opencode.json, modèles et erreurs courantesHermes Agent avec Claude via une passerelle : configuration d’un fournisseur personnalisé, maîtrise des coûts et correctifsUtiliser OpenClaw sans limites avec ClaudeCe que signifie une API compatible avec AnthropicClé API Claude Code — ANTHROPIC_API_KEY : comment l’obtenir, la configurer et quand utiliser claude setup-token à la placeCoûts de l’API Claude Code — Tarifs et moyens de les réduireLes erreurs de l’API Claude expliquées : erreur serveur 500, surcharge 529, limite de débit 429, requête incorrecte 400 — et le correctif pour chacuneComment acheter des crédits pour l’API Claude — et pourquoi un crédit Claude vaut mieux que toute offre d’« achat de compte Claude »API Claude gratuite : existe-t-il une clé API Claude gratuite, et qu’est-ce qui est réellement gratuit en 2026 ?API Claude ou abonnement Claude Pro/Max — Que choisirCodex CLI avec un fournisseur personnalisé : config.toml, modèles GPT et Claude, extension IDE et correctifsConnecter Claude à n8nRouter LiteLLM vers ClaudeUtiliser Claude dans Kilo CodeGitHub Copilot Chat avec Claude via une passerelle : configuration de Custom Endpoint, mode agent et correctifsConnecter Zed à Claude via la passerelleConnecter Cherry Studio à ClaudeChatAnthropic dans LangChain : importation, base_url, streaming, outils et erreursSDK Python Anthropic : installation, configuration de base_url, streaming et gestion des erreursClaude avec Vercel AI SDK : baseURL de createAnthropic, streaming et correctionsUtiliser Factory Droid avec ClaudeL’API de Claude Code expliquéeIntégrer l’API Claude à votre applicationComment utiliser Claude sans limites — et pourquoi il n’existe pas de « Claude Code piraté »