For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navegação principal
Theme

Code Interpreter

Permita que os modelos escrevam e executem código Python para resolver problemas.

Com a ferramenta Code Interpreter, os modelos podem escrever e executar código Python em um ambiente isolado para resolver problemas complexos em áreas como análise de dados, programação e matemática. Use a ferramenta para:

  • Processar arquivos com diferentes tipos de dados e formatações
  • Gerar arquivos com dados e imagens de gráficos
  • Escrever e executar código de forma iterativa para resolver problemas. Por exemplo, se o código que o modelo escreveu falhar na execução, ele pode reescrevê-lo e executá-lo novamente até que funcione
  • Inspecionar imagens com o modelo gpt-6-astra. Com o Code Interpreter, é possível usar Python para recortar, ampliar ou girar imagens, ou para ler pixels individuais.

Veja um exemplo de como chamar a API Responses usando o Code Interpreter como ferramenta:

Usar a API Responses com o Code Interpreter
curl https://api.openai.com/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "gpt-6-astra",
    "tools": [{
      "type": "code_interpreter",
      "container": { "type": "auto", "memory_limit": "4g" }
    }],
    "instructions": "You are a personal math tutor. When asked a math question, write and run code using the python tool to answer the question.",
    "input": "I need to solve the equation 3x + 11 = 14. Can you help me?"
  }'

Chamamos essa ferramenta de Code Interpreter, mas o modelo a conhece como “python tool”. Em geral, os modelos entendem prompts que mencionam o interpretador de código. A forma mais explícita de acionar a ferramenta é pedir que o modelo use a “python tool” no prompt.

Contêineres

A ferramenta Code Interpreter requer um objeto de contêiner. Um contêiner é uma máquina virtual totalmente isolada na qual o modelo pode executar código Python. Ele pode armazenar tanto os arquivos que você envia quanto os que o modelo gera.

Você pode criar contêineres de forma automática ou explícita.

  1. Modo automático: como no exemplo acima, passe a propriedade "container": { "type": "auto", "memory_limit": "4g", "file_ids": ["file-1", "file-2"] } na configuração da ferramenta ao criar um objeto Response. A ferramenta cria um contêiner automaticamente ou reutiliza um contêiner ativo usado por um item code_interpreter_call anterior no contexto do modelo. Se você omitir memory_limit, o contêiner terá o limite padrão de 1 GB. Procure o item code_interpreter_call na saída dessa solicitação à API para encontrar o container_id do contêiner criado ou reutilizado.
  2. Modo explícito: crie um contêiner usando o endpoint v1/containers e informe o memory_limit necessário (por exemplo, "memory_limit": "4g"). Em seguida, use o id do contêiner como valor de container na configuração da ferramenta no objeto Response. Por exemplo:
Criar um contêiner explicitamente
curl https://api.openai.com/v1/containers \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
        "name": "My Container",
        "memory_limit": "4g"
      }'

# Use the returned container id in the next call:
curl https://api.openai.com/v1/responses \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-6-astra",
    "tools": [{
      "type": "code_interpreter",
      "container": "cntr_abc123"
    }],
    "tool_choice": "required",
    "input": "use the python tool to calculate what is 4 * 3.82. and then find its square root and then find the square root of that result"
  }'

Você pode escolher entre 1g (padrão), 4g, 16g e 64g. As opções de maior capacidade oferecem mais RAM para a sessão. A cobrança segue os preços das ferramentas integradas para o Code Interpreter. O memory_limit escolhido vale por toda a vida útil do contêiner, seja ele criado automaticamente ou pela API de contêineres.

Você também pode acessar os contêineres criados no modo automático pelo endpoint /v1/containers.

Expiração

Recomendamos enfaticamente que você trate os contêineres como temporários e armazene nos seus próprios sistemas todos os dados relacionados ao uso da ferramenta. Veja como funciona a expiração:

  • O contêiner expira após 20 minutos de inatividade. Depois disso, qualquer tentativa de usá-lo em v1/responses falhará. Você ainda poderá consultar um registro dos metadados do contêiner no momento da expiração, mas todos os dados associados a ele serão descartados dos nossos sistemas e não poderão ser recuperados. Baixe os arquivos de que você possa precisar enquanto o contêiner estiver ativo.
  • Não é possível reativar um contêiner expirado. Crie um novo contêiner e envie os arquivos novamente. Todo o estado mantido na memória do contêiner anterior, incluindo objetos Python, será perdido.
  • Qualquer operação no contêiner, como consultá-lo, adicionar arquivos ou excluí-los, atualiza automaticamente o horário registrado em last_active_at.

Trabalhar com arquivos

Ao usar o Code Interpreter, o modelo pode criar seus próprios arquivos. Por exemplo, se você pedir um gráfico ou um arquivo CSV, o modelo criará o arquivo diretamente no seu contêiner. Na mensagem seguinte, o modelo cita os arquivos criados em annotations. Veja um exemplo:

{
  "id": "msg_682d514e268c8191a89c38ea318446200f2610a7ec781a4f",
  "content": [
    {
      "annotations": [
        {
          "file_id": "cfile_682d514b2e00819184b9b07e13557f82",
          "index": null,
          "type": "container_file_citation",
          "container_id": "cntr_682d513bb0c48191b10bd4f8b0b3312200e64562acc2e0af",
          "end_index": 0,
          "filename": "cfile_682d514b2e00819184b9b07e13557f82.png",
          "start_index": 0
        }
      ],
      "text": "Here is the histogram of the RGB channels for the uploaded image. Each curve represents the distribution of pixel intensities for the red, green, and blue channels. Peaks toward the high end of the intensity scale (right-hand side) suggest a lot of brightness and strong warm tones, matching the orange and light background in the image. If you want a different style of histogram (e.g., overall intensity, or quantized color groups), let me know!",
      "type": "output_text",
      "logprobs": []
    }
  ],
  "role": "assistant",
  "status": "completed",
  "type": "message"
}

Para baixar os arquivos gerados, chame o método para obter o conteúdo de um arquivo do contêiner.

Todos os arquivos incluídos na entrada do modelo são enviados automaticamente ao contêiner. Você não precisa enviá-los separadamente.

Enviar e baixar arquivos

Adicione arquivos ao contêiner usando o endpoint Criar arquivo no contêiner. Ele aceita um upload multipart ou um corpo JSON com um file_id. Use Listar arquivos do contêiner para consultar os arquivos existentes e Obter conteúdo de um arquivo do contêiner para baixar o conteúdo em bytes.

Trabalhar com citações

As referências aos arquivos e às imagens que o modelo gera aparecem como anotações na mensagem do assistente. As anotações do tipo container_file_citation apontam para arquivos criados no contêiner e incluem os campos container_id, file_id e filename. Você pode ler essas anotações para exibir links de download ou processar os arquivos de outras maneiras.

Arquivos compatíveis

Formato de arquivo Tipo MIME
.c text/x-c
.cs text/x-csharp
.cpp text/x-c++
.csv text/csv
.doc application/msword
.docx application/vnd.openxmlformats-officedocument.wordprocessingml.document
.html text/html
.java text/x-java
.json application/json
.md text/markdown
.pdf application/pdf
.php text/x-php
.pptx application/vnd.openxmlformats-officedocument.presentationml.presentation
.py text/x-python
.py text/x-script.python
.rb text/x-ruby
.tex text/x-tex
.txt text/plain
.css text/css
.js text/javascript
.sh application/x-sh
.ts application/typescript
.csv application/csv
.jpeg image/jpeg
.jpg image/jpeg
.gif image/gif
.pkl application/octet-stream
.png image/png
.tar application/x-tar
.xlsx application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.xml application/xml or "text/xml"
.zip application/zip

Observações sobre o uso

Disponibilidade por APILimites de taxaObservações
100 solicitações por minuto por organização

Preços
ZDR e residência de dados