Processo Completo para Usar o Codex CLI no AutoDL
Este Skill ajuda usuários a usar o Codex CLI diretamente em servidores remotos AutoDL para modificar e depurar código de projetos, evitando a necessidade de baixar projetos remotos e grandes dados para o computador local. Aplica-se aos seguintes cenários:
- O código e os dados do usuário estão no servidor remoto AutoDL;
- Arquivos de dados são grandes, inadequados para download local;
- O usuário deseja que o Codex leia o código remoto, modifique arquivos e execute testes diretamente;
- O servidor AutoDL não consegue acessar
chatgpt.comouapi.openai.comdiretamente; - Problemas de rede, npm, PATH, gawk, verificação SHA, etc., ao instalar o Codex CLI.
1. Ideia Geral
Não baixe o projeto do AutoDL para o computador local para que o Codex o modifique. Em vez disso:
- No computador local, crie um proxy reverso SSH;
- Faça o AutoDL acessar a OpenAI através do proxy local;
- Instale o Codex CLI no servidor AutoDL;
- Execute
codexdiretamente no diretório do projeto no AutoDL; - Deixe o Codex ler, modificar e executar código diretamente no servidor remoto.
O objetivo final é:
cd /autodl-tmp/seu_diretorio_do_projeto
codex
2. Obter Endereço SSH e Porta do AutoDL
No console do AutoDL, encontre o comando de login SSH da instância atual.
Geralmente o formato é:
ssh -p 32384 [email protected]
Onde:
[email protected]
É o endereço do AutoDL;
-p 32384
É a porta SSH.
Em todos os comandos subsequentes, substitua <PORT> pela porta, por exemplo 32384; e <HOST> pelo endereço, por exemplo connect.bjb2.seetacloud.com.
3. Criar Proxy Reverso SSH no Computador Local
Se o computador local já está usando Clash, VPN ou outro proxy, e a porta do proxy local é 7890, execute no Windows PowerShell, CMD ou Git Bash local:
ssh -N -R 7890:127.0.0.1:7890 -p <PORT> root@<HOST>
Exemplo:
ssh -N -R 7890:127.0.0.1:7890 -p 32384 [email protected]
Digite a senha SSH do AutoDL.
Nota:
- Ao digitar a senha, o terminal não mostrará nenhum caractere, nem
*; - Cole a senha e pressione Enter;
- Se o login for bem-sucedido, a janela ficará parada, o que é normal;
- Não feche esta janela, ela mantém o túnel do AutoDL para o proxy local.
Se aparecer:
Permission denied
A senha está errada; volte ao console AutoDL para copiar a senha SSH correta.
4. Configurar Variáveis de Ambiente do Proxy no AutoDL
Abra outro terminal, faça login SSH normal no AutoDL, ou use o terminal web do AutoDL.
Dentro do AutoDL, execute:
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
Depois, teste a rede:
curl -I https://chatgpt.com
curl -I https://api.openai.com
Se antes era:
Connection timed out
E agora aparece:
HTTP/1.1 200 Connection established
O túnel de proxy está funcionando.
Se o acesso a chatgpt.com retornar:
HTTP/2 403
Isso geralmente indica que a conexão com o site foi estabelecida, mas a página em si foi bloqueada pelo Cloudflare ou por políticas de acesso, o que não significa necessariamente falha de proxy. Continue testando o script de instalação do Codex ou api.openai.com.
5. Instalar o Codex CLI
No AutoDL, execute:
curl -fsSL https://chatgpt.com/codex/install.sh | sh
Se for bem-sucedido, você verá algo como:
Installing Codex CLI
Detected platform: Linux (x64)
Resolved version: ...
Installing standalone package ...
Codex CLI installed successfully.
6. Lidar com Erros de gawk / SHA-256
Se durante a instalação aparecer:
Could not find SHA-256 digest for codex-package-x86_64-unknown-linux-musl.tar.gz in codex-package_SHA256SUMS.
Geralmente, o awk padrão do sistema não é GNU awk, e o script de instalação falha ao analisar o SHA256SUMS.
Primeiro, verifique:
awk --version
Se a saída for:
awk: not an option: --version
O awk atual não é GNU awk.
Não use:
bash awk --version
Isso está incorreto. awk é um binário, não um script shell.
Correção:
apt-get update
apt-get install -y gawk
Após a instalação, verifique:
gawk --version
awk --version
Se awk --version ainda não for GNU Awk, alterne o awk padrão:
update-alternatives --install /usr/bin/awk awk /usr/bin/gawk 20
update-alternatives --set awk /usr/bin/gawk
Verifique novamente:
awk --version
Após a correção, reinstale o Codex:
curl -fsSL https://chatgpt.com/codex/install.sh | sh
7. Lidar com npm: Comando Não Encontrado
Se ao executar:
npm install -g @openai/codex
Aparecer:
bash: npm: command not found
O ambiente AutoDL não possui Node.js/npm.
Você pode instalar com conda:
conda install -c conda-forge nodejs -y
Verifique:
node -v
npm -v
Em seguida, configure o proxy para npm:
npm config set proxy http://127.0.0.1:7890
npm config set https-proxy http://127.0.0.1:7890
Depois, instale o Codex:
npm install -g @openai/codex
Se o script de instalação oficial já foi bem-sucedido, o método npm não é necessário.
8. Lidar com codex: Comando Não Encontrado
Após a instalação bem-sucedida, se ao executar:
codex --version
Aparecer:
bash: codex: command not found
Geralmente, o PATH do terminal atual não foi atualizado.
Primeiro, execute:
export PATH=/root/.local/bin:$PATH
Depois, verifique:
which codex
codex --version
Você também pode usar o caminho completo:
/root/.local/bin/codex --version
Para que o codex esteja disponível sempre que abrir o terminal, adicione ao .bashrc:
echo 'export PATH=/root/.local/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
Verifique novamente:
codex --version
Normalmente, mostrará algo como:
codex-cli 0.141.0
9. Fazer Login no Codex
O AutoDL geralmente é um ambiente sem navegador; use login com código de dispositivo:
codex login --device-auth
O Codex exibirá no terminal o link de login e um código de uso único.
No computador local, abra o link no navegador, faça login no ChatGPT e insira o código exibido no terminal.
Após o login bem-sucedido, o AutoDL mostrará:
Successfully logged in
Você pode verificar o status do login:
codex login status
10. Iniciar o Codex no Diretório do Projeto no AutoDL
Entre no diretório do projeto:
cd /autodl-tmp/seu_diretorio_do_projeto
Exemplo:
cd /autodl-tmp/Tencent-Advertising-Algorithm-Competition
Inicie o Codex:
codex
Em seguida, você pode fazer o Codex analisar e modificar o código remoto diretamente.
Primeiro prompt recomendado:
Por favor, leia a estrutura de código deste projeto primeiro, sem ler o conjunto de dados completo. Ajude-me a analisar o fluxo de treinamento e os possíveis problemas atuais. Não modifique arquivos ainda; primeiro, forneça um plano de modificação.
Se precisar que ele modifique o código, você pode dizer:
Por favor, modifique o código com base na análise anterior. Modifique apenas os arquivos necessários, não leia o conjunto de dados completo, não exclua dados, pesos e arquivos de log. Após a modificação, informe quais arquivos foram alterados e como testar.
11. Regras de Uso Seguro para Projetos com Grandes Dados
Projetos AutoDL geralmente contêm grandes dados, pesos de modelo, logs e resultados de experimentos. Antes de usar o Codex, é recomendável criar um AGENTS.md:
nano AGENTS.md
Escreva:
# Descrição do Projeto
Este é um projeto de machine learning executado em um servidor AutoDL.
## Regras Importantes
- Não leia o conjunto de dados completo.
- Não abra diretórios grandes como data, dataset, checkpoints, outputs, logs, a menos que o usuário solicite explicitamente.
- Se precisar verificar o formato dos dados, leia apenas as primeiras 5 linhas ou peça ao usuário uma amostra pequena.
- Antes de modificar o código, explique quais arquivos serão modificados.
- Não exclua nenhum arquivo de dados, peso de modelo, log ou resultado de experimento.
- Não execute o treinamento completo diretamente, a menos que o usuário solicite explicitamente.
- Priorize a execução de testes leves, verificação de sintaxe ou testes com amostras pequenas.
Depois, execute:
codex
12. Sequência de Comandos Recomendada
Computador Local: Criar Proxy Reverso
ssh -N -R 7890:127.0.0.1:7890 -p <PORT> root@<HOST>
Mantenha esta janela aberta.
Servidor AutoDL: Configurar 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
Servidor AutoDL: Testar Rede
curl -I https://chatgpt.com
curl -I https://api.openai.com
Servidor AutoDL: Corrigir awk
apt-get update
apt-get install -y gawk
Servidor AutoDL: Instalar Codex
curl -fsSL https://chatgpt.com/codex/install.sh | sh
Servidor AutoDL: Atualizar PATH
export PATH=/root/.local/bin:$PATH
echo 'export PATH=/root/.local/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
Servidor AutoDL: Verificar Versão
codex --version
Servidor AutoDL: Fazer Login
codex login --device-auth
Servidor AutoDL: Entrar no Projeto e Iniciar
cd /autodl-tmp/seu_diretorio_do_projeto
codex
13. Resumo de Problemas Comuns
Problema 1: curl: (28) Failed to connect to chatgpt.com
Causa: O AutoDL não consegue acessar o ChatGPT diretamente.
Solução: Crie um proxy reverso SSH no computador local e configure as variáveis de ambiente de proxy no AutoDL.
Problema 2: Ao digitar a senha SSH, não é possível colar
Causa: A entrada de senha SSH não exibe nenhum caractere.
Solução: Cole e pressione Enter diretamente. Se aparecer Permission denied, a senha está errada.
Problema 3: HTTP/1.1 200 Connection established seguido de HTTP/2 403
Causa: O túnel de proxy está funcionando, mas o site de destino recusou a solicitação atual.
Solução: Continue testando o script de instalação ou api.openai.com. Não significa necessariamente falha de proxy.
Problema 4: npm: command not found
Causa: Node.js/npm não está instalado no AutoDL.
Solução:
conda install -c conda-forge nodejs -y
Problema 5: Could not find SHA-256 digest
Causa: O awk padrão do sistema não é GNU awk, e o script de instalação falha ao analisar o arquivo de verificação SHA.
Solução:
apt-get install -y gawk
Se necessário:
update-alternatives --install /usr/bin/awk awk /usr/bin/gawk 20
update-alternatives --set awk /usr/bin/gawk
Problema 6: bash: codex: command not found
Causa: O Codex foi instalado com sucesso, mas o PATH do shell atual não foi atualizado.
Solução:
export PATH=/root/.local/bin:$PATH
source ~/.bashrc
Ou:
/root/.local/bin/codex --version
Problema 7: Ao fazer login no Codex, o navegador não abre
Causa: O AutoDL é um ambiente remoto sem navegador.
Solução:
codex login --device-auth
Complete o login com código de dispositivo no navegador do computador local.
14. Princípios de Uso
Ao usar o Codex no AutoDL, siga estes princípios:
- Configure o proxy primeiro, depois use o Codex;
- Não feche a janela do proxy reverso SSH local;
- Não inicie o Codex no diretório raiz de grandes dados;
- Prefira iniciar o Codex no diretório de código do projeto;
- Use
AGENTS.mdpara restringir o Codex de ler grandes dados; - Antes de modificar o código, peça ao Codex um plano;
- Após a modificação, verifique com
git diff; - Não deixe o Codex excluir dados, pesos ou resultados de experimentos diretamente;
- Antes do treinamento completo, peça ao Codex para fazer um teste com amostras pequenas;
- Cada vez que reabrir o terminal AutoDL, verifique se as variáveis de proxy e PATH ainda estão presentes.