Source docs/codex.fr.md · 1de96aa

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 providerConnexionFonctionnementFacturation
Codex · compte ChatGPTConnexion officielle d’OpenAI par code d’appareilLa 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 PlatformAppels 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 :

  1. Cliquez sur Nouveau provider et choisissez Codex · compte ChatGPT comme connexion.
  2. Donnez-lui un nom et cliquez sur Enregistrer. Le modèle pourra être choisi après la connexion.
  3. Cliquez sur Se connecter avec ChatGPT.
  4. Ouvrez le lien officiel d’OpenAI affiché, et saisissez-y le code temporaire.
  5. 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).
  6. Quand l’état passe à Connecté, cliquez sur Vérifier / détecter les modèles Codex.
  7. Choisissez un modèle dans la liste, puis cliquez sur Enregistrer.
  8. 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-state et 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ômeQue 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 quotaLa limite de votre abonnement est atteinte ; Libris reprendra plus tard de lui-même. Ajoutez un provider de secours pour continuer.

Références