Partager via


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

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.

Remarque

  • La recherche de fichiers peut ingérer jusqu’à 10 000 fichiers par assistant, soit 500 fois plus qu’auparavant. Elle est rapide, prend en charge les requêtes parallèles par le biais de recherches multithread, et propose des fonctionnalités améliorées de reclassement et de réécriture des requêtes.
    • Le magasin de vecteurs est un nouvel objet dans l’API. Une fois qu’un fichier est ajouté à un magasin vectoriel, il est automatiquement analysé, découpé en morceaux et incorporé, prêt à être recherché. Les magasins vectoriels peuvent être utilisés par tous les assistants et threads, ce qui simplifie la gestion des fichiers et la facturation.
  • Nous avons ajouté la prise en charge du paramètre tool_choice qui peut être utilisé pour forcer l’utilisation d’un outil spécifique (comme la recherche de fichiers, un interpréteur de code ou une fonction) dans une exécution donnée.

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

  • 2024-02-15-preview
  • 2024-05-01-preview

Types de fichiers pris en charge

Format de fichier Type 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 texte/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 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