Azure OpenAI Assistants Code Interpreter (préversion) (classique)

S’applique uniquement à :le portail classique Foundry. Cet article n’est pas disponible pour le nouveau portail Foundry. En savoir plus sur le nouveau portail.

Note

Les liens de cet article peuvent ouvrir du contenu dans la nouvelle documentation Microsoft Foundry au lieu de la documentation Foundry (classique) que vous affichez maintenant.

Note

L’API des assistants est obsolète et sera retirée le 26 août 2026. Utilisez le service Microsoft Foundry Agents, généralement disponible. Suivez le guide de migration pour mettre à jour vos charges de travail. En savoir plus.

L’interpréteur de code permet à l’API Assistants d’écrire et d’exécuter Python code dans un environnement d’exécution en bac à sable. Une fois l’interpréteur de code activé, votre Assistant peut exécuter du code de manière itérative pour résoudre des problèmes de code, de mathématiques et d’analyse des données plus difficiles. Lorsque votre Assistant écrit du code qui ne parvient pas à s’exécuter, il peut itérer sur ce code en modifiant et en exécutant un code différent jusqu’à ce que l’exécution du code réussisse.

Important

L’interpréteur de code a des frais additionnels au-delà des frais basés sur les jetons pour l’utilisation d’Azure OpenAI. Si votre Assistant appelle simultanément l’interpréteur de code dans deux threads différents, deux sessions d’interpréteur de code sont créées. Chaque session est active par défaut pendant 1 heure avec un délai d’inactivité de 30 minutes.

Support pour l’interpréteur de code

Modèles pris en charge

La page modèles contient les informations les plus up-to-date sur les régions/modèles où les Assistants et l’interpréteur de code sont pris en charge.

Nous vous recommandons d’utiliser des assistants avec les derniers modèles pour tirer parti des nouvelles fonctionnalités, des grandes fenêtres de contexte et des données d'entraînement plus à jour.

Versions de l’API

  • À partir de 2024-02-15-preview

Types de fichiers pris en charge

Format de fichier MIME Type
.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 texte/brut
.css text/css
.jpeg image/jpeg
.jpg image/jpeg
.js text/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 « text/xml »
.zip application/zip

Informations de référence sur l’API de chargement de fichiers

Les assistants utilisent la même API pour le chargement de fichiers que pour l'ajustement fin. Lors du chargement d’un fichier, vous devez spécifier une valeur appropriée pour le paramètre d’objectif.

Activer l’interpréteur de code

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

Charger un fichier pour l’interpréteur de code

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

Transmettre un fichier à un thread individuel

En plus de rendre les fichiers accessibles au niveau Assistants, vous pouvez transmettre des fichiers afin qu’ils soient uniquement accessibles à un thread particulier.

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

Télécharger des fichiers générés par l’interpréteur de code

Les fichiers générés par l’interpréteur de code se trouvent dans les réponses aux messages de l’Assistant

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

Vous pouvez télécharger ces fichiers générés en transmettant les fichiers à l’API de fichiers :

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)

Voir aussi