Azure OpenAI Assistants Intérprete de Código (Vista preliminar) (Clásico)

Solo se aplica a:Portal de Foundry (clásico). Este artículo no está disponible para el nuevo portal de Foundry. Obtenga más información sobre el nuevo portal.

Nota

Los vínculos de este artículo pueden abrir contenido en la nueva documentación de Microsoft Foundry en lugar de la documentación de Foundry (clásico) que está viendo ahora.

Nota

La API de Asistentes está obsoleta y será retirada el 26 de agosto de 2026. Utiliza el servicio Microsoft Foundry Agents generalmente disponible. Sigue la guía de migración para actualizar tus cargas de trabajo. Más información.

El intérprete de código permite que la API de los Asistentes escriba y ejecute código Python en un entorno de ejecución aislado. Con el intérprete de código habilitado, el Asistente puede ejecutar código de forma iterativa para resolver problemas de análisis de datos, matemáticas y código más complicados. Cuando el Asistente escribe código que no se puede ejecutar, puede iterar en este código modificando y ejecutando código diferente hasta que la ejecución del código se realice correctamente.

Importante

El intérprete de código tiene cargos adicionales además de las tarifas basadas en tokens para el uso de Azure OpenAI. Si el Asistente llama al intérprete de código simultáneamente en dos subprocesos diferentes, se crean dos sesiones de intérprete de código. Cada sesión está activa de forma predeterminada durante 1 hora con un tiempo de espera de inactividad de 30 minutos.

Compatibilidad con el intérprete de código

Modelos compatibles

La página de modelos contiene la información más actualizada sobre regiones/modelos donde se admiten los asistentes y el intérprete de código.

Se recomienda usar asistentes con los modelos más recientes para aprovechar las nuevas características, ventanas de contexto más grandes y datos de entrenamiento más recientes.

Versiones de API

  • A partir de 2024-02-15-preview

Tipos de archivo admitidos

Formato de archivo Tipo MIME
.c text/x-c
.cpp text/x-c++
.csv application/csv
.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
.jpeg image/jpeg
.jpg image/jpeg
.js text/javascript
.gif imagen/gif
.png image/png
.tar application/x-tar
.ts application/typescript
.xlsx application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.xml application/xml o "text/xml"
.zip application/zip

Referencia de la API de subida de archivos

Los asistentes usan la misma API para la carga de archivos y para el ajuste fino. Al cargar un archivo, debe especificar un valor adecuado para el parámetro de propósito.

Habilitación del intérprete 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"}]
)

Carga de un archivo para el intérprete 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]}}
)

Pasar el archivo a un subproceso individual

Además de hacer que los archivos sean accesibles a nivel de permisos para asistentes, puede transferir archivos para que solo sean accesibles para un hilo determinado.

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" 
    }
  ]
)

Descarga de archivos generados por el intérprete de código

Los archivos generados por el intérprete de código se pueden encontrar en las respuestas de mensajes del Asistente.

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

Puede descargar estos archivos generados pasando los archivos a la API files:

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)

Consulte también