---
title: "SDK OpenAI avec des modèles hébergés en Europe"
description: "Pointez le SDK OpenAI officiel pour Python ou JavaScript vers inference.eu avec base_url et une clé API, et appelez des modèles open-weight traités dans l’UE."
canonical: "https://inference.eu/fr/integrations/openai-sdk/"
language: "fr"
---

SDK · OpenAI SDK (Python and JavaScript)

# Utiliser le SDK OpenAI avec des modèles open source hébergés dans l’UE

Les SDK OpenAI officiels pour Python et JavaScript fonctionnent avec toute API compatible OpenAI. Réglez l’URL de base sur inference.eu et votre code existant appelle des modèles open-weight traités dans des centres de données européens, avec les mêmes méthodes, types, flux et appels d’outils.

[Contacter l'équipe](https://inference.eu/fr/contact/)[Configuration](#setup)

1.  01Format d'API: OpenAI
2.  02Centres de données dans l'UE
3.  03Couvert par un seul DPA

## Configuré en quelques minutes

1.  1

    Créez une clé API dans votre compte inference.eu et enregistrez-la sous `INFERENCE_EU_API_KEY`.

2.  2

    Installez le SDK avec `pip install openai` ou `npm install openai`.

3.  3

    Créez le client avec `base_url` (Python) ou `baseURL` (JavaScript) réglé sur l’URL de base d’inference.eu, et `api_key` lue dans l’environnement.

4.  4

    Remplacez le nom du modèle par un identifiant inference.eu, par exemple `gpt-oss-120b`.

5.  5

    Lancez une courte chat completion pour vérifier la connexion, puis activez le streaming ou les outils selon vos besoins.

python

```
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.inference.eu/v1",
    api_key=os.environ["INFERENCE_EU_API_KEY"],
)

response = client.chat.completions.create(
    model="gpt-oss-120b",
    messages=[{"role": "user", "content": "Summarise GDPR Article 28 in two sentences."}],
)
print(response.choices[0].message.content)

# JavaScript / TypeScript:
# const client = new OpenAI({ baseURL: "https://api.inference.eu/v1", apiKey: process.env.INFERENCE_EU_API_KEY });
```

## Pourquoi utiliser le SDK OpenAI avec inference.eu

Les paquets `openai` sont les bibliothèques clientes les plus utilisées pour les API de modèles de langage, et de nombreux outils reposent sur elles. Ils gèrent pour vous les nouvelles tentatives, les délais, le streaming, les réponses typées et les erreurs. Comme inference.eu parle le format de l’API OpenAI, vous conservez tout cela et ne changez que la destination des requêtes.

C’est souvent le moyen le plus rapide de faire passer une application existante sur des modèles open-weight dans l’UE : deux arguments de constructeur et un nom de modèle, sans nouvelle dépendance ni modification du reste du code.

## Comment fonctionne la configuration

En Python, passez `base_url` et `api_key` à `OpenAI(...)` ou `AsyncOpenAI(...)`. En JavaScript et TypeScript, passez `baseURL` et `apiKey` à `new OpenAI({...})`. L’URL de base se termine par `/v1` ; le SDK ajoute lui-même les chemins comme `/chat/completions`.

Les deux SDK lisent aussi `OPENAI_BASE_URL` et `OPENAI_API_KEY` dans l’environnement si vous ne les passez pas. C’est pratique pour des outils que vous ne pouvez pas modifier, mais dans votre propre code, des arguments explicites avec `INFERENCE_EU_API_KEY` sont plus lisibles et évitent de confondre les clés quand un projet utilise plusieurs fournisseurs.

## Quels modèles choisir

`client.models.list()` affiche les identifiants de modèles accessibles avec votre clé. Pour le chat généraliste, l’extraction et la synthèse, `gpt-oss-120b` est un choix par défaut rapide et performant. Pour la génération de code et les agents qui appellent des outils, `qwen3-coder-480b-a35b-instruct` est une option solide.

Pour le raisonnement complexe, les longs documents ou les workflows d’agents en plusieurs étapes, essayez `glm-5.3` ou `kimi-k3`. Seule la chaîne `model` change : vous pouvez donc comparer les modèles sur vos propres prompts en envoyant la même requête à plusieurs identifiants, puis en examinant qualité, latence et consommation de jetons.

## Dépannage

Une `AuthenticationError` 401 signifie que la clé est absente ou erronée ; vérifiez que vous lisez `INFERENCE_EU_API_KEY` et non un ancien `OPENAI_API_KEY`. Une `NotFoundError` 404 indique le plus souvent une URL de base sans `/v1` ou avec un chemin en trop, ou un identifiant de modèle inexistant.

Utilisez Chat Completions, `client.chat.completions.create`, la voie la plus largement prise en charge. Pour obtenir l’usage en streaming, passez `stream_options={"include_usage": True}` : les compteurs arrivent dans le dernier fragment. Si les appels d’outils reviennent sous forme de texte, vérifiez que le modèle les prend en charge et que `tools` suit le format JSON Schema.

## Garder les données dans l’UE

Avec l’URL de base réglée sur inference.eu, chaque requête envoyée par votre application via le SDK est traitée dans des centres de données de l’UE. Prompts et réponses ne servent jamais à l’entraînement. Nous signons un accord de sous-traitance au titre de l’article 28 du RGPD, publions la liste de nos sous-traitants et facturons en euros.

Le SDK ne communique qu’avec l’URL de base configurée et n’envoie aucune télémétrie à OpenAI. Vérifiez le reste de votre stack : les services de journalisation, de traçage et d’évaluation peuvent eux aussi stocker des prompts. Si vous définissez `OPENAI_BASE_URL` globalement, assurez-vous qu’aucun autre chemin de code ne crée encore un client avec l’URL par défaut d’OpenAI.

## OpenAI SDK (Python and JavaScript)

Catégorie

SDK

Éditeur

OpenAI

Format d'API

OpenAI

Traitement

Centres de données dans l'UE

Site web

[github.com](https://github.com/openai/openai-python)

Documentation

[github.com](https://github.com/openai/openai-python#configuring-the-http-client)

## OpenAI SDK (Python and JavaScript) : questions fréquentes

Les questions que nous posent le plus les achats, les développeurs et les juristes. Il en manque une ? Posez-la-nous directement.

Oui. Passez \`base\_url\` et \`api\_key\` à \`OpenAI()\` et le SDK envoie toutes les requêtes à ce point d’accès. Tout fournisseur qui implémente le format de l’API OpenAI, dont inference.eu, fonctionne avec les mêmes méthodes et types de réponse.

Passez \`baseURL\` à la création du client, par exemple \`new OpenAI({ baseURL: process.env.INFERENCE\_EU\_BASE\_URL, apiKey: process.env.INFERENCE\_EU\_API\_KEY })\`. La même option fonctionne avec Node.js, Deno, Bun et les environnements edge, y compris en TypeScript.

Oui. Les deux SDK lisent \`OPENAI\_BASE\_URL\` et \`OPENAI\_API\_KEY\` en l’absence de valeurs explicites. C’est utile pour des outils que vous ne pouvez pas modifier. Dans votre propre code, des arguments explicites montrent clairement quel fournisseur chaque client utilise.

Commencez par \`gpt-oss-120b\` pour les tâches générales, \`qwen3-coder-480b-a35b-instruct\` pour le code et les appels d’outils, et \`glm-5.3\` ou \`kimi-k3\` pour un raisonnement plus exigeant. \`client.models.list()\` liste tous les identifiants accessibles avec votre clé.

Oui. Passez \`stream=True\` en Python ou \`stream: true\` en JavaScript et parcourez les fragments comme d’habitude. Ajoutez \`stream\_options={"include\_usage": True}\` si vous avez besoin des compteurs de jetons, qui arrivent dans le dernier fragment.

Oui, pour les modèles qui prennent en charge les outils. Passez \`tools\` avec des définitions JSON Schema et lisez \`tool\_calls\` dans la réponse comme avec OpenAI. Qwen3 Coder 480B, GLM-5.3 et Kimi K3 gèrent bien les appels d’outils.

Vous pouvez passer \`response\_format\` avec un schéma JSON en Chat Completions. Le respect strict du schéma dépend du modèle : validez donc le résultat dans votre code, par exemple avec Pydantic, et relancez la requête si un champ manque.

L’URL de base est incorrecte ou l’identifiant du modèle est inconnu. L’URL de base doit se terminer par \`/v1\`, sans rien après, car le SDK ajoute \`/chat/completions\`. Comparez ensuite l’identifiant avec la sortie de \`client.models.list()\`.

Non. Le SDK n’envoie de requêtes qu’à l’URL de base configurée et ne contient aucune télémétrie. Veillez à ce que chaque client de votre code utilise l’URL d’inference.eu, y compris ceux créés par des bibliothèques qui lisent \`OPENAI\_BASE\_URL\`.

Non. Le paquet officiel \`openai\` pour Python ou JavaScript suffit. Si vous préférez le format Anthropic, le SDK Anthropic officiel fonctionne aussi avec inference.eu : vous utilisez donc le client dont votre code dépend déjà.

[Poser une question](https://inference.eu/fr/contact/)

## Pages liées

[Toutes les intégrations](https://inference.eu/fr/integrations/)

-   [Anthropic SDK (Python and TypeScript)Pointez le SDK Anthropic officiel pour Python ou TypeScript vers inference.eu et appelez des modèles open-weight traités dans l’UE via l’API Messages.SDK](https://inference.eu/fr/integrations/anthropic-sdk/)
-   [Vercel AI SDKUtilisez le fournisseur compatible OpenAI du Vercel AI SDK pour appeler des modèles open-weight traités dans l’UE depuis Next.js, Node.js ou l’edge.SDK](https://inference.eu/fr/integrations/vercel-ai-sdk/)
-   [LangChainConnectez ChatOpenAI de LangChain à inference.eu avec base\_url et faites tourner chaînes, agents et LangGraph sur des modèles open-weight traités dans l’UE.Frameworks](https://inference.eu/fr/integrations/langchain/)
-   [LiteLLMAjoutez inference.eu au proxy ou au SDK Python LiteLLM avec le préfixe openai/ et dirigez les requêtes vers des modèles open-weight traités dans l’UE.Passerelles](https://inference.eu/fr/integrations/litellm/)

## Faites passer vos charges IA sur une infrastructure européenne

Dites-nous quels modèles vous utilisez et votre volume approximatif. Nous répondons sous un jour ouvré avec un tarif et la suite.

-   Réponse sous un jour ouvré
-   Tarif adapté à votre volume
-   DPA prêt à signer
