Azure OpenAI Assistants Code Interpreter (Preview) (clássico)

Aplica-se apenas a:Portal Foundry (clássico). Este artigo não está disponível para o novo portal da Foundry. Saiba mais sobre o novo portal.

Nota

Os links neste artigo podem abrir conteúdo na nova documentação do Microsoft Foundry em vez da documentação do Foundry (clássico) que está a ver agora.

Nota

A API dos Assistentes está obsoleta e será retirada a 26 de agosto de 2026. Use o serviço geralmente disponível Microsoft Foundry Agents. Siga o guia de migração para atualizar as suas cargas de trabalho. Saiba mais.

O Interpretador de Código permite que a API dos Assistentes escreva e execute código Python num ambiente de execução sandbox. Com o Interpretador de Código ativado, o seu Assistente pode executar código iterativamente para resolver problemas mais desafiantes de código, matemática e análise de dados. Quando o seu Assistente escreve código que falha em correr, pode iterar sobre esse código modificando e executando código diferente até que a execução do código tenha sucesso.

Importante

Code Interpreter tem custos adicionais além das taxas baseadas em tokens para o uso do Azure OpenAI. Se o seu Assistente chamar o Interpretador de Código simultaneamente em dois threads diferentes, são criadas duas sessões de interpretador de código. Cada sessão está ativa por defeito durante 1 hora, com um tempo limite de inatividade de 30 minutos.

Suporte a interpretadores de código

Modelos suportados

Página de modelos contém as informações mais atualizadas sobre regiões/modelos onde os Assistentes e o interpretador de código são suportados.

Recomendamos o uso de assistentes com os modelos mais recentes para tirar partido das novas funcionalidades, janelas de contexto maiores e dados de treino mais atualizados.

Versões API

  • Começando em 2024-02-15-preview

Tipos de ficheiros suportados

Formato de ficheiro Tipo MIME
.c Texto/X-C
.cpp Texto/X-C++
.csv Application/CSV
.docx application/vnd.openxmlformats-officedocument.wordprocessingml.document
.html text/html
.java Text/X-Java
.json application/json
.md Texto/Markdown
.pdf Aplicação/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 texto/sem formatação
.css text/css
.jpeg image/jpeg
.jpg image/jpeg
.js Texto/JavaScript
.gif image/gif
.png image/png
.tar Application/X-TAR
.ts Application/TypeScript
.xlsx application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.xml Application/XML ou "Texto/XML"
.zip application/zip

Referência da API de upload de ficheiros

Os assistentes usam a mesma API tanto para o carregamento de ficheiros quanto para o ajuste fino. Ao carregar um ficheiro, tem de especificar um valor apropriado para o parâmetro de propósito.

Ativar Interpretador de Código

from openai import AzureOpenAI
    
client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
    api_version="2024-05-01-preview",
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    )

assistant = client.beta.assistants.create(
  instructions="You are an AI assistant that can write code to help answer math questions",
  model="<REPLACE WITH MODEL DEPLOYMENT NAME>", # replace with model deployment name. 
  tools=[{"type": "code_interpreter"}]
)

Carregar ficheiro para o Interpretador de Código

from openai import AzureOpenAI
    
client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
    api_version="2024-05-01-preview",
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    )

# Upload a file with an "assistants" purpose
file = client.files.create(
  file=open("speech.py", "rb"),
  purpose='assistants'
)

# Create an assistant using the file ID
assistant = client.beta.assistants.create(
  instructions="You are an AI assistant that can write code to help answer math questions.",
  model="gpt-4-1106-preview",
  tools=[{"type": "code_interpreter"}],
  tool_resources={"code_interpreter":{"file_ids":[file.id]}}
)

Passar ficheiro para um tópico individual

Além de tornar os ficheiros acessíveis ao nível dos Assistentes, podes passar ficheiros para que só sejam acessíveis a um determinado tópico.

from openai import AzureOpenAI
    
client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
    api_version="2024-05-01-preview",
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    )

thread = client.beta.threads.create(
  messages=[
    {
      "role": "user",
      "content": "I need to solve the equation `3x + 11 = 14`. Can you help me?",
      "file_ids": ["file.id"] # file id will look like: "assistant-R9uhPxvRKGH3m0x5zBOhMjd2" 
    }
  ]
)

Descarregar ficheiros gerados pelo Interpretador de Código

Ficheiros gerados pelo Code Interpreter podem ser encontrados nas respostas de mensagens do Assistente

 {
      "id": "msg_oJbUanImBRpRran5HSa4Duy4",
      "assistant_id": "asst_eHwhP4Xnad0bZdJrjHO2hfB4",
      "content": [
        {
          "image_file": {
            "file_id": "assistant-1YGVTvNzc2JXajI5JU9F0HMD"
          },
          "type": "image_file"
        },
        # ...
 }

Pode descarregar estes ficheiros gerados passando-os para a API de ficheiros:

from openai import AzureOpenAI
    
client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
    api_version="2024-05-01-preview",
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    )

image_data = client.files.content("assistant-abc123")
image_data_bytes = image_data.read()

with open("./my-image.png", "wb") as file:
    file.write(image_data_bytes)

Ver também