Skip to content

Codex · Chapitre 5

Intégrer des modèles tiers comme DeepSeek

3 minutes de lecture

📚 Navigation de la série : Le chapitre précédent 〔04 Abonnements et facturation〕 détaillait la rentabilité des différents abonnements et modes de facturation sous Codex. Ce chapitre poursuit dans la thématique de l'optimisation des coûts en abordant une alternative avancée : remplacer le modèle de traitement de Codex par des modèles tiers comme DeepSeek. ⚠️ Précision importante (fonctionnalité expérimentale sujette à modification, à valider en pratique) : Codex est un produit développé par OpenAI, et la documentation officielle ne documente pas l'intégration de modèles comme DeepSeek. L'accès à des modèles tiers est une méthode communautaire s'appuyant sur l'option officielle de personnalisation des fournisseurs (model_providers). Le succès et la stabilité de cette intégration dépendent de la compatibilité des protocoles d'API du fournisseur tiers, ce qui constitue la principale source d'erreur (détaillée au paragraphe 03). Les options de configuration et comportements par défaut décrits s'appuient sur la documentation officielle ; la section concernant DeepSeek repose sur les solutions communautaires validées en pratique. Les adresses d'API, noms de modèles et compatibilités de protocoles peuvent évoluer selon les spécifications de DeepSeek et de Codex.

Commençons par une discussion réelle que j'ai eue récemment :

Un collègue : « Tu as connecté DeepSeek à Claude Code pour économiser, pourquoi ne pas faire pareil avec Codex ? » Moi : « Je pensais que c'était aussi simple... mais après deux heures de configuration et des paramètres corrects, chaque requête renvoie une erreur 400. » Un collègue : « Ah bon ? Ce n'est pas juste une question de modifier l'URL base_url ? » Moi : « Codex et Claude Code ne fonctionnent pas de la même manière. Bien qu'ils se ressemblent, leur architecture sous-jacente est différente. »

En vérité, ce chapitre est l'une des alertes les plus importantes de cette série. De nombreux guides expliquent comment connecter Codex à DeepSeek, mais la majorité omet un aspect technique crucial : l'intégration de tiers dans Codex repose sur une logique de protocole totalement différente de celle de Claude Code. Calquer votre expérience de Claude Code se soldera par des erreurs de protocole. Ce chapitre détaille ce point de blocage.

Ce que vous obtiendrez après avoir lu ce chapitre :

  • La distinction fondamentale entre l'intégration de tiers sous Codex et sous Claude Code (pour vous éviter des heures de recherche).
  • Un comparatif d'aide à la décision pour évaluer l'intérêt de connecter des modèles tiers à Codex.
  • Les avantages et inconvénients des deux méthodes d'intégration (modification manuelle du fichier config.toml ou passage par un proxy tiers).
  • Un modèle de configuration complet model_providers, la procédure de validation associée et le diagnostic des erreurs courantes.

01 La différence de gestion des modèles entre Codex et Claude Code

Retenez ce principe clé : sous Claude Code, le changement de modèle s'effectue via des variables d'environnement, tandis que sous Codex, il requiert la déclaration d'un fournisseur dans le fichier de configuration. De plus, Codex impose des contraintes strictes sur les protocoles d'API compatibles.

Détaillons le fonctionnement : Codex s'exécute localement dans votre terminal comme un client de développement. Il gère la lecture du code, l'appel des outils et le contexte, mais ne traite pas la réflexion de manière autonome. Pour chaque étape, il transmet une requête à un modèle de traitement (le modèle par défaut étant le modèle phare gpt-5.5 d'OpenAI, conformément à la documentation officielle).

Utiliser un modèle tiers consiste à modifier l'adresse de destination des requêtes de Codex pour l'orienter vers une autre API. Codex propose cette option de personnalisation :

Vous pouvez également orienter Codex vers tout fournisseur ou modèle compatible avec les protocoles Chat Completions ou Responses API pour répondre à vos besoins spécifiques. (Source : documentation officielle de Codex)

Analogie : Le format des prises électriques. Claude Code fonctionne comme un adaptateur universel : il suffit que l'API tierce présente une compatibilité avec le protocole Anthropic pour que la connexion s'établisse. Codex est plus restrictif sur le type de prise : il requiert uniquement les protocoles d'OpenAI (Chat Completions ou Responses API). Les modèles comme DeepSeek proposent des API compatibles OpenAI (Chat Completions), ce qui permet théoriquement d'établir la connexion. Cependant, un piège subsiste :

La documentation officielle de Codex stipule que le support de Chat Completions API est obsolète et sera retiré dans les prochaines versions. Codex oriente son architecture vers le protocole Responses API. Ce dernier étant un protocole récent propre à OpenAI, la majorité des plateformes tierces ne l'implémentent pas de manière complète.

C'est la raison du blocage mentionné en introduction : la compatibilité OpenAI annoncée par DeepSeek concerne le protocole Chat Completions classique et non le nouveau protocole Responses API requis par Codex.

💡 Résumé en une phrase : Claude Code utilise le protocole Anthropic via des variables d'environnement ; Codex utilise le protocole OpenAI (en privilégiant Responses API) via le fichier config.toml. Évitez de calquer la configuration de Claude Code sur Codex.


02 Faut-il connecter des modèles tiers à Codex ?

Voici l'analyse des avantages et inconvénients pour vous guider :

Connecter des modèles tiers à Codex présente un intérêt limité par rapport à Claude Code. Cette conclusion s'appuie sur trois facteurs :

  1. La compatibilité de protocole est plus incertaine sous Codex (comme détaillé au paragraphe 01), ce qui peut bloquer l'intégration.
  2. Les performances de code du modèle phare GPT-5.5 de Codex sur les tâches complexes et les refactorisations importantes restent supérieures à celles des modèles alternatifs tiers.
  3. La formule d'abonnement OpenAI (Plus ou Pro) inclut déjà le quota d'accès à Codex (voir chapitre 04). Connecter une API tierce facturée à l'usage représente donc un surcoût inutile si vous disposez déjà de cet abonnement.

Tableau comparatif des solutions :

CritèreModèles GPT officiels (par défaut)Modèles tiers / alternatifs (ex. : DeepSeek)
TarificationInclus dans l'abonnement ou facturation à l'usageÉconomique sur les volumes de requêtes standard
Accès réseauRequiert une connexion internet ouverteDirect, sans contraintes géographiques pour les modèles locaux
InstallationOpérationnelle dès la connexion du compte⚠️ Risques d'incompatibilité de protocole d'API
Qualité de codePerformances optimales (GPT-5.5)Adapté au code de routine, limites sur l'architecture complexe
Support techniqueSupport officiel completExpérimental, sans garantie de support
PérennitéGarantie par les mises à jour de l'outilLiée aux évolutions des protocoles et noms de modèles tiers

Contrairement aux conclusions sur Claude Code où l'usage de modèles tiers permet de réaliser des économies importantes, l'intégration sous Codex comporte des contraintes de protocole qui limitent la viabilité de cette solution.

Profils d'utilisateurs concernés :

  • Cas d'usage potentiel : développeurs réalisant de gros volumes de modifications simples de routine (code de base) souhaitant limiter les coûts de facturation de l'API, ou utilisateurs contraints par des limites d'accès géographique aux API officielles.
  • Profils non recommandés : utilisateurs disposant déjà d'un abonnement OpenAI (double facturation), développeurs traitant des tâches complexes d'architecture de code, ou personnes recherchant une configuration simple et stable.

Personnellement, j'utilise fréquemment DeepSeek avec Claude Code pour les tâches courantes, mais je conserve les modèles officiels sous Codex. L'instabilité des protocoles de connexion de Codex rend l'optimisation des coûts peu intéressante face au temps passé en maintenance de configuration.

💡 Résumé en une phrase : La connexion de modèles tiers à Codex comporte des risques d'incompatibilité de protocole. Sauf besoin spécifique d'accès local ou de gros volumes de code simple, privilégiez l'utilisation des modèles officiels d'OpenAI.


03 Deux approches d'intégration : configuration manuelle vs proxy de traduction

Si vous décidez d'intégrer un modèle tiers, vous devez choisir votre méthode d'accès.

Deux approches de connexion de modèles tiers à Codex : configuration de config.toml vs passage par un proxy local

Le schéma ci-dessus résume les choix : les deux méthodes mènent au même résultat, mais la gestion de la compatibilité des protocoles reste l'étape clé de l'intégration.

Approche 1 : Modification du fichier config.toml (méthode officielle)

Codex centralise ses paramètres dans le fichier utilisateur ~/.codex/config.toml (voir documentation officielle). Vous pouvez y déclarer vos propres fournisseurs de modèles.

Analogie : Enregistrer un nouveau contact dans votre répertoire. Par défaut, Codex communique uniquement avec OpenAI. Pour interroger DeepSeek, vous devez renseigner sa fiche de contact dans le fichier de configuration : son nom, l'URL de son API (base_url) et la variable d'environnement contenant sa clé d'accès (API Key). Vous indiquez ensuite à Codex d'utiliser ce nouveau contact par défaut.

Voici les clés de configuration de la section model_providers (voir documentation officielle) :

OptionRôle
model_providers.<id>.nameNom d'affichage du fournisseur personnalisé
model_providers.<id>.base_urlURL de l'API du fournisseur
model_providers.<id>.env_keyVariable d'environnement contenant la clé API
model_providers.<id>.wire_apiProtocole utilisé, seul le mode responses est supporté et configuré par défaut
model_provider (parent)Fournisseur actif sélectionné (par défaut openai)
model (parent)Modèle de traitement actif

Notez la valeur de l'option wire_api : la documentation officielle stipule que le protocole responses est le seul supporté. C'est la limite de cette approche : si l'API tierce ne gère que les requêtes Chat Completions classiques sans supporter le format Responses API d'OpenAI, cette méthode officielle échouera.

⚠️ DeepSeek propose une API compatible avec la structure d'OpenAI, mais celle-ci cible principalement le protocole Chat Completions standard. La compatibilité avec le protocole responses de Codex dépend des versions des API actives et doit être validée par vos soins.

Approche 2 : Utilisation d'un proxy tiers de traduction de protocole (communautaire)

Pour lever les blocages de compatibilité de protocole, la communauté utilise un proxy local agissant comme traducteur de requêtes. Codex envoie ses requêtes au format standard d'OpenAI au proxy local, qui les convertit au format accepté par DeepSeek, puis effectue la conversion inverse pour la réponse.

L'outil open source et multiplateforme CC Switch (disponible sur GitHub github.com/farion1231/cc-switch) applique cette méthode : il configure un proxy local sur votre machine qui redirige les appels de Codex vers le fournisseur tiers de votre choix en gérant la conversion de protocole de manière transparente.

Interface CC Switch

Après l'installation de CC Switch, accédez à la console et cliquez sur l'option de configuration des fournisseurs (« Add Provider »).

Menu de configuration des fournisseurs dans CC Switch

Sélectionnez Codex dans la liste des outils pris en charge sur la gauche pour afficher les paramètres associés sur la droite. Renseignez la clé API et sélectionnez le fournisseur tiers de destination (ex. : DeepSeek). CC Switch gère alors la traduction des flux réseau.

Sélection du fournisseur tiers dans CC Switch

CC Switch intègre des configurations pré-paramétrées pour les principaux fournisseurs tiers (DeepSeek, OpenRouter, etc.), vous évitant de renseigner manuellement les URL d'API.

Analogie : L'utilisation d'un interprète. Codex s'exprime en anglais (protocole OpenAI) et DeepSeek en français. L'approche 1 suppose que DeepSeek comprenne directement l'anglais (support de Responses API). L'approche 2 place un interprète (le proxy local) entre les deux pour traduire les échanges en temps réel.

Comparatif des deux approches :

CaractéristiqueApproche 1 : Configuration manuelleApproche 2 : Proxy local (ex. : CC Switch)
SupportMéthode officielle documentéeSolution communautaire tierce
CompatibilitéLiée au support du protocole responses par l'APITraduction transparente des requêtes par le proxy
ComplexitéModification manuelle du fichier TOMLInterface graphique simplifiée
DiagnosticParamètres visibles et modifiables directementCouche intermédiaire supplémentaire (boîte noire)
SouplesseConfiguration fixe par fichierChangement rapide de fournisseur via l'interface
Profil cibleUtilisateurs souhaitant comprendre le fonctionnementUtilisateurs recherchant une solution rapide à configurer

Choisissez l'approche 1 pour appréhender la configuration des flux de Codex, et privilégiez l'approche 2 (proxy) pour obtenir un résultat fonctionnel rapidement sans gestion des protocoles d'API.

💡 Résumé en une phrase : La configuration manuelle (approche 1) est transparente mais soumise aux contraintes de protocole de l'API. Le proxy local (approche 2) simplifie la connexion en traduisant les requêtes en arrière-plan.


04 Pratique : configuration manuelle du fichier config.toml

Voici la structure de configuration à appliquer dans le fichier utilisateur pour l'approche 1. La compatibilité de la réponse dépend de l'API du fournisseur tiers utilisé.

Le chemin d'accès au fichier est ~/.codex/config.toml sous macOS/Linux, et C:\Users\NomUtilisateur\.codex\config.toml sous Windows. Créez le dossier et le fichier s'ils n'existent pas.

Étape 1 : Obtenir une clé API DeepSeek

  1. Accédez à la console d'administration DeepSeek Platform et connectez-vous.
  2. Créez une nouvelle clé API et enregistrez-la dans un espace sécurisé (clé au format sk-xxxxxxxx).

🔑 Protégez votre clé API. Ne l'inscrivez pas en clair dans vos fichiers de configuration et ne la commitez pas sur Git. Nous allons l'appeler via une variable d'environnement.

Étape 2 : Déclarer la variable d'environnement

Associez votre clé à une variable d'environnement (ex. : DEEPSEEK_API_KEY) pour qu'elle soit lue par Codex sans apparaître en clair dans le fichier de configuration.

Sous macOS / Linux :

bash
export DEEPSEEK_API_KEY=<votre_cle_api_deepseek>

Sous Windows (PowerShell) :

powershell
$env:DEEPSEEK_API_KEY="<votre_cle_api_deepseek>"

Cette déclaration temporaire est active uniquement dans le terminal courant. Pour la rendre permanente, ajoutez la commande dans votre fichier d'initialisation de shell (~/.zshrc sous macOS, ~/.bashrc sous Linux) ou dans les propriétés système des variables d'environnement sous Windows.

Étape 3 : Configurer le fournisseur dans le fichier config.toml

Éditez le fichier ~/.codex/config.toml et ajoutez les lignes suivantes :

toml
# Configuration principale : associer le fournisseur et le modèle de traitement
model_provider = "deepseek"
model = "<nom_du_modele_de_deepseek>"

# Déclaration du fournisseur d'API personnalisé
[model_providers.deepseek]
name = "DeepSeek"
base_url = "<url_de_l_api_de_deepseek>"
env_key = "DEEPSEEK_API_KEY"   # Nom de la variable d'environnement configurée à l'étape 2
# L'option wire_api prend par défaut la valeur "responses" si non renseignée

Description des options :

  • model_provider = "deepseek" : indique à Codex d'utiliser le fournisseur personnalisé déclaré ci-dessous à la place d'OpenAI.
  • model : le nom du modèle de traitement à interroger (référez-vous à la documentation officielle de DeepSeek, les dénominations évoluant selon les versions).
  • [model_providers.deepseek] : la section de configuration du fournisseur associé à l'identifiant deepseek.
  • base_url : l'URL d'API de destination fournie par DeepSeek.
  • env_key : la clé de la variable d'environnement lue par Codex pour l'authentification.

Les identifiants internes openai, ollama et lmstudio étant réservés par le système, utilisez une dénomination personnalisée pour déclarer votre fournisseur.

💡 Résumé en une phrase : La configuration manuelle associe une variable d'environnement contenant la clé API à une section de fournisseur personnalisée déclarée dans config.toml.


05 Procédure de validation de la connexion

Une fois la configuration appliquée, validez le bon fonctionnement de la liaison avant de commencer le développement.

1. Vérification du modèle actif

Lancez Codex et utilisez la commande slash /permissions ou /model (voir chapitre 30) pour confirmer que le modèle personnalisé est détecté par l'interface.

bash
codex

Saisissez la commande suivante dans la console interactive :

bash
/model

Vous pouvez également forcer le modèle au démarrage en utilisant l'option -m (ex. : codex -m <nom_modele>).

2. Validation de la réponse

Envoyez une requête simple de test dans la console interactive pour confirmer la réception de la réponse :

text
Bonjour, confirme en une phrase que tu fonctionnes correctement.

Interprétation des retours :

Statut de retourCause probableAction corrective
Réponse correcte affichéeConnexion opérationnelleAucune, l'intégration est fonctionnelle
Code d'erreur 401Clé API invalide ou variable d'environnement non détectéeVérifier le nom de la variable env_key et la validité de la clé API
Code d'erreur 400Incompatibilité de protocole d'APILe fournisseur n'implémente pas Responses API. Passer à l'approche 2 (proxy)
Modèle non trouvéDénomination de modèle erronéeVérifier la clé model dans la documentation du fournisseur

Si une erreur 400 s'affiche, cela confirme l'incompatibilité de l'API du fournisseur avec le protocole Responses API de Codex. Inutile d'ajuster les paramètres de configuration : utilisez le proxy CC Switch (approche 2) pour contourner la restriction de protocole.

💡 Résumé en une phrase : Validez l'intégration avec la commande slash /model puis lancez une requête de test simple. Une erreur 401 indique un défaut de clé API, une erreur 400 signale une incompatibilité de protocole.


06 Optimisation de l'intensité du raisonnement pour les modèles tiers

Si la connexion est établie, vous pouvez ajuster l'intensité du raisonnement de votre modèle personnalisé pour maîtriser la consommation de vos jetons.

Configurez l'option model_reasoning_effort (valeurs compatibles : minimal, low, medium, high, xhigh) dans le fichier config.toml :

toml
model_reasoning_effort = "medium"

Analogie : Adapter le temps de réflexion. Configurer une intensité faible (low) convient aux modifications simples de routine (rapides et économiques). Réservez l'intensité élevée (high) aux développements complexes pour éviter de consommer inutilement des ressources de calcul sur des tâches simples.

Notez que certaines fonctionnalités natives de Codex (comme la recherche réseau basée sur les index d'OpenAI) peuvent présenter des comportements altérés ou indisponibles lors de l'utilisation de modèles tiers. Conservez ces limites à l'esprit lors du développement.

💡 Résumé en une phrase : Configurez l'option model_reasoning_effort sur medium par défaut pour optimiser vos coûts de traitement avec le modèle tiers.


Synthèse

Ce chapitre a présenté la méthodologie pour intégrer des modèles tiers dans Codex :

  • Le fonctionnement technique : Codex requiert la compatibilité avec les protocoles d'OpenAI (en privilégiant Responses API) et diffère de la gestion de Claude Code.
  • La prise de décision : connectez un modèle tiers si vous réalisez de gros volumes de code simple, et conservez les modèles officiels pour les tâches complexes.
  • Le choix de la méthode : la modification de config.toml (approche 1) est transparente mais sensible aux protocoles ; le proxy local (approche 2) simplifie la conversion des requêtes.
  • La configuration TOML : déclaration de la section model_providers associée aux variables d'environnement.
  • Le diagnostic de connexion : validation via la commande slash /model et interprétation des codes d'erreurs (401 pour la clé, 400 pour le protocole).

Vous êtes en mesure de : Évaluer l'opportunité d'intégrer un modèle tiers, choisir entre la configuration directe ou l'usage d'un proxy local, et structurer les paramètres de connexion associés.


Le chapitre suivant 〔06 Exécuter une première tâche〕 marque le début de la section pratique de ce guide : nous confierons une tâche de modification de code réelle à Codex pour analyser son comportement de développement.


Lectures recommandées