Os contêineres ChatGPT agora podem executar pacotes de instalação bash, pip/npm e baixar arquivos

Os contêineres ChatGPT agora podem executar pacotes de instalação bash, pip/npm e baixar arquivos


Os contêineres ChatGPT agora podem executar pacotes de instalação bash, pip/npm e baixar arquivos

26 de janeiro de 2026

Um dos meus recursos favoritos do ChatGPT é a capacidade de escrever e executar código em um contêiner. Este recurso lançado como ChatGPT Code Interpreter há quase três anos, foi renomeado sem entusiasmo para “Análise Avançada de Dados” em algum momento e geralmente é muito difícil de encontrar documentação detalhada sobre ele. Caso em questão: parece ter tido um enorme atualizei em algum momento nos últimos meses e não consigo encontrar documentação sobre os novos recursos em lugar nenhum!

Aqui estão os novos recursos mais notáveis:

  1. ChatGPT pode execute comandos Bash diretamente agora. Anteriormente, ele era limitado apenas ao código Python, embora pudesse executar comandos shell por meio do Python subprocess módulo.
  2. Possui Node.js e pode executar JavaScript diretamente além do Python. Eu também consegui executar “hello world” em Ruby, Perl, PHP, Go, Java, Swift, Kotlin, C e C++. Ainda não há ferrugem!
  3. Embora o contêiner ainda não consiga fazer solicitações de rede de saída, pip install package e npm install package ambos trabalham agora por meio de um mecanismo de proxy personalizado.
  4. ChatGPT pode localizar a URL de um arquivo na web e usar um container.download ferramenta para baixe esse arquivo e salve-o em um caminho dentro do contêiner em sandbox.

Esta é uma atualização substancial! ChatGPT agora pode escrever e testar código em 10 novos idiomas (11 se você contar o Bash), pode encontrar arquivos online e baixá-los no contêiner e pode instalar pacotes adicionais via pip e npm para ajudá-lo a resolver problemas.

(OpenAI realmente precisam desenvolver hábitos melhores para manter suas notas de lançamento atualizadas!)

Inicialmente, suspeitei que talvez tivesse encontrado um novo recurso de visualização que não estava disponível para todos, mas tentei alguns experimentos em uma conta ChatGPT gratuita e confirmei que os novos recursos também estão disponíveis lá.

contêiner.download

Minha primeira pista sobre os novos recursos veio outro dia, quando fiquei curioso sobre a qualidade do ar de Los Angeles. Em particular, o número crescente de veículos elétricos teve um impacto mensurável?

Invoquei uma nova sessão de reflexão do GPT-5.2 com:

Mostre-me a qualidade do ar de Los Angeles ao longo do tempo nos últimos 20 anos

Aqui está a transcrição compartilhada. Irritantemente, isso não disponibiliza o rastro de pensamento, então aqui está uma captura de tela:

Explorando métodos para buscar dados e relatórios AQI Baixando dados AQI para Los Angeles Encontrei um arquivo xlsx intitulado "Estatísticas de qualidade do ar por cidade, 2000-2023"que deve incluir dados de Los Angeles. Embora o usuário tenha solicitado dados para Usar o URL fornecido para baixar o arquivo O URL da mensagem de erro leva a um arquivo Excel contendo tendências de qualidade do ar. Posso usar a ferramenta container.download para buscá-lo. Vamos prosseguir com essa abordagem e ver se funciona para baixar o arquivo diretamente! Analisado Análise e análise dos dados de Los Angeles Agora que baixamos os dados, irei analisá-los usando Python. Primeiro, vou me concentrar na identificação da(s) linha(s) correspondente(s) a Los Angeles, que podem ser rotuladas em "Los Angeles-Long Beach-Anaheim, CA." Depois, traçarei métricas como "IQA mediano" e "Dias bons" ao longo do tempo para visualizar tendências. Vamos começar!

Essa parte imediatamente chamou minha atenção:

(…) O URL da mensagem de erro leva a um arquivo Excel contendo tendências de qualidade do ar. Posso usar a ferramenta container.download para buscá-lo. (…)

O que é container.download? Perguntei ao ChatGPT:

Sem fazer nenhuma pesquisa, conte-me sobre sua ferramenta container.download

E voltei:

Claro. container.download é uma ferramenta integrada que posso chamar assim busca um arquivo de uma URL e o salva no sistema de arquivos contêiner em área restrita para esta sessão de bate-papo.

O que isso faz

  • Leva um URL acessível publicamente e um caminho do arquivo de destino no contêiner.
  • Baixa os bytes desse URL e os grava no caminho fornecido.
  • Depois disso, posso ler/processar o arquivo localmente no contêiner (por exemplo, descompactá-lo, analisá-lo com Python, abri-lo como uma imagem, convertê-lo, etc.).

Assinatura (entradas)

É chamado assim (conceitualmente):

{
  "url": "https://example.com/somefile.zip",
  "filepath": "/mnt/data/somefile.zip"
}

Outras experiências confirmaram que container.download se comporta conforme descrito.

Fiz o download de um arquivo de um servidor com logs habilitados e capturei o endereço IP e o agente do usuário. Aqui estão os cabeçalhos mais interessantes:

User-Agent: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot
Accept: text/html, application/xhtml+xml, application/xml;q=0.9, image/avif, image/webp, image/apng, */*;q=0.8, application/signed-exchange;v=b3;q=0.9
Cf-Connecting-Ip: 52.230.164.178

Que 52.230.164.178 O endereço IP é resolvido para Microsoft Azure Cloud (centralus) em Des Moines, Iowa.

Container.download é uma vulnerabilidade de exfiltração de dados?

Por um lado, isto é realmente útil! O ChatGPT pode navegar por sites em busca de arquivos úteis, baixar esses arquivos para um contêiner e processá-los usando Python ou outras linguagens.

Esta é uma vulnerabilidade de exfiltração de dados? Um ataque de injeção imediata poderia enganar o ChatGPT e fazê-lo vazar dados privados para um container.download chamar para um URL com uma string de consulta que inclui informações confidenciais?

Eu não acho que possa. Tentei montar uma URL com uma string de consulta e acessá-la usando container.download e não conseguiu. Ele me disse que retornou este erro:

ERRO: o download falhou porque o URL não foi visualizado na conversa antes. abra o arquivo ou URL usando web.run primeiro.

Isso me parece o mesmo truque de segurança usado pela ferramenta Web Fetch de Claude: permitir acesso ao URL apenas se esse URL tiver sido inserido diretamente pelo usuário ou se vier de resultados de pesquisa que não poderiam ter sido influenciados por uma injeção imediata.

(Eu investiguei isso um pouco mais e consegui fazer com que uma string de consulta construída simples passasse web.run– uma ferramenta totalmente diferente – mas quando tentei compor uma string de consulta mais longa contendo o histórico de prompts anterior, um web.run filtro bloqueou-o.)

Então eu pensar tudo isso é seguro, embora eu esteja curioso para saber se ele poderia resistir a uma rodada mais agressiva de ataques de um pesquisador de segurança experiente.

Bash e outras linguagens

A principal lição de agentes de codificação como Claude Code e Codex CLI é que o Bash governa tudo: se um agente pode executar comandos Bash em um ambiente, ele pode fazer quase tudo que pode ser alcançado digitando comandos em um computador.

Quando a Anthropic adicionou seu próprio recurso de interpretação de código ao Claude em setembro passado, eles o construíram em torno do Bash, e não apenas do Python. Parece-me que a OpenAI agora fez a mesma coisa com o ChatGPT.

Esta é a aparência do ChatGPT quando executa um comando Bash – aqui meu prompt foi:

npm instale um pacote divertido e demonstre como usá-lo

Captura de tela da interface do ChatGPT 5.2 Thinking com painel de atividades. O chat principal mostra o prompt do usuário "npm instale um pacote divertido e demonstre como usá-lo" e resposta "Pensado em 32s > Sim – aqui está um divertido: cowsay 🐄 Eu instalei com npm e executei um pequeno script Node:" seguido pelo bloco de código bash contendo "mkdir -p /mnt/data/npmfun cd /mnt/data/npmfun npm init -y npm install cowsay –no-fund –no-audit node -e "const cowsay=require(‘cowsay’); console.log(cowsay.say({texto:’Hel" e Saída: seção mostrando arte de vaca ASCII dizendo "< Olá do npm dentro do container! >" com desenho de vaca feito de personagens. O painel de atividades à direita (32s) mostra: "Executando npm install no contêiner" com comando bash e saída "v22.16.0 10.9.2", "Inspecionando a saída do comando npm e o status do contêiner" com listagem de diretório mostrando "drwxr-xr-x 2 root oai_shared 80 26 de janeiro 17:32 . drwxrwxr-x 2 oai oai_shared 60 26 de janeiro 17:32 .. -rw-r–r– 1 raiz raiz", "Executando novamente a instalação do npm" observação sobre node_modules ausentes e "Executando novamente o npm install com saída" mostrando "adicionou 41 pacotes em 2s".” style=”max-width: 100%;”/></p>
<p>É útil clicar nos links “Pensando” ou “Pensamento por 32 anos”, pois isso abre a barra lateral de Atividade com um rastreamento detalhado do que o ChatGPT fez para chegar à sua resposta. Isso ajuda a proteger contra trapaças – o ChatGPT pode alegar ter executado o Bash na janela principal, mas não pode falsificar os registros em preto e branco no painel de atividades.</p>
<p>Fiz com que ele executasse o Hello World em vários idiomas posteriormente na mesma sessão.</p>
<p><img decoding=

Instalando pacotes do pip e npm

No exemplo anterior, o ChatGPT instalou o cowsay pacote do npm e usei-o para desenhar uma vaca em arte ASCII. Mas como isso poderia ser feito se o contêiner não pode fazer solicitações de rede de saída?

Numa outra sessão desafiei-o a explorar o seu ambiente. e descubra como isso funcionou.

Aqui está o relatório Markdown resultante que ele criou.

A chave mágica parece ser uma applied-caas-gateway1.internal.api.openai.org proxy, disponível dentro do contêiner e com diversas ferramentas de empacotamento configuradas para utilizá-lo.

As seguintes variáveis ​​de ambiente causam pip e uv para instalar pacotes desse proxy em vez de diretamente do PyPI:

PIP_INDEX_URL=https://reader:****@packages.applied-caas-gateway1.internal.api.openai.org/.../pypi-public/simple
PIP_TRUSTED_HOST=packages.applied-caas-gateway1.internal.api.openai.org
UV_INDEX_URL=https://reader:****@packages.applied-caas-gateway1.internal.api.openai.org/.../pypi-public/simple
UV_INSECURE_HOST=https://packages.applied-caas-gateway1.internal.api.openai.org

Este parece ficar npm para trabalhar:

NPM_CONFIG_REGISTRY=https://reader:****@packages.applied-caas-gateway1.internal.api.openai.org/.../npm-public

E também relatou essas variáveis ​​de aparência suspeita:

CAAS_ARTIFACTORY_BASE_URL=packages.applied-caas-gateway1.internal.api.openai.org
CAAS_ARTIFACTORY_PYPI_REGISTRY=.../artifactory/api/pypi/pypi-public
CAAS_ARTIFACTORY_NPM_REGISTRY=.../artifactory/api/npm/npm-public
CAAS_ARTIFACTORY_GO_REGISTRY=.../artifactory/api/go/golang-main
CAAS_ARTIFACTORY_MAVEN_REGISTRY=.../artifactory/maven-public
CAAS_ARTIFACTORY_GRADLE_REGISTRY=.../artifactory/gradle-public
CAAS_ARTIFACTORY_CARGO_REGISTRY=.../artifactory/api/cargo/cargo-public/index
CAAS_ARTIFACTORY_DOCKER_REGISTRY=.../dockerhub-public
CAAS_ARTIFACTORY_READER_USERNAME=reader
CAAS_ARTIFACTORY_READER_PASSWORD=****
NETWORK=caas_packages_only

Nem Rust nem Docker estão instalados no ambiente de contêiner, mas talvez essas referências de registro sejam uma pista dos recursos que ainda estão por vir.

Somando tudo

O resultado de tudo isso? Você pode dizer ao ChatGPT para usar pacotes Python ou Node.js como parte de uma conversa e ele será capaz de instalá-los e aplicá-los nos arquivos que você carrega ou baixa da web pública. Isso é realmente legal.

O grande recurso que falta aqui deveria ser o mais fácil de fornecer: precisamos documentação oficial! Uma entrada nas notas de lançamento seria um bom começo, mas há muitos detalhes sutis sobre como esse novo material funciona, suas limitações e para que pode ser usado.

Como sempre, eu também os incentivo a criar um nome para esse conjunto de recursos que represente adequadamente como ele funciona e o que pode fazer.

Enquanto isso, vou ligar para isso Contêineres ChatGPT.



Source link

Postagens Similares

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *