Codex et ChatGPT
Cette page s’adresse aux administrateurs qui veulent traduire avec les modèles Codex d’OpenAI. Libris propose deux façons de le faire :
| Type de provider | Connexion | Fonctionnement | Facturation |
|---|---|---|---|
| Codex · compte ChatGPT | Connexion officielle d’OpenAI par code d’appareil | La CLI Codex (app-server, version 0.160.0) dans un conteneur passerelle dédié | Votre abonnement ChatGPT et ses quotas |
| Codex / OpenAI · clé API (Responses) | Une clé d’API OpenAI Platform | Appels directs à l’API Responses d’OpenAI (POST /v1/responses) | Paiement à l’usage sur votre compte API |
Les deux utilisent le même pipeline de traduction que n’importe quel autre provider : mémoire, prompts, réponses structurées, glossaire, vérifications, historique et travaux reprenables.
Utiliser un compte ChatGPT
Démarrer la passerelle
La passerelle est un conteneur facultatif, codex, qui ne fait pas partie de l’image publiée : il est construit
à partir de l’arborescence des sources sur votre machine. Un .env généré par scripts/setup.py contient déjà
son jeton privé, CODEX_BRIDGE_TOKEN. Sur un .env plus ancien qui ne l’a pas, ajoutez-en d’abord un :
python3 scripts/enable_codex.py
Le script ajoute uniquement ce jeton dédié. Il ne lit ni ne copie jamais une connexion Codex qui existerait déjà sur la machine.
Construisez et démarrez ensuite la passerelle avec le reste de Libris :
./scripts/install-docker.sh --profile codex
ou, à la main :
docker compose --profile codex build codex
docker compose --profile codex up -d --no-build --wait
L’installateur écrit COMPOSE_PROFILES=codex dans .env : un simple docker compose pull ou up inclut donc la
passerelle, et une mise à jour ajoute la ligne à un .env plus ancien. Si vous gérez .env vous-même, gardez cette
ligne ou passez --profile codex à chaque commande docker compose, sinon la passerelle reste sur son ancienne image
ou ne démarre pas.
Libris vérifie que la passerelle tourne sur sa propre version. En cas d’écart, Paramètres › Providers LLM et la
connexion Codex affichent un avertissement avec la commande de mise à jour, /health répond
"codex_bridge": "mismatch" et librisctl doctor signale ce contrôle en échec. Une passerelle qui ne répond pas est
indiquée comme unknown et ne bloque rien.
Connecter le compte
Dans Paramètres › Providers LLM :
- Cliquez sur Nouveau provider et choisissez Codex · compte ChatGPT comme connexion.
- Donnez-lui un nom et cliquez sur Enregistrer. Le modèle pourra être choisi après la connexion.
- Cliquez sur Se connecter avec ChatGPT.
- Ouvrez le lien officiel d’OpenAI affiché, et saisissez-y le code temporaire.
- Si OpenAI refuse le code, activez la connexion par code d’appareil dans les paramètres de sécurité de votre compte ChatGPT (ou de votre espace de travail).
- Quand l’état passe à Connecté, cliquez sur Vérifier / détecter les modèles Codex.
- Choisissez un modèle dans la liste, puis cliquez sur Enregistrer.
- Sélectionnez ce provider dans la configuration des livres que vous voulez traduire avec lui.
Comme tout provider, il est partagé par tous les livres qui le sélectionnent. Pour plusieurs comptes ChatGPT, créez plusieurs providers : chacun a son propre répertoire personnel Codex et son propre processus Codex.
Déconnecter ce compte se déconnecte via l’API officielle de Codex. La connexion et la déconnexion sont refusées tant qu’un livre utilise le provider : mettez d’abord ces livres en pause. Si la session expire et ne peut pas être renouvelée, les livres du provider sont bloqués jusqu’à ce que quelqu’un se reconnecte.
Les connexions sont stockées dans le volume codex-state. Il contient des identifiants : protégez-le comme le
.env, et incluez-le dans vos sauvegardes si vous voulez éviter de vous reconnecter après une
restauration.
Limites de cette connexion
- Codex s’exécute chez OpenAI : ce n’est pas de l’inférence locale. Les quotas et les conditions de votre abonnement s’appliquent ; quand un quota est atteint, le livre attend (au moins une heure) et reprend de lui-même.
- La température et le top-p ne sont pas envoyés.
- La limite de sortie que vous réglez ne fait que réserver du budget dans Libris : Codex n’a pas d’équivalent de
max_output_tokens. - Les livres peuvent utiliser des conversations Codex distinctes en parallèle, dans la limite du réglage Livres simultanés du provider et des limites du worker. Mettre un livre en pause n’interrompt que l’appel de ce livre.
- Chaque appel démarre une conversation neuve et temporaire. La continuité entre les passages vient de la mémoire de Libris, pas d’un historique Codex.
- L’inspecteur de requêtes montre les messages que Libris a envoyés. Codex ajoute autour d’eux son propre
encadrement, que Libris ne peut pas voir ; ces requêtes sont marquées
upstream_prompt_managed_by_codex=true.
Utiliser une clé d’API OpenAI
Créez un provider de type Codex / OpenAI · clé API (Responses) avec :
Base URL : https://api.openai.com/v1
Clé API : votre clé OpenAI Platform
Modèle : un modèle Responses/Codex que votre compte peut utiliser
Ce type n’a pas besoin du conteneur passerelle. L’API est facturée séparément de tout abonnement ChatGPT. Saisissez les prix par million de jetons si vous voulez que Libris affiche les coûts.
Libris n’envoie aucun outil (tools=[], tool_choice=none), demande à OpenAI de ne pas stocker la réponse
(store=false) et utilise la sortie structurée (text.format). Seul le output_text final de la réponse devient
une traduction ; le raisonnement et les refus sont reconnus comme tels, et une réponse incomplète est rejetée.
Comment la passerelle est isolée
- La passerelle ne publie aucun port. Seuls les conteneurs du réseau Compose de Libris peuvent l’atteindre, et
chaque appel doit porter
CODEX_BRIDGE_TOKEN; sans jeton d’au moins 32 caractères, la passerelle refuse de démarrer. - Le conteneur n’a accès ni au volume des livres, ni aux fichiers de l’application, ni au socket Docker. Il
s’exécute sous un utilisateur non privilégié sur un système de fichiers en lecture seule ; seuls
codex-stateet une zone temporaire sont accessibles en écriture. - Le processus Codex reçoit un environnement filtré, sans le jeton de la passerelle ni aucun secret de base de données.
- Le shell, la recherche web, les outils d’image, les plugins, les applications et les sous-agents sont désactivés dans sa configuration. Toute demande de Codex d’exécuter un outil ou d’obtenir une approbation est refusée. Le raisonnement et les commentaires ne deviennent jamais des traductions.
Dépannage
| Message ou symptôme | Que faire |
|---|---|
| « Connecteur Codex non activé. Exécutez scripts/enable_codex.py puis redémarrez Compose. » | CODEX_BRIDGE_TOKEN manque dans le .env : exécutez python3 scripts/enable_codex.py, puis redémarrez avec --profile codex. |
| « Le connecteur Codex ne répond pas. Démarrez le profil Docker codex. » | Le conteneur codex ne tourne pas : docker compose --profile codex up -d --no-build --wait, puis docker compose logs codex. |
| L’état reste Compte non connecté | Terminez la connexion sur la page d’OpenAI, activez la connexion par code d’appareil si nécessaire, puis cliquez sur Vérifier / détecter les modèles Codex. |
| Les livres attendent avec un message de quota | La limite de votre abonnement est atteinte ; Libris reprendra plus tard de lui-même. Ajoutez un provider de secours pour continuer. |