Processus complet d'utilisation de Codex CLI dans AutoDL
Cette compétence aide les utilisateurs à utiliser directement Codex CLI sur un serveur distant AutoDL pour modifier et déboguer du code projet, évitant ainsi de télécharger des projets distants et des données volumineuses en local. Elle s'applique aux scénarios suivants :
- Le code et les données de l'utilisateur se trouvent sur le serveur distant AutoDL ;
- Les fichiers de données sont volumineux et ne se prêtent pas à un téléchargement local ;
- L'utilisateur souhaite que Codex lise le code distant, modifie les fichiers et exécute des tests directement ;
- Le serveur AutoDL ne peut pas accéder directement à
chatgpt.comouapi.openai.com; - Problèmes rencontrés lors de l'installation de Codex CLI : réseau, npm, PATH, gawk, validation SHA, etc.
1. Approche générale
Ne pas télécharger le projet depuis AutoDL sur votre machine locale avant de le modifier avec Codex. À la place :
- Ouvrir un proxy SSH inversé sur votre machine locale ;
- Permettre à AutoDL d'accéder à OpenAI via le proxy local ;
- Installer Codex CLI sur le serveur AutoDL ;
- Exécuter
codexdirectement dans le répertoire du projet sur AutoDL ; - Laisser Codex lire, modifier et exécuter le code directement sur le serveur distant.
L'objectif final est :
cd /autodl-tmp/votre_repertoire_projet
codex
2. Obtenir l'adresse SSH et le port d'AutoDL
Dans la console AutoDL, trouvez la commande de connexion SSH de l'instance actuelle.
Le format est généralement similaire à :
ssh -p 32384 [email protected]
Où :
[email protected]
est l'adresse AutoDL ;
-p 32384
est le port SSH.
Dans toutes les commandes suivantes, remplacez <PORT> par le port, par exemple 32384 ; <HOST> par l'adresse, par exemple connect.bjb2.seetacloud.com.
3. Ouvrir un proxy SSH inversé sur la machine locale
Si votre machine locale exécute déjà Clash, un VPN ou un autre proxy, et que le port du proxy local est 7890, alors, dans Windows PowerShell, CMD ou Git Bash local, exécutez :
ssh -N -R 7890:127.0.0.1:7890 -p <PORT> root@<HOST>
Exemple :
ssh -N -R 7890:127.0.0.1:7890 -p 32384 [email protected]
Saisissez le mot de passe SSH AutoDL.
Note :
- Lors de la saisie du mot de passe, le terminal n'affiche aucun caractère, ni
*; - Collez le mot de passe et appuyez directement sur Entrée ;
- Si la connexion réussit, la fenêtre reste bloquée, c'est normal ;
- Ne fermez pas cette fenêtre, elle maintient le tunnel du proxy entre AutoDL et votre machine locale.
Si le message suivant apparaît :
Permission denied
Cela signifie que le mot de passe est incorrect. Revenez à la console AutoDL pour copier le bon mot de passe SSH.
4. Définir les variables d'environnement du proxy dans AutoDL
Ouvrez un autre terminal, connectez-vous normalement à AutoDL via SSH, ou utilisez le terminal web d'AutoDL.
Une fois dans AutoDL, exécutez :
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
export all_proxy=socks5://127.0.0.1:7890
Testez ensuite le réseau :
curl -I https://chatgpt.com
curl -I https://api.openai.com
Si auparavant vous aviez :
Connection timed out
et que maintenant vous obtenez :
HTTP/1.1 200 Connection established
Cela signifie que le tunnel proxy est actif.
Si l'accès à chatgpt.com retourne :
HTTP/2 403
Cela indique généralement que la connexion au site a réussi, mais que la page elle-même est refusée par Cloudflare ou une politique d'accès – ce qui ne signifie pas nécessairement que le proxy a échoué. Continuez à tester le script d'installation de Codex ou api.openai.com.
5. Installer Codex CLI
Dans AutoDL, exécutez :
curl -fsSL https://chatgpt.com/codex/install.sh | sh
En cas de succès, vous verrez quelque chose comme :
Installing Codex CLI
Detected platform: Linux (x64)
Resolved version: ...
Installing standalone package ...
Codex CLI installed successfully.
6. Gérer les erreurs liées à gawk / validation SHA-256
Si, durant l'installation, vous rencontrez :
Could not find SHA-256 digest for codex-package-x86_64-unknown-linux-musl.tar.gz in codex-package_SHA256SUMS.
C'est souvent parce que l'awk par défaut du système n'est pas GNU awk, et que le script d'installation échoue à analyser le fichier SHA256SUMS.
Vérifiez d'abord :
awk --version
Si la sortie est :
awk: not an option: --version
Cela signifie que l'awk actuel n'est pas GNU awk.
N'utilisez pas :
bash awk --version
C'est une syntaxe erronée. awk est un binaire, pas un script shell.
Pour résoudre :
apt-get update
apt-get install -y gawk
Après installation, vérifiez :
gawk --version
awk --version
Si awk --version n'affiche toujours pas GNU Awk, basculez l'awk par défaut :
update-alternatives --install /usr/bin/awk awk /usr/bin/gawk 20
update-alternatives --set awk /usr/bin/gawk
Vérifiez à nouveau :
awk --version
Une fois correct, réinstallez Codex :
curl -fsSL https://chatgpt.com/codex/install.sh | sh
7. Gérer l'erreur "npm command not found"
Si en exécutant :
npm install -g @openai/codex
vous obtenez :
bash: npm: command not found
Cela signifie que l'environnement AutoDL n'a pas Node.js/npm.
Vous pouvez installer Node.js via conda :
conda install -c conda-forge nodejs -y
Vérifiez :
node -v
npm -v
Ensuite, configurez le proxy pour npm :
npm config set proxy http://127.0.0.1:7890
npm config set https-proxy http://127.0.0.1:7890
Puis installez Codex :
npm install -g @openai/codex
Si le script d'installation officiel a déjà fonctionné, la méthode npm n'est pas nécessaire.
8. Gérer l'erreur "codex command not found"
Après une installation réussie, si en exécutant :
codex --version
vous obtenez :
bash: codex: command not found
C'est généralement parce que le PATH du terminal actuel n'a pas été rafraîchi.
Exécutez d'abord :
export PATH=/root/.local/bin:$PATH
Puis vérifiez :
which codex
codex --version
Vous pouvez aussi utiliser le chemin complet :
/root/.local/bin/codex --version
Pour que codex soit utilisable à chaque ouverture de terminal, ajoutez-le à .bashrc :
echo 'export PATH=/root/.local/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
Vérifiez à nouveau :
codex --version
Normalement, vous devriez voir quelque chose comme :
codex-cli 0.141.0
9. Se connecter à Codex
AutoDL est généralement un environnement sans navigateur, utilisez donc la connexion par code :
codex login --device-auth
Codex affichera dans le terminal un lien de connexion et un code à usage unique.
Ouvrez le lien dans un navigateur sur votre machine locale, connectez-vous à ChatGPT, puis saisissez le code affiché dans le terminal.
Une fois connecté, AutoDL affichera :
Successfully logged in
Vous pouvez vérifier l'état de connexion :
codex login status
10. Lancer Codex dans le répertoire du projet AutoDL
Accédez au répertoire du projet :
cd /autodl-tmp/votre_repertoire_projet
Exemple :
cd /autodl-tmp/Tencent-Advertising-Algorithm-Competition
Lancez Codex :
codex
Ensuite, vous pouvez demander à Codex d'analyser et de modifier directement le code distant.
Première invitation recommandée :
Veuillez d'abord lire la structure du code de ce projet, sans lire l'ensemble du jeu de données. Aidez-moi à analyser le flux d'entraînement et les éventuels problèmes actuels. Ne modifiez pas encore les fichiers, donnez-moi d'abord les propositions de modification.
Si vous souhaitez qu'il modifie le code, vous pouvez dire :
Veuillez modifier le code en fonction de l'analyse précédente. Ne modifiez que les fichiers nécessaires, ne lisez pas l'ensemble du jeu de données, ne supprimez pas les données, les poids et les fichiers journaux. Après la modification, dites-moi quels fichiers ont été modifiés et comment les tester.
11. Règles d'utilisation sécurisée pour les grands projets de données
Les projets AutoDL contiennent souvent de grandes données, des poids de modèle, des journaux et des résultats d'expériences. Avant d'utiliser Codex, il est recommandé de créer un fichier AGENTS.md :
nano AGENTS.md
Écrivez-y :
# Description du projet
Ceci est un projet de machine learning exécuté sur un serveur AutoDL.
## Règles importantes
- Ne pas lire l'ensemble du jeu de données.
- Ne pas ouvrir les répertoires de gros fichiers (data, dataset, checkpoints, outputs, logs) sauf demande explicite de l'utilisateur.
- Si la vérification du format des données est nécessaire, ne lire que les 5 premières lignes ou demander à l'utilisateur de fournir un petit échantillon.
- Avant de modifier le code, expliquez d'abord quels fichiers vous allez modifier.
- Ne supprimer aucun fichier de données, poids de modèle, journal ou résultat d'expérience.
- Ne pas exécuter un entraînement complet, sauf si l'utilisateur le demande explicitement.
- Prioriser les tests légers, les vérifications syntaxiques ou les tests sur de petits échantillons.
Puis exécutez :
codex
12. Ordre recommandé des commandes complètes
Machine locale : Ouvrir le proxy inversé
ssh -N -R 7890:127.0.0.1:7890 -p <PORT> root@<HOST>
Laissez cette fenêtre ouverte.
Serveur AutoDL : Définir le proxy
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
export all_proxy=socks5://127.0.0.1:7890
Serveur AutoDL : Tester le réseau
curl -I https://chatgpt.com
curl -I https://api.openai.com
Serveur AutoDL : Réparer awk
apt-get update
apt-get install -y gawk
Serveur AutoDL : Installer Codex
curl -fsSL https://chatgpt.com/codex/install.sh | sh
Serveur AutoDL : Rafraîchir le PATH
export PATH=/root/.local/bin:$PATH
echo 'export PATH=/root/.local/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
Serveur AutoDL : Vérifier la version
codex --version
Serveur AutoDL : Se connecter
codex login --device-auth
Serveur AutoDL : Accéder au projet et lancer
cd /autodl-tmp/votre_repertoire_projet
codex
13. Dépannage rapide des problèmes courants
Problème 1 : curl: (28) Failed to connect to chatgpt.com
Cause : AutoDL ne peut pas accéder directement à ChatGPT.
Solution : Ouvrez un proxy SSH inversé sur la machine locale et définissez les variables d'environnement du proxy dans AutoDL.
Problème 2 : Impossible de coller le mot de passe SSH
Cause : La saisie du mot de passe SSH n'affiche aucun caractère.
Solution : Collez et appuyez directement sur Entrée. Si Permission denied apparaît, le mot de passe est incorrect.
Problème 3 : HTTP/1.1 200 Connection established suivi de HTTP/2 403
Cause : Le tunnel proxy est actif, mais le site cible a refusé la requête.
Solution : Continuez à tester le script d'installation ou api.openai.com ; ce n'est pas nécessairement un échec du proxy.
Problème 4 : npm: command not found
Cause : Node.js/npm n'est pas installé dans AutoDL.
Solution :
conda install -c conda-forge nodejs -y
Problème 5 : Could not find SHA-256 digest
Cause : L'awk par défaut du système n'est pas GNU awk, le script d'installation échoue à analyser le fichier de validation SHA.
Solution :
apt-get install -y gawk
Si nécessaire :
update-alternatives --install /usr/bin/awk awk /usr/bin/gawk 20
update-alternatives --set awk /usr/bin/gawk
Problème 6 : bash: codex: command not found
Cause : Codex est installé, mais le PATH du shell actuel n'a pas été rafraîchi.
Solution :
export PATH=/root/.local/bin:$PATH
source ~/.bashrc
Ou :
/root/.local/bin/codex --version
Problème 7 : Impossible d'ouvrir le navigateur lors de la connexion Codex
Cause : AutoDL est un environnement distant sans navigateur.
Solution :
codex login --device-auth
Effectuez la connexion par code sur le navigateur local.
14. Principes d'utilisation
Lors de l'utilisation de Codex dans AutoDL, respectez les principes suivants :
- Activez d'abord le proxy, puis utilisez Codex ;
- Ne fermez pas la fenêtre du proxy SSH inversé local ;
- Ne lancez pas Codex à la racine des grandes données ;
- Lancez Codex de préférence dans le répertoire du code du projet ;
- Utilisez
AGENTS.mdpour empêcher Codex de lire les grandes données ; - Avant de modifier le code, demandez d'abord une proposition à Codex ;
- Après modification, vérifiez avec
git diff; - Ne laissez pas Codex supprimer directement des données, poids ou résultats expérimentaux ;
- Avant un entraînement complet, demandez d'abord à Codex de faire un test sur un petit échantillon ;
- Chaque fois que vous rouvrez un terminal AutoDL, vérifiez que les variables de proxy et le PATH sont toujours présents.