Partage via


Démarrage rapide : Prise en main des Assistants Azure OpenAI (préversion)

Les Assistants Azure OpenAI (préversion) vous permettent de créer des assistants IA adaptés à vos besoins par le biais d’instructions personnalisées et augmentées par des outils avancés tels que l’interpréteur de code et les fonctions personnalisées.

Prérequis

Accéder à Azure OpenAI Studio

Accédez à Azure OpenAI Studio sur https://oai.azure.com/ et connectez-vous avec les informations d’identification qui ont accès à votre ressource OpenAI. Pendant ou après le flux de travail de connexion, sélectionnez le répertoire approprié, l’abonnement Azure et la ressource Azure OpenAI.

À partir de la page de destination d’Azure OpenAI Studio, lancez le terrain de jeu de l’Assistant à partir du volet de navigation de gauche Terrain de jeu>Assistants (préversion)

Capture d’écran de la page d’accueil d’Azure OpenAI Studio.

Terrain de jeu

Le terrain de jeu Assistants vous permet d’explorer, de prototyper et de tester des assistants IA sans exécuter de code. À partir de cette page, vous pouvez rapidement itérer et expérimenter les nouvelles idées.

Capture d’écran de l’écran de configuration de l’Assistant sans toutes les valeurs renseignées.

Configuration de l’assistant

Utilisez le volet d’installation de l’Assistant pour créer un assistant IA ou sélectionner un assistant existant.

Nom Description
Nom de l’Assistant Votre nom de déploiement associé à un modèle spécifique.
Instructions Les instructions sont similaires aux messages système, c’est là que vous fournissez des instructions sur le comportement du modèle et tout contexte qu’il doit référencer lorsqu’il génère une réponse. Vous pouvez décrire la personnalité de l’assistant, lui dire ce qu’il doit et ne doit pas répondre, et lui indiquer comment formater les réponses. Vous pouvez également fournir des exemples des mesures à prendre lorsqu’il répond aux réponses.
Déploiement C’est là que vous définissez le modèle de déploiement à utiliser avec votre assistant.
Fonctions Créer des définitions de fonction personnalisées pour les modèles afin de formuler des appels d’API et des sorties de données de structure en fonction de vos spécifications
Interpréteur de code L’interpréteur de code fournit un accès à un environnement Python en bac à sable qui peut être utilisé pour permettre au modèle de tester et d’exécuter du code.
Fichiers Vous pouvez charger jusqu’à 20 fichiers d’une taille de fichier maximale de 512 Mo à utiliser avec des outils.

Outils

Un assistant individuel peut accéder à jusqu’à 128 outils, notamment code interpreter, ainsi qu’à n’importe quel outil personnalisé que vous créez par le biais de fonctions.

Session de conversation instantanée

La session de conversation, également appelée thread, dans l’API de l’Assistant est l’endroit où la conversation entre l’utilisateur et l’Assistant a lieu. Contrairement aux appels de saisie semi-automatique de conversation traditionnels, il n’existe aucune limite au nombre de messages dans un thread. L’assistant compresse automatiquement les demandes pour qu’elles correspondent à la limite du jeton d’entrée du modèle.

Cela signifie également que vous ne contrôlez pas le nombre de jetons passés au modèle pendant chaque tour de la conversation. La gestion des jetons est abstraite et entièrement gérée par l’API Assistants.

Sélectionnez le bouton Effacer la conversation pour supprimer l’historique actuel des conversations.

Vous trouverez deux boutons sous la zone de saisie du texte :

  • Ajouter un message sans exécution.
  • Ajouter et exécuter.

Journaux d’activité

Les journaux fournissent un cliché instantané détaillé de l’activité de l’API Assistant.

Afficher les panneaux

Par défaut, il y a trois panneaux : configuration de l’assistant, session de conversation et journaux d’activité. La fonctionnalité Afficher les panneaux vous permet d’ajouter, de supprimer et de réorganiser les panneaux. Si jamais vous fermez un panneau et que vous avez besoin de le récupérer, utilisez Afficher les panneaux pour restaurer le panneau perdu.

Créez votre premier assistant.

  1. Dans le menu déroulant Configuration de l’Assistant, sélectionnez Nouveau.

  2. Nommez votre Assistant.

  3. Entrez les instructions suivantes : « Vous êtes un assistant IA capable d’écrire du code pour répondre aux questions mathématiques ».

  4. Sélectionnez un déploiement de gpt-4 (1106-preview). Le menu déroulant affiche les noms de vos déploiements personnalisés. Par conséquent, si les noms de vos modèles/déploiements diffèrent, vous devez choisir un déploiement dans lequel le modèle sous-jacent équivaut au modèle 1106-preview.

  5. Sélectionnez le bouton bascule qui active l’interpréteur de code.

  6. Sélectionnez Enregistrer.

    Capture d’écran de l’Assistant avec les détails de configuration entrés.

  7. Entrez une question à laquelle l’assistant doit répondre : « J’ai besoin de résoudre l’équation 3x + 11 = 14. Pouvez-vous m’aider ? ».

  8. Sélectionnez le bouton Ajouter et exécuter.

    The solution to the equation (3x + 11 = 14) is (x = 1).
    

    Bien que nous puissions voir que cette réponse est correcte, nous poserons une autre question dans le but de confirmer que le modèle a utilisé l’interpréteur de code pour accéder à cette réponse et que le code qu’il a écrit est valide, au lieu de répéter une réponse provenant des données de formation du modèle.

  9. Entrez la question de suivi : « Montrez-moi le code que vous avez exécuté pour obtenir cette réponse. ».

    Certainly! Here's the Python code I ran to find the solution for the equation (3x + 11 = 14):
    
    from sympy import symbols, Eq, solve  
    
    # Define the variable  
    x = symbols('x')  
    
    # Define the equation  
    equation = Eq(3*x + 11, 14)  
    
    # Solve the equation  
    solution = solve(equation, x)  
    solution  
    

Capture d’écran de la session de conversation dans le terrain de jeu Assistant.

Vous pouvez également consulter les journaux d’activité dans le volet de droite pour vérifier que l’interpréteur de code a été utilisé et pour valider le code exécuté pour générer la réponse. Il est important de ne pas oublier que si l’interpréteur de code donne au modèle la possibilité de répondre à des questions mathématiques plus complexes en convertissant les questions en code et en s’exécutant dans un environnement Python en bac à sable, vous devez toujours valider la réponse pour confirmer que le modèle a correctement traduit votre question en une représentation valide dans le code.

Nettoyer les ressources

Si vous voulez nettoyer et supprimer une ressource Azure OpenAI, vous pouvez supprimer la ressource ou le groupe de ressources. La suppression du groupe de ressources efface également les autres ressources qui y sont associées.

Voir aussi

Important

Certaines des fonctionnalités décrites dans cet article peuvent uniquement être disponibles en préversion. Cette préversion est fournie sans contrat de niveau de service, nous la déconseillons dans des charges de travail de production. Certaines fonctionnalités peuvent être limitées ou non prises en charge. Pour plus d’informations, consultez Conditions d’Utilisation Supplémentaires relatives aux Évaluations Microsoft Azure.

Prérequis

Accédez à Azure AI Studio (préversion)

  1. Connectez-vous à Azure AI Studio.

  2. Accédez à votre projet ou créez un projet dans Azure AI Studio.

  3. Dans la vue d’ensemble de votre projet, sélectionnez Assistants, qui se trouve sous Terrain de jeu du projet.

    Le terrain de jeu Assistants vous permet d’explorer, de prototyper et de tester des assistants IA sans exécuter de code. À partir de cette page, vous pouvez rapidement itérer et expérimenter les nouvelles idées.

    Le terrain de jeu propose plusieurs options pour configurer votre Assistant. Dans les étapes suivantes, vous allez utiliser le volet d’installation de l’Assistant pour créer un assistant IA.

    Nom Description
    Nom de l’Assistant Votre nom de déploiement associé à un modèle spécifique.
    Instructions Les instructions sont similaires aux messages système, c’est là que vous fournissez des instructions sur le comportement du modèle et tout contexte qu’il doit référencer lorsqu’il génère une réponse. Vous pouvez décrire la personnalité de l’assistant, lui dire ce qu’il doit et ne doit pas répondre, et lui indiquer comment formater les réponses. Vous pouvez également fournir des exemples des mesures à prendre lorsqu’il répond aux réponses.
    Déploiement C’est là que vous définissez le modèle de déploiement à utiliser avec votre assistant.
    Fonctions Créer des définitions de fonction personnalisées pour les modèles afin de formuler des appels d’API et des sorties de données de structure en fonction de vos spécifications. Non utilisé dans ce guide de démarrage rapide.
    Interpréteur de code L’interpréteur de code fournit un accès à un environnement Python en bac à sable qui peut être utilisé pour permettre au modèle de tester et d’exécuter du code.
    Fichiers Vous pouvez charger jusqu’à 20 fichiers d’une taille de fichier maximale de 512 Mo à utiliser avec des outils. Non utilisé dans ce guide de démarrage rapide.

    Capture d’écran de l’écran de configuration de l’Assistant sans toutes les valeurs renseignées.

Créez votre premier assistant

  1. Sélectionnez votre déploiement dans la liste déroulante Déploiements.

  2. Dans le menu déroulant Configuration de l’Assistant, sélectionnez Nouveau.

  3. Nommez votre Assistant.

  4. Entrez les instructions suivantes : « Vous êtes un assistant IA capable d’écrire du code pour répondre aux questions mathématiques ».

  5. Sélectionnez un modèle de déploiement. Nous vous recommandons de tester avec l’un des derniers modèles gpt-4.

  6. Sélectionnez le bouton bascule qui active l’interpréteur de code.

  7. Sélectionnez Enregistrer.

    Capture d’écran de l’Assistant avec les détails de configuration entrés.

  8. Entrez une question à laquelle l’assistant doit répondre : « J’ai besoin de résoudre l’équation 3x + 11 = 14. Pouvez-vous m’aider ? ».

  9. Sélectionnez le bouton Ajouter et exécuter.

    The solution to the equation (3x + 11 = 14) is (x = 1).
    

    Bien que nous puissions voir que cette réponse est correcte, nous poserons une autre question dans le but de confirmer que le modèle a utilisé l’interpréteur de code pour accéder à cette réponse et que le code qu’il a écrit est valide, au lieu de répéter une réponse provenant des données de formation du modèle.

  10. Entrez la question de suivi : « Montrez-moi le code que vous avez exécuté pour obtenir cette réponse. ».

    Sure. The code is very straightforward
    
    # calculation
    x = (14 - 11) / 3
    x
    
    
    First, we subtract 11 from 14, then divide the result by 3. This gives us the value of x which is 1.0.
    

    Capture d’écran de la session de conversation dans le terrain de jeu Assistant.

Vous pouvez également consulter les journaux d’activité dans le volet de droite pour vérifier que l’interpréteur de code a été utilisé et pour valider le code exécuté pour générer la réponse. Il est important de ne pas oublier que si l’interpréteur de code donne au modèle la possibilité de répondre à des questions mathématiques plus complexes en convertissant les questions en code et en s’exécutant dans un environnement Python en bac à sable, vous devez toujours valider la réponse pour confirmer que le modèle a correctement traduit votre question en une représentation valide dans le code.

Concepts clés

Tout en utilisant le terrain de jeu Assistants, gardez à l’esprit les concepts suivants.

outils

Un assistant individuel peut accéder à jusqu’à 128 outils, notamment code interpreter, ainsi qu’à n’importe quel outil personnalisé que vous créez par le biais de fonctions.

Session de conversation instantanée

La session de conversation, également appelée thread, dans l’API de l’Assistant est l’endroit où la conversation entre l’utilisateur et l’Assistant a lieu. Contrairement aux appels de saisie semi-automatique de conversation traditionnels, il n’existe aucune limite au nombre de messages dans un thread. L’assistant compresse automatiquement les demandes pour qu’elles correspondent à la limite du jeton d’entrée du modèle.

Cela signifie également que vous ne contrôlez pas le nombre de jetons passés au modèle pendant chaque tour de la conversation. La gestion des jetons est abstraite et entièrement gérée par l’API Assistants.

Sélectionnez le bouton Effacer la conversation pour supprimer l’historique actuel des conversations.

Vous trouverez deux boutons sous la zone de saisie du texte :

  • Ajouter un message sans exécution.
  • Ajouter et exécuter.

Journaux d’activité

Les journaux fournissent un cliché instantané détaillé de l’activité de l’API Assistant.

Afficher les panneaux

Par défaut, il y a trois panneaux : configuration de l’assistant, session de conversation et journaux d’activité. La fonctionnalité Afficher les panneaux vous permet d’ajouter, de supprimer et de réorganiser les panneaux. Si jamais vous fermez un panneau et que vous avez besoin de le récupérer, utilisez Afficher les panneaux pour restaurer le panneau perdu.

Nettoyer les ressources

Si vous voulez nettoyer et supprimer une ressource Azure OpenAI, vous pouvez supprimer la ressource ou le groupe de ressources. La suppression du groupe de ressources efface également les autres ressources qui y sont associées.

Vous pouvez également supprimer l’Assistant ou thread via l’API de l’Assistant.

Voir aussi

Documentation de référence | Code source de la bibliothèque | Package (PyPi) |

Prérequis

  • Un abonnement Azure - En créer un gratuitement

  • Accès accordé à Azure OpenAI dans l’abonnement Azure souhaité

    L’accès à ce service n’est accordé qu’à l’application. Vous pouvez demander l’accès à Azure OpenAI en complétant le formulaire à l’adresse https://aka.ms/oai/access. Ouvrez un problème sur ce dépôt pour nous contacter si vous rencontrez un problème.

  • Python 3.8 ou version ultérieure

  • Les bibliothèques Python suivantes : os, openai (version 1.x est requise)

  • Azure CLI est utilisé pour l’authentification sans mot de passe dans un environnement de développement local. Créez le contexte nécessaire en vous connectant avec Azure CLI.

  • Ressource Azure OpenAI avec un modèle compatible dans une région prise en charge.

  • Nous vous recommandons de consulter la Note de transparence de l’IA responsable et d’autres Ressources sur l’IA responsable pour vous familiariser avec les fonctionnalités et limitations d’Azure OpenAI Service.

  • Pour tester cet exemple, nous avons utilisé une ressource Azure OpenAI avec le modèle gpt-4 (1106-preview) déployé.

Pour l’authentification sans mot de passe, il vous faut

  1. Utilisez le package azure-identity.
  2. Attribuez le rôle Cognitive Services User à votre compte d’utilisateur. Cela peut être effectué dans le Portail Azure sous Contrôle d’accès (IAM)>Ajouter une attribution de rôle.
  3. Connectez-vous à l’aide de l’interface Azure CLI, par exemple az login.

Configurer

  1. Installez la bibliothèque de client Python OpenAI avec :
pip install openai
  1. Pour l’authentification sans mot de passe recommandée :
pip install azure-identity

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 tool_choice paramètre qui peut être utilisé pour forcer l’utilisation d’un outil spécifique (comme la recherche de fichiers, l’interpréteur de code ou une fonction) dans une exécution particulière.

Remarque

Cette bibliothèque est gérée par OpenAI. Reportez-vous à l’historique des versions pour suivre les dernières mises à jour de la bibliothèque.

Récupérer la clé et le point de terminaison

Pour effectuer un appel sur le service Azure OpenAI, vous aurez besoin des éléments suivants :

Nom de la variable Valeur
ENDPOINT Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. Vous trouverez également la valeur dans l’affichage Azure OpenAI Studio>Playground>Afficher le code. Voici un exemple de point de terminaison : https://docs-test-001.openai.azure.com/.
API-KEY Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. Vous pouvez utiliser soit KEY1, soit KEY2.
DEPLOYMENT-NAME Cette valeur correspond au nom personnalisé que vous avez choisi pour votre déploiement lorsque vous avez déployé un modèle. Cette valeur se trouve sousGestion des ressources>Déploiements de modèles dans le portail Azure ou sousGestion>Déploiements dans Azure OpenAI Studio.

Accédez à votre ressource sur le portail Azure. Le point de terminaison et les clés se trouvent dans la section Gestion des ressources. Copiez votre point de terminaison et votre clé d’accès, car vous aurez besoin de l’authentification de vos appels d’API. Vous pouvez utiliser soit KEY1, soit KEY2. Avoir toujours deux clés vous permet de faire pivoter et de régénérer en toute sécurité les clés sans provoquer d’interruption de service.

Capture d’écran du panneau de vue d’ensemble d’une ressource Azure OpenAI dans le Portail Azure avec l’emplacement des clés d’accès et du point de terminaison encerclés en rouge.

Créez et affectez des variables d’environnement persistantes pour votre clé et votre point de terminaison.

Variables d'environnement

Créez et affectez des variables d’environnement persistantes pour votre clé et votre point de terminaison.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Créer un assistant

Dans notre code, nous allons spécifier les valeurs suivantes :

Nom Description
Nom de l’Assistant Votre nom de déploiement associé à un modèle spécifique.
Instructions Les instructions sont similaires aux messages système, c’est là que vous fournissez des instructions sur le comportement du modèle et tout contexte qu’il doit référencer lorsqu’il génère une réponse. Vous pouvez décrire la personnalité de l’assistant, lui dire ce qu’il doit et ne doit pas répondre, et lui indiquer comment formater les réponses. Vous pouvez également fournir des exemples des mesures à prendre lorsqu’il répond aux réponses.
Modèle C’est là que vous définissez le nom du modèle de déploiement à utiliser avec votre Assistant. L’outil de récupération nécessite le modèle gpt-35-turbo (1106) ou gpt-4 (1106-preview). Définissez cette valeur sur le nom de votre déploiement, et non sur le nom du modèle, sauf s’ils portent le même nom.
Interpréteur de code L’interpréteur de code fournit un accès à un environnement Python en bac à sable qui peut être utilisé pour permettre au modèle de tester et d’exécuter du code.

Outils

Un assistant individuel peut accéder à jusqu’à 128 outils, notamment code interpreter, ainsi qu’à n’importe quel outil personnalisé que vous créez par le biais de fonctions.

Créer l’application Python

Connectez-vous à Azure avec az login puis créez et exécutez un assistant avec l'exemple Python sans mot de passe recommandé ci-dessous :

import os
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
from openai import AzureOpenAI

token_provider = get_bearer_token_provider(DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default")

client = AzureOpenAI(
    azure_ad_token_provider=token_provider,
    azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
    api_version="2024-05-01-preview",
)

# Create an assistant
assistant = client.beta.assistants.create(
    name="Math Assist",
    instructions="You are an AI assistant that can write code to help answer math questions.",
    tools=[{"type": "code_interpreter"}],
    model="gpt-4-1106-preview" # You must replace this value with the deployment name for your model.
)

# Create a thread
thread = client.beta.threads.create()

# Add a user question to the thread
message = client.beta.threads.messages.create(
    thread_id=thread.id,
    role="user",
    content="I need to solve the equation `3x + 11 = 14`. Can you help me?"
)

# Run the thread and poll for the result
run = client.beta.threads.runs.create_and_poll(
    thread_id=thread.id,
    assistant_id=assistant.id,
    instructions="Please address the user as Jane Doe. The user has a premium account.",
)

print("Run completed with status: " + run.status)

if run.status == "completed":
    messages = client.beta.threads.messages.list(thread_id=thread.id)
    print(messages.to_json(indent=2))

Pour utiliser la clé API de service pour l’authentification, vous pouvez créer et exécuter un assistant avec l’exemple Python suivant :

import os
from openai import AzureOpenAI

client = AzureOpenAI(
    api_key=os.environ["AZURE_OPENAI_API_KEY"],
    azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
    api_version="2024-05-01-preview",
)

# Create an assistant
assistant = client.beta.assistants.create(
    name="Math Assist",
    instructions="You are an AI assistant that can write code to help answer math questions.",
    tools=[{"type": "code_interpreter"}],
    model="gpt-4-1106-preview" # You must replace this value with the deployment name for your model.
)

# Create a thread
thread = client.beta.threads.create()

# Add a user question to the thread
message = client.beta.threads.messages.create(
    thread_id=thread.id,
    role="user",
    content="I need to solve the equation `3x + 11 = 14`. Can you help me?"
)

# Run the thread and poll for the result
run = client.beta.threads.runs.create_and_poll(
    thread_id=thread.id,
    assistant_id=assistant.id,
    instructions="Please address the user as Jane Doe. The user has a premium account.",
)

print("Run completed with status: " + run.status)

if run.status == "completed":
    messages = client.beta.threads.messages.list(thread_id=thread.id)
    print(messages.to_json(indent=2))

Sortie

Exécution terminée avec l’état : terminé

{
  "data": [
    {
      "id": "msg_4SuWxTubHsHpt5IlBTO5Hyw9",
      "assistant_id": "asst_cYqL1RuwLyFV3HU1gkaE2k0K",
      "attachments": [],
      "content": [
        {
          "text": {
            "annotations": [],
            "value": "The solution to the equation \\(3x + 11 = 14\\) is \\(x = 1\\)."
          },
          "type": "text"
        }
      ],
      "created_at": 1716397091,
      "metadata": {},
      "object": "thread.message",
      "role": "assistant",
      "run_id": "run_hFgBPbUtO8ZNTnNPC8PgpH1S",
      "thread_id": "thread_isb7spwRycI5ueT9E7357aOm"
    },
    {
      "id": "msg_Z32w2E7kY5wEWhZqQWxIbIUB",
      "assistant_id": null,
      "attachments": [],
      "content": [
        {
          "text": {
            "annotations": [],
            "value": "I need to solve the equation `3x + 11 = 14`. Can you help me?"
          },
          "type": "text"
        }
      ],
      "created_at": 1716397025,
      "metadata": {},
      "object": "thread.message",
      "role": "user",
      "run_id": null,
      "thread_id": "thread_isb7spwRycI5ueT9E7357aOm"
    }
  ],
  "object": "list",
  "first_id": "msg_4SuWxTubHsHpt5IlBTO5Hyw9",
  "last_id": "msg_Z32w2E7kY5wEWhZqQWxIbIUB",
  "has_more": false
}

Comprendre votre facture

Dans cet exemple, nous créons un assistant avec l’interpréteur de code activé. Lorsque nous posons une question mathématique à l’assistant, il traduit la question en code Python et l’exécute dans l’environnement en bac à sable afin de déterminer la réponse à la question. Le code que le modèle crée et teste pour trouver une réponse est :

from sympy import symbols, Eq, solve  
  
# Define the variable  
x = symbols('x')  
  
# Define the equation  
equation = Eq(3*x + 11, 14)  
  
# Solve the equation  
solution = solve(equation, x)  
solution  

Il est important de ne pas oublier que si l’interpréteur de code donne au modèle la possibilité de répondre à des requêtes plus complexes en convertissant les questions en code et en exécutant ce code de manière itérative dans un environnement Python en bac à sable jusqu’à trouver une solution, vous devez toujours valider la réponse pour confirmer que le modèle a correctement traduit votre question en une représentation valide dans le code.

Nettoyer les ressources

Si vous voulez nettoyer et supprimer une ressource Azure OpenAI, vous pouvez supprimer la ressource ou le groupe de ressources. La suppression du groupe de ressources efface également les autres ressources qui y sont associées.

Voir aussi

Documentation de référence | Code source | Package (NuGet)

Prérequis

Configurer

Créez une application .NET Core

Dans une fenêtre de console (par exemple cmd, PowerShell ou Bash), utilisez la commande dotnet new pour créer une application console avec le nom azure-openai-quickstart. Cette commande crée un projet « Hello World » simple avec un seul fichier source C# : Program.cs.

dotnet new console -n azure-openai-assistants-quickstart

Déplacez vos répertoires vers le dossier d’application nouvellement créé. Vous pouvez générer l’application avec :

dotnet build

La sortie de génération ne doit contenir aucun avertissement ni erreur.

...
Build succeeded.
 0 Warning(s)
 0 Error(s)
...

Installez la bibliothèque de client .NET OpenAI avec :

dotnet add package Azure.AI.OpenAI.Assistants --prerelease

Récupérer la clé et le point de terminaison

Pour effectuer correctement un appel sur Azure OpenAI, vous avez besoin d’un point de terminaison et d’une clé.

Nom de la variable Valeur
ENDPOINT Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. Vous pouvez également trouver la valeur dans l’affichage Azure OpenAI Studio>Playground>Code. Voici un exemple de point de terminaison : https://docs-test-001.openai.azure.com/.
API-KEY Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. Vous pouvez utiliser soit KEY1, soit KEY2.

Accédez à votre ressource sur le portail Azure. La section Point de terminaison et les clés se trouvent dans la section Gestion des ressources. Copiez votre point de terminaison et votre clé d’accès, car vous aurez besoin de l’authentification de vos appels d’API. Vous pouvez utiliser soit KEY1, soit KEY2. Avoir toujours deux clés vous permet de faire pivoter et de régénérer en toute sécurité les clés sans provoquer d’interruption de service.

Capture d’écran de l’interface utilisateur de vue d’ensemble d’une ressource Azure OpenAI dans le Portail Azure avec l’emplacement du point de terminaison et des clés d’accès entouré en rouge.

Variables d'environnement

Créez et affectez des variables d’environnement persistantes pour votre clé et votre point de terminaison.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Créer un assistant

Dans notre code, nous allons spécifier les valeurs suivantes :

Nom Description
Nom de l’Assistant Votre nom de déploiement associé à un modèle spécifique.
Instructions Les instructions sont similaires aux messages système, c’est là que vous fournissez des instructions sur le comportement du modèle et tout contexte qu’il doit référencer lorsqu’il génère une réponse. Vous pouvez décrire la personnalité de l’assistant, lui dire ce qu’il doit et ne doit pas répondre, et lui indiquer comment formater les réponses. Vous pouvez également fournir des exemples des mesures à prendre lorsqu’il répond aux réponses.
Modèle C’est là que vous définissez le nom du modèle de déploiement à utiliser avec votre Assistant. L’outil de récupération nécessite le modèle gpt-35-turbo (1106) ou gpt-4 (1106-preview). Définissez cette valeur sur le nom de votre déploiement, et non sur le nom du modèle, sauf s’ils portent le même nom.
Interpréteur de code L’interpréteur de code fournit un accès à un environnement Python en bac à sable qui peut être utilisé pour permettre au modèle de tester et d’exécuter du code.

Outils

Un assistant individuel peut accéder à jusqu’à 128 outils, notamment code interpreter, ainsi qu’à n’importe quel outil personnalisé que vous créez par le biais de fonctions.

Créez et exécutez un assistant avec les éléments suivants :

using Azure;
using Azure.AI.OpenAI.Assistants;

string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? throw new ArgumentNullException("AZURE_OPENAI_ENDPOINT");
string key = Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY") ?? throw new ArgumentNullException("AZURE_OPENAI_API_KEY");
AssistantsClient client = new AssistantsClient(new Uri(endpoint), new AzureKeyCredential(key));

// Create an assistant
Assistant assistant = await client.CreateAssistantAsync(
    new AssistantCreationOptions("gpt-4-1106-preview") // Replace this with the name of your model deployment
    {
        Name = "Math Tutor",
        Instructions = "You are a personal math tutor. Write and run code to answer math questions.",
        Tools = { new CodeInterpreterToolDefinition() }
    });

// Create a thread
AssistantThread thread = await client.CreateThreadAsync();

// Add a user question to the thread
ThreadMessage message = await client.CreateMessageAsync(
    thread.Id,
    MessageRole.User,
    "I need to solve the equation `3x + 11 = 14`. Can you help me?");

// Run the thread
ThreadRun run = await client.CreateRunAsync(
    thread.Id,
    new CreateRunOptions(assistant.Id)
);

// Wait for the assistant to respond
do
{
    await Task.Delay(TimeSpan.FromMilliseconds(500));
    run = await client.GetRunAsync(thread.Id, run.Id);
}
while (run.Status == RunStatus.Queued
    || run.Status == RunStatus.InProgress);

// Get the messages
PageableList<ThreadMessage> messagesPage = await client.GetMessagesAsync(thread.Id);
IReadOnlyList<ThreadMessage> messages = messagesPage.Data;

// Note: messages iterate from newest to oldest, with the messages[0] being the most recent
foreach (ThreadMessage threadMessage in messages.Reverse())
{
    Console.Write($"{threadMessage.CreatedAt:yyyy-MM-dd HH:mm:ss} - {threadMessage.Role,10}: ");
    foreach (MessageContent contentItem in threadMessage.ContentItems)
    {
        if (contentItem is MessageTextContent textItem)
        {
            Console.Write(textItem.Text);
        }
        Console.WriteLine();
    }
}

L'impression se fera comme suit :

2024-03-05 03:38:17 -       user: I need to solve the equation `3x + 11 = 14`. Can you help me?
2024-03-05 03:38:25 -  assistant: The solution to the equation \(3x + 11 = 14\) is \(x = 1\).

Les nouveaux messages peuvent être créés sur le thread avant la réexécutation, ce qui permet à l’assistant d’utiliser les messages passés comme contexte dans le thread.

Nettoyer les ressources

Si vous voulez nettoyer et supprimer une ressource Azure OpenAI, vous pouvez supprimer la ressource ou le groupe de ressources. La suppression du groupe de ressources efface également les autres ressources qui y sont associées.

Voir aussi

Documentation de référence | Code source de la bibliothèque | Package (npm) |

Prérequis

Pour l’authentification sans mot de passe, il vous faut

  1. Utilisez le package @azure/identity.
  2. Attribuez le rôle Cognitive Services User à votre compte d’utilisateur. Cela peut être effectué dans le Portail Azure sous Contrôle d’accès (IAM)>Ajouter une attribution de rôle.
  3. Connectez-vous à l’aide de l’interface Azure CLI, par exemple az login.

Configurer

  1. Installez la bibliothèque cliente Assistants OpenAI pour JavaScript avec :

    npm install openai
    
  2. Pour l’authentification sans mot de passe recommandée :

    npm install @azure/identity
    

Récupérer la clé et le point de terminaison

Pour effectuer un appel sur le service Azure OpenAI, vous aurez besoin des éléments suivants :

Nom de la variable Valeur
ENDPOINT Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. Vous trouverez également la valeur dans l’affichage Azure OpenAI Studio>Playground>Afficher le code. Voici un exemple de point de terminaison : https://docs-test-001.openai.azure.com/.
API-KEY Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. Vous pouvez utiliser soit KEY1, soit KEY2.
DEPLOYMENT-NAME Cette valeur correspond au nom personnalisé que vous avez choisi pour votre déploiement lorsque vous avez déployé un modèle. Cette valeur se trouve sousGestion des ressources>Déploiements de modèles dans le portail Azure ou sousGestion>Déploiements dans Azure OpenAI Studio.

Accédez à votre ressource sur le portail Azure. Le point de terminaison et les clés se trouvent dans la section Gestion des ressources. Copiez votre point de terminaison et votre clé d’accès, car vous aurez besoin de l’authentification de vos appels d’API. Vous pouvez utiliser soit KEY1, soit KEY2. Avoir toujours deux clés vous permet de faire pivoter et de régénérer en toute sécurité les clés sans provoquer d’interruption de service.

Capture d’écran du panneau de vue d’ensemble d’une ressource OpenAI dans le Portail Azure avec l’emplacement des clés d’accès et du point de terminaison encerclés en rouge.

Créez et affectez des variables d’environnement persistantes pour votre clé et votre point de terminaison.

Variables d'environnement

Créez et affectez des variables d’environnement persistantes pour votre clé et votre point de terminaison.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Ajoutez des variables d’environnement supplémentaires pour le nom de déploiement et la version de l’API :

  • AZURE_OPENAI_DEPLOYMENT_NAME : nom de votre déploiement, comme indiqué dans le portail Azure.
  • OPENAI_API_VERSION: En savoir plus sur les versions d’API.

Créez et affectez des variables d’environnement persistantes pour votre clé et votre point de terminaison.

setx AZURE_OPENAI_DEPLOYMENT_NAME "REPLACE_WITH_YOUR_DEPLOYMENT_NAME" 
setx OPENAI_API_VERSION "REPLACE_WITH_YOUR_API_VERSION" 

Créer un assistant

Dans notre code, nous allons spécifier les valeurs suivantes :

Nom Description
Nom de l’Assistant Votre nom de déploiement associé à un modèle spécifique.
Instructions Les instructions sont similaires aux messages système, c’est là que vous fournissez des instructions sur le comportement du modèle et tout contexte qu’il doit référencer lorsqu’il génère une réponse. Vous pouvez décrire la personnalité de l’assistant, lui dire ce qu’il doit et ne doit pas répondre, et lui indiquer comment formater les réponses. Vous pouvez également fournir des exemples des mesures à prendre lorsqu’il répond aux réponses.
Modèle Il s’agit du nom du déploiement.
Interpréteur de code L’interpréteur de code fournit un accès à un environnement Python en bac à sable qui peut être utilisé pour permettre au modèle de tester et d’exécuter du code.

Outils

Un assistant individuel peut accéder à jusqu’à 128 outils, notamment code interpreter, ainsi qu’à n’importe quel outil personnalisé que vous créez par le biais de fonctions.

Connectez-vous à Azure à l’aide de az login, puis créez et exécutez un assistant avec le module TypeScript (index.ts) sans mot de passe recommandé suivant :

import "dotenv/config";
import { AzureOpenAI } from "openai";
import {
  Assistant,
  AssistantCreateParams,
  AssistantTool,
} from "openai/resources/beta/assistants";
import { Message, MessagesPage } from "openai/resources/beta/threads/messages";
import { Run } from "openai/resources/beta/threads/runs/runs";
import { Thread } from "openai/resources/beta/threads/threads";

// Add `Cognitive Services User` to identity for Azure OpenAI resource
import {
  DefaultAzureCredential,
  getBearerTokenProvider,
} from "@azure/identity";

// Get environment variables
const azureOpenAIEndpoint = process.env.AZURE_OPENAI_ENDPOINT as string;
const azureOpenAIDeployment = process.env
  .AZURE_OPENAI_DEPLOYMENT_NAME as string;
const openAIVersion = process.env.OPENAI_API_VERSION as string;

// Check env variables
if (!azureOpenAIEndpoint || !azureOpenAIDeployment || !openAIVersion) {
  throw new Error(
    "Please ensure to set AZURE_OPENAI_DEPLOYMENT_NAME and AZURE_OPENAI_ENDPOINT in your environment variables."
  );
}

// Get Azure SDK client
const getClient = (): AzureOpenAI => {
  const credential = new DefaultAzureCredential();
  const scope = "https://cognitiveservices.azure.com/.default";
  const azureADTokenProvider = getBearerTokenProvider(credential, scope);
  const assistantsClient = new AzureOpenAI({
    endpoint: azureOpenAIEndpoint,
    apiVersion: openAIVersion,
    azureADTokenProvider,
  });
  return assistantsClient;
};

const assistantsClient = getClient();

const options: AssistantCreateParams = {
  model: azureOpenAIDeployment, // Deployment name seen in Azure AI Studio
  name: "Math Tutor",
  instructions:
    "You are a personal math tutor. Write and run JavaScript code to answer math questions.",
  tools: [{ type: "code_interpreter" } as AssistantTool],
};
const role = "user";
const message = "I need to solve the equation `3x + 11 = 14`. Can you help me?";

// Create an assistant
const assistantResponse: Assistant =
  await assistantsClient.beta.assistants.create(options);
console.log(`Assistant created: ${JSON.stringify(assistantResponse)}`);

// Create a thread
const assistantThread: Thread = await assistantsClient.beta.threads.create({});
console.log(`Thread created: ${JSON.stringify(assistantThread)}`);

// Add a user question to the thread
const threadResponse: Message =
  await assistantsClient.beta.threads.messages.create(assistantThread.id, {
    role,
    content: message,
  });
console.log(`Message created:  ${JSON.stringify(threadResponse)}`);

// Run the thread and poll it until it is in a terminal state
const runResponse: Run = await assistantsClient.beta.threads.runs.createAndPoll(
  assistantThread.id,
  {
    assistant_id: assistantResponse.id,
  },
  { pollIntervalMs: 500 }
);
console.log(`Run created:  ${JSON.stringify(runResponse)}`);

// Get the messages
const runMessages: MessagesPage =
  await assistantsClient.beta.threads.messages.list(assistantThread.id);
for await (const runMessageDatum of runMessages) {
  for (const item of runMessageDatum.content) {
    // types are: "image_file" or "text"
    if (item.type === "text") {
      console.log(`Message content: ${JSON.stringify(item.text?.value)}`);
    }
  }
}

Pour utiliser une authentification par clé de service, vous pouvez créer et exécuter un assistant avec le module TypeScript (index.ts) suivant :

import "dotenv/config";
import { AzureOpenAI } from "openai";
import {
  Assistant,
  AssistantCreateParams,
  AssistantTool,
} from "openai/resources/beta/assistants";
import { Message, MessagesPage } from "openai/resources/beta/threads/messages";
import { Run } from "openai/resources/beta/threads/runs/runs";
import { Thread } from "openai/resources/beta/threads/threads";

// Get environment variables
const azureOpenAIKey = process.env.AZURE_OPENAI_KEY as string;
const azureOpenAIEndpoint = process.env.AZURE_OPENAI_ENDPOINT as string;
const azureOpenAIDeployment = process.env
  .AZURE_OPENAI_DEPLOYMENT_NAME as string;
const openAIVersion = process.env.OPENAI_API_VERSION as string;

// Check env variables
if (!azureOpenAIKey || !azureOpenAIEndpoint || !azureOpenAIDeployment || !openAIVersion) {
  throw new Error(
    "Please set AZURE_OPENAI_KEY and AZURE_OPENAI_ENDPOINT and AZURE_OPENAI_DEPLOYMENT_NAME in your environment variables."
  );
}

// Get Azure SDK client
const getClient = (): AzureOpenAI => {
  const assistantsClient = new AzureOpenAI({
    endpoint: azureOpenAIEndpoint,
    apiVersion: openAIVersion,
    apiKey: azureOpenAIKey,
  });
  return assistantsClient;
};

const assistantsClient = getClient();

const options: AssistantCreateParams = {
  model: azureOpenAIDeployment, // Deployment name seen in Azure AI Studio
  name: "Math Tutor",
  instructions:
    "You are a personal math tutor. Write and run JavaScript code to answer math questions.",
  tools: [{ type: "code_interpreter" } as AssistantTool],
};
const role = "user";
const message = "I need to solve the equation `3x + 11 = 14`. Can you help me?";

// Create an assistant
const assistantResponse: Assistant =
  await assistantsClient.beta.assistants.create(options);
console.log(`Assistant created: ${JSON.stringify(assistantResponse)}`);

// Create a thread
const assistantThread: Thread = await assistantsClient.beta.threads.create({});
console.log(`Thread created: ${JSON.stringify(assistantThread)}`);

// Add a user question to the thread
const threadResponse: Message =
  await assistantsClient.beta.threads.messages.create(assistantThread.id, {
    role,
    content: message,
  });
console.log(`Message created:  ${JSON.stringify(threadResponse)}`);

// Run the thread and poll it until it is in a terminal state
const runResponse: Run = await assistantsClient.beta.threads.runs.createAndPoll(
  assistantThread.id,
  {
    assistant_id: assistantResponse.id,
  },
  { pollIntervalMs: 500 }
);
console.log(`Run created:  ${JSON.stringify(runResponse)}`);

// Get the messages
const runMessages: MessagesPage =
  await assistantsClient.beta.threads.messages.list(assistantThread.id);
for await (const runMessageDatum of runMessages) {
  for (const item of runMessageDatum.content) {
    // types are: "image_file" or "text"
    if (item.type === "text") {
      console.log(`Message content: ${JSON.stringify(item.text?.value)}`);
    }
  }
}

Sortie

Assistant created: {"id":"asst_zXaZ5usTjdD0JGcNViJM2M6N","createdAt":"2024-04-08T19:26:38.000Z","name":"Math Tutor","description":null,"model":"daisy","instructions":"You are a personal math tutor. Write and run JavaScript code to answer math questions.","tools":[{"type":"code_interpreter"}],"fileIds":[],"metadata":{}}
Thread created: {"id":"thread_KJuyrB7hynun4rvxWdfKLIqy","createdAt":"2024-04-08T19:26:38.000Z","metadata":{}}
Message created:  {"id":"msg_o0VkXnQj3juOXXRCnlZ686ff","createdAt":"2024-04-08T19:26:38.000Z","threadId":"thread_KJuyrB7hynun4rvxWdfKLIqy","role":"user","content":[{"type":"text","text":{"value":"I need to solve the equation `3x + 11 = 14`. Can you help me?","annotations":[]},"imageFile":{}}],"assistantId":null,"runId":null,"fileIds":[],"metadata":{}}
Created run
Run created:  {"id":"run_P8CvlouB8V9ZWxYiiVdL0FND","object":"thread.run","status":"queued","model":"daisy","instructions":"You are a personal math tutor. Write and run JavaScript code to answer math questions.","tools":[{"type":"code_interpreter"}],"metadata":{},"usage":null,"assistantId":"asst_zXaZ5usTjdD0JGcNViJM2M6N","threadId":"thread_KJuyrB7hynun4rvxWdfKLIqy","fileIds":[],"createdAt":"2024-04-08T19:26:39.000Z","expiresAt":"2024-04-08T19:36:39.000Z","startedAt":null,"completedAt":null,"cancelledAt":null,"failedAt":null}
Message content: "The solution to the equation \\(3x + 11 = 14\\) is \\(x = 1\\)."
Message content: "Yes, of course! To solve the equation \\( 3x + 11 = 14 \\), we can follow these steps:\n\n1. Subtract 11 from both sides of the equation to isolate the term with x.\n2. Then, divide by 3 to find the value of x.\n\nLet me calculate that for you."
Message content: "I need to solve the equation `3x + 11 = 14`. Can you help me?"

Il est important de ne pas oublier que si l’interpréteur de code donne au modèle la possibilité de répondre à des requêtes plus complexes en convertissant les questions en code, mais également en exécutant ce code de manière itérative dans un environnement JavaScript jusqu’à trouver une solution, vous devez toujours valider la réponse pour confirmer que le modèle a correctement traduit votre question en une représentation valide dans le code.

Nettoyer les ressources

Si vous voulez nettoyer et supprimer une ressource Azure OpenAI, vous pouvez supprimer la ressource ou le groupe de ressources. La suppression du groupe de ressources efface également les autres ressources qui y sont associées.

Exemple de code

Voir aussi

Prérequis

Configurer

Récupérer la clé et le point de terminaison

Pour effectuer un appel sur Azure OpenAI, vous aurez besoin des éléments suivants :

Nom de la variable Valeur
ENDPOINT Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. Vous trouverez également la valeur dans l’affichage Azure OpenAI Studio>Playground>Code. Voici un exemple de point de terminaison : https://docs-test-001.openai.azure.com/.
API-KEY Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. Vous pouvez utiliser soit KEY1, soit KEY2.
DEPLOYMENT-NAME Cette valeur correspond au nom personnalisé que vous avez choisi pour votre déploiement lorsque vous avez déployé un modèle. Cette valeur se trouve sousDéploiements>de gestion des ressources dans le portail Azure ou sousDéploiements>de gestion dans Azure OpenAI Studio.

Accédez à votre ressource sur le portail Azure. Le Point de terminaison et les Clés se trouvent dans la section Gestion des ressources. Copiez votre point de terminaison et votre clé d’accès, car vous aurez besoin de l’authentification de vos appels d’API. Vous pouvez utiliser soit KEY1, soit KEY2. Avoir toujours deux clés vous permet de faire pivoter et de régénérer en toute sécurité les clés sans provoquer d’interruption de service.

Capture d’écran du panneau de vue d’ensemble d’une ressource Azure OpenAI dans le Portail Azure avec l’emplacement des clés d’accès et du point de terminaison encerclés en rouge.

Créez et affectez des variables d’environnement persistantes pour votre clé et votre point de terminaison.

Variables d'environnement

Créez et affectez des variables d’environnement persistantes pour votre clé et votre point de terminaison.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

API REST

Créer un assistant

Remarque

Avec Azure OpenAI, le paramètre model nécessite un nom de modèle de déploiement. Si le nom de votre modèle de déploiement est différent du nom du modèle sous-jacent, vous devez ajuster votre code à "model": "{your-custom-model-deployment-name}".

curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/assistants?api-version=2024-05-01-preview \
  -H "api-key: $AZURE_OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "instructions": "You are an AI assistant that can write code to help answer math questions.",
    "name": "Math Assist",
    "tools": [{"type": "code_interpreter"}],
    "model": "gpt-4-1106-preview"
  }'

Outils

Un assistant individuel peut accéder à jusqu’à 128 outils, notamment code interpreter, ainsi qu’à n’importe quel outil personnalisé que vous créez par le biais de fonctions.

Créer un thread

curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads \
  -H "Content-Type: application/json" \
  -H "api-key: $AZURE_OPENAI_API_KEY" \
  -d ''

Ajouter une question utilisateur au thread

curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/thread_abc123/messages \
  -H "Content-Type: application/json" \
  -H "api-key: $AZURE_OPENAI_API_KEY" \
  -d '{
      "role": "user",
      "content": "I need to solve the equation `3x + 11 = 14`. Can you help me?"
    }'

Exécuter le thread

curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/thread_abc123/runs \
  -H "api-key: $AZURE_OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "assistant_id": "asst_abc123",
  }'

Récupérer l’état de l’exécution

curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/thread_abc123/runs/run_abc123 \
  -H "api-key: $AZURE_OPENAI_API_KEY" \

Réponse de l’Assistant

curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/thread_abc123/messages \
  -H "Content-Type: application/json" \
  -H "api-key: $AZURE_OPENAI_API_KEY" \

Comprendre votre facture

Dans cet exemple, nous créons un assistant avec l’interpréteur de code activé. Lorsque nous posons une question mathématique à l’assistant, il traduit la question en code Python et l’exécute dans l’environnement en bac à sable afin de déterminer la réponse à la question. Le code que le modèle crée et teste pour trouver une réponse est :

    from sympy import symbols, Eq, solve  
      
    # Define the variable  
    x = symbols('x')  
      
    # Define the equation  
    equation = Eq(3*x + 11, 14)  
      
    # Solve the equation  
    solution = solve(equation, x)  
    solution  

Il est important de ne pas oublier que si l’interpréteur de code donne au modèle la possibilité de répondre à des requêtes plus complexes en convertissant les questions en code et en exécutant ce code de manière itérative dans un environnement Python en bac à sable jusqu’à trouver une solution, vous devez toujours valider la réponse pour confirmer que le modèle a correctement traduit votre question en une représentation valide dans le code.

Nettoyer les ressources

Si vous voulez nettoyer et supprimer une ressource Azure OpenAI, vous pouvez supprimer la ressource ou le groupe de ressources. La suppression du groupe de ressources efface également les autres ressources qui y sont associées.

Voir aussi