Partage via


Interpréteur de code Assistants Azure OpenAI (Préversion)

Remarque

Le service Azure AI Foundry Agent est désormais en disponibilité générale, qui fournit plus d’outils et de meilleures fonctionnalités d’entreprise. Nous vous recommandons d’utiliser le nouveau service pour les dernières mises à jour et améliorations des fonctionnalités.

L’Interpréteur de code permet à l’API Assistants d’écrire et d’exécuter du code Python dans un environnement d’exécution sandbox. Une fois l’Interpréteur de code activé, votre assistant peut exécuter du code de manière itérative pour résoudre du code, des mathématiques et des problèmes d’analyse de données plus complexes. Quand votre assistant écrit du code qui ne s’exécute pas, il peut itérer sur ce code en modifiant et en exécutant un autre code jusqu’à la réussite de l’exécution du code.

Important

L’Interpréteur de code comporte des frais supplémentaires au-delà des frais basés sur le jeton pour l’utilisation d’Azure OpenAI. Si votre assistant appelle l’Interpréteur de code simultanément dans deux threads distincts, deux sessions d’interpréteur de code sont créées. Chaque session est active pendant une heure par défaut.

Prise en charge de l’interpréteur de code

Modèles pris en charge

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

Nous vous conseillons d’utiliser des assistants avec les modèles les plus récents pour tirer parti des nouvelles fonctionnalités, des fenêtres contextuelles plus grandes et d’autres données d’apprentissage à jour.

Versions des API

  • À partir de 2024-02-15-preview

Types de fichiers pris en charge

Format de fichier Type MIME
c. text/x-c
.Rpc text/x-c++
.csv application/csv
.docx application/vnd.openxmlformats-officedocument.wordprocessingml.document
.html texte/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 texte/css
.jpeg image/jpeg
.jpg image/jpeg
.js text/javascript
.gif image/gif
.png image au format 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 et la précision du réglage. Quand vous chargez 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

Outre l’accessibilité des fichiers au niveau d’Assistants, vous pouvez transmettre des fichiers pour les rendre disponibles dans 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 sont disponibles dans les réponses d’un message 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 des 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