Vollständiger Workflow zur Nutzung von Codex CLI auf AutoDL
Diese Skill hilft Benutzern, Codex CLI direkt auf einem AutoDL-Remote-Server zu verwenden, um Projektcode zu ändern und zu debuggen, ohne das Remote-Projekt und große Datenmengen lokal herunterladen zu müssen. Geeignet für folgende Szenarien:
- Der Code und die Daten des Benutzers befinden sich auf dem AutoDL-Remote-Server;
- Die Datendateien sind zu groß, um lokal heruntergeladen zu werden;
- Der Benutzer möchte, dass Codex Remote-Code direkt liest, Dateien ändert und Tests ausführt;
- Der AutoDL-Server kann nicht direkt auf
chatgpt.comoderapi.openai.comzugreifen; - Bei der Installation von Codex CLI treten Probleme mit Netzwerk, npm, PATH, gawk, SHA-Prüfung usw. auf.
1. Gesamtansatz
Laden Sie das Projekt nicht von AutoDL herunter, um es lokal von Codex ändern zu lassen, sondern:
- Richten Sie auf dem lokalen Computer einen SSH-Reverse-Proxy ein;
- Lassen Sie AutoDL über den lokalen Proxy auf OpenAI zugreifen;
- Installieren Sie Codex CLI auf dem AutoDL-Server;
- Führen Sie
codexdirekt im AutoDL-Projektverzeichnis aus; - Lassen Sie Codex den Code direkt auf dem Remote-Server lesen, ändern und ausführen.
Das ultimative Ziel ist:
cd /autodl-tmp/Ihr_Projektverzeichnis
codex
2. SSH-Adresse und Port von AutoDL abrufen
Suchen Sie in der AutoDL-Konsole den SSH-Anmeldebefehl für die aktuelle Instanz.
Das Format ist normalerweise ähnlich wie:
ssh -p 32384 [email protected]
Dabei ist:
[email protected]
die AutoDL-Adresse;
-p 32384
der SSH-Port.
Ersetzen Sie in allen folgenden Befehlen <PORT> durch den Port, z. B. 32384; und <HOST> durch die Adresse, z. B. connect.bjb2.seetacloud.com.
3. SSH-Reverse-Proxy auf dem lokalen Computer einrichten
Wenn der lokale Computer bereits Clash, VPN oder einen anderen Proxy verwendet und der lokale Proxystandardport 7890 ist, führen Sie in der lokalen Windows PowerShell, CMD oder Git Bash Folgendes aus:
ssh -N -R 7890:127.0.0.1:7890 -p <PORT> root@<HOST>
Beispiel:
ssh -N -R 7890:127.0.0.1:7890 -p 32384 [email protected]
Geben Sie das SSH-Passwort von AutoDL ein.
Hinweis:
- Bei der Eingabe des Passworts zeigt das Terminal keine Zeichen und auch kein
*an; - Fügen Sie das Passwort ein und drücken Sie Enter;
- Wenn die Anmeldung erfolgreich ist, bleibt das Fenster hängen – das ist normal;
- Schließen Sie dieses Fenster nicht, es hält den Tunnel von AutoDL zum lokalen Proxy aufrecht.
Wenn Folgendes angezeigt wird:
Permission denied
ist das Passwort falsch. Gehen Sie zurück zur AutoDL-Konsole, um das richtige SSH-Passwort zu kopieren.
4. Proxy-Umgebungsvariablen auf AutoDL setzen
Öffnen Sie ein anderes Terminal, melden Sie sich normal per SSH bei AutoDL an oder verwenden Sie das Webterminal von AutoDL.
Führen Sie nach dem Einloggen in AutoDL Folgendes aus:
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
Testen Sie dann das Netzwerk:
curl -I https://chatgpt.com
curl -I https://api.openai.com
Wenn vorher Folgendes angezeigt wurde:
Connection timed out
und jetzt Folgendes:
HTTP/1.1 200 Connection established
bedeutet dies, dass der Proxytunnel funktioniert.
Wenn der Zugriff auf chatgpt.com Folgendes zurückgibt:
HTTP/2 403
bedeutet dies normalerweise, dass die Verbindung zur Website hergestellt wurde, aber die Website selbst von Cloudflare oder einer Zugriffsrichtlinie blockiert wird – das bedeutet nicht unbedingt einen Proxy-Fehler. Testen Sie stattdessen das Codex-Installationsskript oder api.openai.com.
5. Codex CLI installieren
Führen Sie auf AutoDL Folgendes aus:
curl -fsSL https://chatgpt.com/codex/install.sh | sh
Bei Erfolg sehen Sie eine Ausgabe wie:
Installing Codex CLI
Detected platform: Linux (x64)
Resolved version: ...
Installing standalone package ...
Codex CLI installed successfully.
6. Fehler bei gawk / SHA-256-Prüfung beheben
Wenn während der Installation Folgendes erscheint:
Could not find SHA-256 digest for codex-package-x86_64-unknown-linux-musl.tar.gz in codex-package_SHA256SUMS.
ist in der Regel das standardmäßige awk nicht GNU awk, und das Installationsskript kann die SHA256SUMS-Datei nicht parsen.
Überprüfen Sie zuerst:
awk --version
Wenn die Ausgabe lautet:
awk: not an option: --version
ist das aktuelle awk nicht GNU awk.
Verwenden Sie nicht:
bash awk --version
Das ist eine falsche Schreibweise. awk ist ein Binärprogramm, kein Shell-Skript.
Behebung:
apt-get update
apt-get install -y gawk
Überprüfen Sie nach der Installation:
gawk --version
awk --version
Wenn awk --version immer noch nicht GNU Awk ist, wechseln Sie den Standard-awk:
update-alternatives --install /usr/bin/awk awk /usr/bin/gawk 20
update-alternatives --set awk /usr/bin/gawk
Überprüfen Sie erneut:
awk --version
Wenn alles in Ordnung ist, installieren Sie Codex neu:
curl -fsSL https://chatgpt.com/codex/install.sh | sh
7. Fehler npm command not found beheben
Wenn Sie Folgendes ausführen:
npm install -g @openai/codex
und Folgendes erscheint:
bash: npm: command not found
fehlt in der aktuellen AutoDL-Umgebung Node.js/npm.
Sie können es mit conda installieren:
conda install -c conda-forge nodejs -y
Überprüfen Sie:
node -v
npm -v
Setzen Sie dann den Proxy für npm:
npm config set proxy http://127.0.0.1:7890
npm config set https-proxy http://127.0.0.1:7890
Installieren Sie dann Codex:
npm install -g @openai/codex
Wenn das offizielle Installationsskript bereits erfolgreich war, ist der npm-Ansatz nicht erforderlich.
8. Fehler codex command not found beheben
Wenn nach erfolgreicher Installation Folgendes ausgeführt wird:
codex --version
aber Folgendes erscheint:
bash: codex: command not found
ist in der Regel der PATH des aktuellen Terminals nicht aktualisiert.
Führen Sie zuerst Folgendes aus:
export PATH=/root/.local/bin:$PATH
Überprüfen Sie dann:
which codex
codex --version
Sie können auch den vollständigen Pfad verwenden:
/root/.local/bin/codex --version
Damit codex bei jedem Öffnen des Terminals verfügbar ist, schreiben Sie es in .bashrc:
echo 'export PATH=/root/.local/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
Überprüfen Sie erneut:
codex --version
Normalerweise wird dann etwas wie Folgendes angezeigt:
codex-cli 0.141.0
9. Bei Codex anmelden
AutoDL hat normalerweise keine Browserumgebung, daher sollten Sie sich mit einem Gerätecode anmelden:
codex login --device-auth
Codex zeigt im Terminal den Anmeldelink und einen einmaligen Code an.
Öffnen Sie den Link im Browser Ihres lokalen Computers, melden Sie sich bei ChatGPT an und geben Sie den im Terminal angezeigten Code ein.
Nach erfolgreicher Anmeldung wird auf AutoDL Folgendes angezeigt:
Successfully logged in
Sie können den Anmeldestatus überprüfen:
codex login status
10. Codex im AutoDL-Projektverzeichnis starten
Wechseln Sie in das Projektverzeichnis:
cd /autodl-tmp/Ihr_Projektverzeichnis
Beispiel:
cd /autodl-tmp/Tencent-Advertising-Algorithm-Competition
Starten Sie Codex:
codex
Danach kann Codex den Remote-Code direkt analysieren und ändern.
Empfohlener erster Prompt:
Bitte lesen Sie zuerst die Code-Struktur dieses Projekts, lesen Sie nicht den vollständigen Datensatz. Helfen Sie mir, den Trainingsablauf und mögliche aktuelle Probleme zu analysieren. Ändern Sie noch keine Dateien, geben Sie mir zuerst einen Änderungsvorschlag.
Wenn Sie möchten, dass es den Code ändert, können Sie sagen:
Bitte ändern Sie den Code gemäß der vorherigen Analyse. Ändern Sie nur die notwendigen Dateien, lesen Sie nicht den vollständigen Datensatz, löschen Sie keine Daten, Gewichte und Protokolldateien. Teilen Sie mir nach der Änderung mit, welche Dateien geändert wurden und wie getestet werden kann.
11. Sicherheitsregeln für große Datenprojekte
AutoDL-Projekte enthalten oft große Datenmengen, Modellgewichte, Protokolle und Experimentergebnisse. Es wird empfohlen, vor der Verwendung von Codex eine AGENTS.md zu erstellen:
nano AGENTS.md
Schreiben Sie Folgendes hinein:
# Projektbeschreibung
Dies ist ein maschinelles Lernprojekt, das auf einem AutoDL-Server läuft.
## Wichtige Regeln
- Lesen Sie nicht den vollständigen Datensatz.
- Öffnen Sie keine großen Dateiverzeichnisse wie data, dataset, checkpoints, outputs, logs, es sei denn, der Benutzer fordert es ausdrücklich an.
- Wenn Sie das Datenformat überprüfen müssen, lesen Sie nur die ersten 5 Zeilen oder bitten Sie den Benutzer, eine kleine Stichprobe bereitzustellen.
- Erklären Sie vor dem Ändern von Code, welche Dateien Sie ändern möchten.
- Löschen Sie keine Datendateien, Modellgewichte, Protokolle oder Experimentergebnisse.
- Führen Sie kein vollständiges Training direkt aus, es sei denn, der Benutzer fordert es ausdrücklich an.
- Führen Sie vorzugsweise leichte Tests, Syntaxprüfungen oder Tests mit kleinen Stichproben durch.
Führen Sie dann Folgendes aus:
codex
12. Empfohlene vollständige Befehlsfolge
Lokaler Computer: Reverse-Proxy einrichten
ssh -N -R 7890:127.0.0.1:7890 -p <PORT> root@<HOST>
Lassen Sie dieses Fenster geöffnet.
AutoDL-Server: Proxy setzen
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
AutoDL-Server: Netzwerk testen
curl -I https://chatgpt.com
curl -I https://api.openai.com
AutoDL-Server: awk reparieren
apt-get update
apt-get install -y gawk
AutoDL-Server: Codex installieren
curl -fsSL https://chatgpt.com/codex/install.sh | sh
AutoDL-Server: PATH aktualisieren
export PATH=/root/.local/bin:$PATH
echo 'export PATH=/root/.local/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
AutoDL-Server: Version überprüfen
codex --version
AutoDL-Server: Anmelden
codex login --device-auth
AutoDL-Server: In das Projekt wechseln und starten
cd /autodl-tmp/Ihr_Projektverzeichnis
codex
13. Häufige Probleme – Schnellübersicht
Problem 1: curl: (28) Failed to connect to chatgpt.com
Ursache: AutoDL kann nicht direkt auf ChatGPT zugreifen.
Lösung: Richten Sie auf dem lokalen Computer einen SSH-Reverse-Proxy ein und setzen Sie die Proxy-Umgebungsvariablen auf AutoDL.
Problem 2: Das Einfügen des SSH-Passworts funktioniert nicht
Ursache: Die SSH-Passworteingabe zeigt keine Zeichen an.
Lösung: Fügen Sie das Passwort ein und drücken Sie Enter. Nur wenn Permission denied erscheint, ist das Passwort falsch.
Problem 3: Nach HTTP/1.1 200 Connection established erscheint HTTP/2 403
Ursache: Der Proxytunnel ist durchlässig, aber die Zielwebsite hat die aktuelle Anfrage abgelehnt.
Lösung: Testen Sie weiter das Installationsskript oder api.openai.com – das bedeutet nicht unbedingt einen Proxy-Fehler.
Problem 4: npm: command not found
Ursache: Auf AutoDL ist Node.js/npm nicht installiert.
Lösung:
conda install -c conda-forge nodejs -y
Problem 5: Could not find SHA-256 digest
Ursache: Das standardmäßige awk des Systems ist nicht GNU awk, das Installationsskript kann die SHA-Prüfdatei nicht parsen.
Lösung:
apt-get install -y gawk
Falls nötig:
update-alternatives --install /usr/bin/awk awk /usr/bin/gawk 20
update-alternatives --set awk /usr/bin/gawk
Problem 6: bash: codex: command not found
Ursache: Codex wurde erfolgreich installiert, aber der PATH der aktuellen Shell wurde nicht aktualisiert.
Lösung:
export PATH=/root/.local/bin:$PATH
source ~/.bashrc
Oder:
/root/.local/bin/codex --version
Problem 7: Beim Codex-Login kann der Browser nicht geöffnet werden
Ursache: AutoDL ist eine entfernte Umgebung ohne Browser.
Lösung:
codex login --device-auth
Schließen Sie die Gerätecode-Anmeldung im lokalen Browser ab.
14. Nutzungsprinzipien
Bei der Verwendung von Codex auf AutoDL sollten die folgenden Prinzipien beachtet werden:
- Zuerst den Proxy einrichten, dann Codex verwenden;
- Schließen Sie das lokale SSH-Reverse-Proxy-Fenster nicht;
- Starten Sie Codex nicht im Stammverzeichnis großer Datenmengen;
- Starten Sie Codex vorzugsweise im Projekt-Code-Verzeichnis;
- Verwenden Sie
AGENTS.md, um Codex daran zu hindern, große Datenmengen zu lesen; - Lassen Sie sich vor dem Ändern von Code zuerst einen Vorschlag von Codex geben;
- Überprüfen Sie Änderungen mit
git diff; - Lassen Sie Codex keine Daten, Gewichte oder Experimentergebnisse direkt löschen;
- Führen Sie vor dem vollständigen Training zuerst kleine Stichprobentests mit Codex durch;
- Überprüfen Sie bei jedem erneuten Öffnen des AutoDL-Terminals, ob die Proxy-Variablen und der PATH noch vorhanden sind.