Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Lisez cet article pour commencer à utiliser Azure OpenAI.
Prérequis
- Un abonnement Azure : créez-en un gratuitement.
- Ressource Azure OpenAI dans azure AI Foundry Models avec les
gpt-4o
modèles déployés ou lesgpt-4o-mini
modèles déployés. Nous vous recommandons d’utiliser des types de déploiement de modèle standard ou standard global pour l’exploration initiale. Pour plus d’informations sur le déploiement de modèle, consultez le guide de déploiement de ressources.
Accéder à Azure AI Foundry
Accédez au portail Azure AI Foundry et connectez-vous avec les informations d’identification qui ont accès à votre ressource Azure 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.
Dans Azure AI Foundry, sélectionnez Terrain de jeu de conversation.
Terrain de jeu
Commencez à explorer les fonctionnalités d’Azure OpenAI avec une approche sans code par le biais du terrain de jeu Azure AI Foundry Chat. À partir de cette page, vous pouvez rapidement itérer et expérimenter les fonctionnalités.
Programme d’installation
Pour commencer, vous pouvez utiliser le menu déroulant Exemples d’invites pour sélectionner quelques exemples de Messages système préchargés.
Les messages système fournissent au modèle des instructions sur son comportement et sur tout contexte qu’il doit référencer en générant 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.
Lors de l’utilisation du terrain de jeu Chat, vous pouvez à tout moment sélectionner Afficher le code pour voir les exemples de code Python, curl et json préremplis en fonction de votre session de conversation actuelle et des sélections de paramètres. Vous pouvez ensuite prendre ce code et écrire une application pour effectuer la même tâche que celle que vous effectuez actuellement dans le terrain de jeu.
Session de conversation
En appuyant sur le bouton Entrée ou sur l’icône de flèche vers la droite, le texte saisi est envoyé à l’API de complétions de chat et les résultats sont renvoyés dans la zone de texte.
Sélectionnez le bouton Effacer la conversation pour supprimer l’historique actuel des conversations.
Paramètres importants
Nom | Description |
---|---|
Déploiements | Votre nom de déploiement associé à un modèle spécifique. |
Ajouter vos données | |
Paramètres | Paramètres personnalisés qui modifient les réponses du modèle. Lorsque vous commencez, nous vous recommandons d'utiliser les paramètres par défaut pour la plupart des options. |
Température | Contrôle le caractère aléatoire. La réduction de la température signifie que le modèle produit des réponses plus répétitives et déterministes. L’augmentation de la température entraîne des réponses plus inattendues ou créatives. Essayez d’ajuster la température ou le Top P, mais pas les deux. |
Réponse maximale (jetons) | Définissez une limite pour le nombre de jetons par réponse de modèle. L’API sur les modèles les plus récents prend en charge un maximum de 128 000 jetons partagés entre l’invite (y compris le message système, les exemples, l’historique des messages et la requête utilisateur) et la réponse du modèle. Un jeton correspond à environ quatre caractères pour un texte typique en anglais. |
Top p | Comme la température, cela permet de contrôler le caractère aléatoire, mais en utilisant une autre méthode. La réduction du Top P limite la sélection de jetons du modèle à des jetons plus probables. L’augmentation du Top P permet au modèle de choisir parmi des jetons avec des probabilités élevées et faibles. Essayez d’ajuster la température ou le Top P, mais pas les deux. |
Séquences d’arrêt | La séquence d’arrêt oblige le modèle de terminer sa réponse à un point souhaité. La réponse du modèle se termine avant la séquence spécifiée pour qu’elle ne contienne pas le texte de séquence d’arrêt. Pour GPT-35-Turbo, l’utilisation de <|im_end|> garantit que la réponse du modèle ne génère pas de requête utilisateur de suivi. Vous pouvez inclure jusqu’à quatre séquences d’arrêt. |
Afficher le code
Une fois que vous avez testé la conversation avec le modèle, sélectionnez le bouton</> Afficher le code. L’ensemble du code derrière toute votre conversation jusqu’à présent sera ainsi affiché :
Comprendre la structure d’invite
Si vous examinez l’exemple obtenu après avoir cliqué sur Afficher le code, vous remarquerez que la conversation est divisée en trois rôles distincts system
, user
, assistant
. Chaque fois que vous envoyez un message au modèle, l’historique des conversations jusqu’à ce point est à nouveau envoyé. Lorsque vous utilisez l’API de saisie semi-automatique de conversation, le modèle n’a pas de mémoire réelle de ce que vous lui avez envoyé par le passé. Fournissez donc l’historique des conversations à titre de contexte pour permettre au modèle de répondre correctement.
Le Guide pratique sur les complétions de conversation fournit une introduction approfondie sur la nouvelle structure d’invite et explique comment utiliser efficacement les modèles de complétions de conversation.
Déployer votre modèle
Une fois que vous êtes satisfait de l’expérience, vous pouvez déployer une application web directement depuis le portail en sélectionnant le bouton Déployer sur.
Cela vous donne la possibilité de déployer sur une application web autonome ou un copilote dans Copilot Studio (préversion) si vous utilisez vos propres données sur le modèle.
Si vous choisissez par exemple de déployer une application web :
La première fois que vous déployez une application web, vous devez sélectionner Créer une application web. Choisissez un nom pour l’application, qui fera partie de l’URL de l’application. Par exemple : https://<appname>.azurewebsites.net
.
Sélectionnez votre abonnement, votre groupe de ressources, votre emplacement et votre plan tarifaire pour l’application publiée. Pour mettre à jour une application existante, sélectionnez Publier sur une application web existante, puis choisissez le nom de votre application précédente dans le menu déroulant.
Si vous choisissez de déployer une application web, consultez les Points importants à prendre en compte pour son utilisation.
Nettoyer les ressources
Une fois que vous avez terminé de tester l'espace de test de conversation, si vous souhaitez 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.
Étapes suivantes
- En savoir plus sur l’utilisation du nouveau modèle
gpt-35-turbo
avec le Guide pratique de GPT-35-Turbo et GPT-4. - Pour plus d’exemples, consultez le référentiel GitHub d’échantillons Azure OpenAI
Code source | Package (NuGet) | Exemples| Modèle de conversation d’entreprise de la génération augmentée de récupération (RAG) |
Prérequis
- Un abonnement Azure - En créer un gratuitement
- Le SDK .NET 7
- Ressource Azure OpenAI dans azure AI Foundry Models avec le
gpt-4o
modèle déployé. Pour plus d’informations sur le déploiement de modèle, consultez le guide de déploiement de ressources.
Prérequis pour Microsoft Entra ID
Pour l’authentification sans clé recommandée avec Microsoft Entra ID, vous devez effectuer les tâches suivantes :
- Installez l’interface Azure CLI utilisée pour l’authentification sans clé avec Microsoft Entra ID.
- Attribuez le rôle
Cognitive Services User
à votre compte d’utilisateur. Vous pouvez attribuer des rôles dans le Portail Azure sous Contrôle d’accès (IAM)>Ajouter une attribution de rôle.
Configurer
Créez un dossier
chat-quickstart
et accédez au dossier de démarrage rapide avec la commande suivante :mkdir chat-quickstart && cd chat-quickstart
Créez une application console avec la commande suivante :
dotnet new console
Installez la bibliothèque de client .NET OpenAI avec la commande dotnet add package :
dotnet add package Azure.AI.OpenAI --prerelease
Pour l’authentification sans clé recommandée avec Microsoft Entra ID, installez le package Azure.Identity avec :
dotnet add package Azure.Identity
Pour l’authentification sans clé recommandée avec Microsoft Entra ID, connectez-vous à Azure avec la commande suivante :
az login
Récupérer des informations sur les ressources
Vous devez récupérer les informations suivantes pour authentifier votre application auprès de votre ressource Azure OpenAI :
Nom de la variable | Valeur |
---|---|
AZURE_OPENAI_ENDPOINT |
Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. |
AZURE_OPENAI_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 peut être trouvée dans le Portail Azure sous Gestion des ressources>Déploiements de modèles. |
OPENAI_API_VERSION |
En savoir plus sur les versions d’API. Vous pouvez modifier la version dans le code ou utiliser une variable d’environnement. |
En savoir plus sur l’authentification sans clé et la définition de variables d’environnement.
Exécuter le démarrage rapide
L’exemple de code de ce guide de démarrage rapide utilise Microsoft Entra ID pour l’authentification sans clé recommandée. Si vous préférez utiliser une clé API, vous pouvez remplacer l’objet DefaultAzureCredential
par un AzureKeyCredential
objet.
AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential());
Vous pouvez utiliser la diffusion en continu ou la non-diffusion en continu pour terminer la conversation. Les exemples de code suivants montrent comment utiliser les deux méthodes. Le premier exemple montre comment utiliser la méthode non de diffusion en continu, et le deuxième exemple montre comment utiliser la méthode de diffusion en continu.
Sans diffusion en continu de réponse
Pour exécuter le démarrage rapide, procédez comme suit :
Remplacez le contenu de
Program.cs
par le code suivant et remplacez les valeurs d’espace réservé par vos propres valeurs.using Azure; using Azure.Identity; using OpenAI.Assistants; using Azure.AI.OpenAI; using OpenAI.Chat; using static System.Environment; string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? "https://<your-resource-name>.openai.azure.com/"; string key = Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY") ?? "<your-key>"; // Use the recommended keyless credential instead of the AzureKeyCredential credential. AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential()); //AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new AzureKeyCredential(key)); // This must match the custom deployment name you chose for your model ChatClient chatClient = openAIClient.GetChatClient("gpt-4o"); ChatCompletion completion = chatClient.CompleteChat( [ new SystemChatMessage("You are a helpful assistant that talks like a pirate."), new UserChatMessage("Does Azure OpenAI support customer managed keys?"), new AssistantChatMessage("Yes, customer managed keys are supported by Azure OpenAI"), new UserChatMessage("Do other Azure services support this too?") ]); Console.WriteLine($"{completion.Role}: {completion.Content[0].Text}");
Exécutez l’application avec la commande suivante :
dotnet run
Sortie
Assistant: Arrr, ye be askin’ a fine question, matey! Aye, several Azure services support customer-managed keys (CMK)! This lets ye take the wheel and secure yer data with encryption keys stored in Azure Key Vault. Services such as Azure Machine Learning, Azure Cognitive Search, and others also offer CMK fer data protection. Always check the specific service's documentation fer the latest updates, as features tend to shift swifter than the tides, aye!
Cela attendra que le modèle ait généré l’intégralité de sa réponse avant d’imprimer les résultats. Par ailleurs, si vous souhaitez diffuser la réponse en continu de manière asynchrone et imprimer les résultats, vous pouvez remplacer le contenu de Program.cs par le code de l’exemple suivant.
Diffusion asynchrone en continu
Pour exécuter le démarrage rapide, procédez comme suit :
Remplacez le contenu de
Program.cs
par le code suivant et remplacez les valeurs d’espace réservé par vos propres valeurs.using Azure; using Azure.Identity; using OpenAI.Assistants; using Azure.AI.OpenAI; using OpenAI.Chat; using static System.Environment; string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? "https://<your-resource-name>.openai.azure.com/"; string key = Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY") ?? "<your-key>"; // Use the recommended keyless credential instead of the AzureKeyCredential credential. AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential()); //AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new AzureKeyCredential(key)); // This must match the custom deployment name you chose for your model ChatClient chatClient = openAIClient.GetChatClient("gpt-4o"); var chatUpdates = chatClient.CompleteChatStreamingAsync( [ new SystemChatMessage("You are a helpful assistant that talks like a pirate."), new UserChatMessage("Does Azure OpenAI support customer managed keys?"), new AssistantChatMessage("Yes, customer managed keys are supported by Azure OpenAI"), new UserChatMessage("Do other Azure services support this too?") ]); await foreach(var chatUpdate in chatUpdates) { if (chatUpdate.Role.HasValue) { Console.Write($"{chatUpdate.Role} : "); } foreach(var contentPart in chatUpdate.ContentUpdate) { Console.Write(contentPart.Text); } }
Exécutez l’application avec la commande suivante :
dotnet run
Sortie
Assistant: Arrr, ye be askin’ a fine question, matey! Aye, many Azure services support customer-managed keys (CMK)! This lets ye take the wheel and secure yer data with encryption keys stored in Azure Key Vault. Services such as Azure Machine Learning, Azure Cognitive Search, and others also offer CMK fer data protection. Always check the specific service's documentation fer the latest updates, as features tend to shift swifter than the tides, aye!
Nettoyer les ressources
Si vous souhaitez nettoyer et supprimer une ressource Azure OpenAI, vous pouvez la supprimer. Vous devez d’abord supprimer tous les modèles déployés avant de supprimer la ressource.
Étapes suivantes
- Commencez avec le chat en utilisant votre propre exemple de données pour .NET
- Consultez le référentiel GitHub Azure OpenAI samples (uniquement disponible en anglais) pour découvrir d’autres exemples.
Code source | Package (Go)| Exemples
Prérequis
- Un abonnement Azure - En créer un gratuitement
- Go 1.21.0 ou version ultérieure installé localement.
- Ressource Azure OpenAI dans azure AI Foundry Models avec le
gpt-4
modèle déployé. Pour plus d’informations sur le déploiement de modèle, consultez le guide de déploiement de ressources.
Prérequis pour Microsoft Entra ID
Pour l’authentification sans clé recommandée avec Microsoft Entra ID, vous devez effectuer les tâches suivantes :
- Installez l’interface Azure CLI utilisée pour l’authentification sans clé avec Microsoft Entra ID.
- Attribuez le rôle
Cognitive Services User
à votre compte d’utilisateur. Vous pouvez attribuer des rôles dans le Portail Azure sous Contrôle d’accès (IAM)>Ajouter une attribution de rôle.
Configurer
Créez un dossier
chat-quickstart
et accédez au dossier de démarrage rapide avec la commande suivante :mkdir chat-quickstart && cd chat-quickstart
Pour l’authentification sans clé recommandée avec Microsoft Entra ID, connectez-vous à Azure avec la commande suivante :
az login
Récupérer des informations sur les ressources
Vous devez récupérer les informations suivantes pour authentifier votre application auprès de votre ressource Azure OpenAI :
Nom de la variable | Valeur |
---|---|
AZURE_OPENAI_ENDPOINT |
Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. |
AZURE_OPENAI_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 peut être trouvée dans le Portail Azure sous Gestion des ressources>Déploiements de modèles. |
OPENAI_API_VERSION |
En savoir plus sur les versions d’API. Vous pouvez modifier la version dans le code ou utiliser une variable d’environnement. |
En savoir plus sur l’authentification sans clé et la définition de variables d’environnement.
Exécuter le démarrage rapide
L’exemple de code de ce guide de démarrage rapide utilise Microsoft Entra ID pour l’authentification sans clé recommandée. Si vous préférez utiliser une clé API, vous pouvez remplacer l’implémentation NewDefaultAzureCredential
par NewKeyCredential
.
azureOpenAIEndpoint := os.Getenv("AZURE_OPENAI_ENDPOINT")
credential, err := azidentity.NewDefaultAzureCredential(nil)
client, err := azopenai.NewClient(azureOpenAIEndpoint, credential, nil)
Pour exécuter l’exemple :
Créez un nouveau fichier nommé chat_completions_keyless.go. Copiez le code suivant dans le fichier chat_completions_keyless.go.
package main import ( "context" "fmt" "log" "os" "github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai" "github.com/Azure/azure-sdk-for-go/sdk/azidentity" ) func main() { azureOpenAIEndpoint := os.Getenv("AZURE_OPENAI_ENDPOINT") modelDeploymentID := "gpt-4o" maxTokens:= int32(400) credential, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { log.Printf("ERROR: %s", err) return } client, err := azopenai.NewClient( azureOpenAIEndpoint, credential, nil) if err != nil { log.Printf("ERROR: %s", err) return } // This is a conversation in progress. // All messages, regardless of role, count against token usage for this API. messages := []azopenai.ChatRequestMessageClassification{ // System message sets the tone and rules of the conversation. &azopenai.ChatRequestSystemMessage{ Content: azopenai.NewChatRequestSystemMessageContent( "You are a helpful assistant."), }, // The user asks a question &azopenai.ChatRequestUserMessage{ Content: azopenai.NewChatRequestUserMessageContent( "Can I use honey as a substitute for sugar?"), }, // The reply would come back from the model. You // add it to the conversation so we can maintain context. &azopenai.ChatRequestAssistantMessage{ Content: azopenai.NewChatRequestAssistantMessageContent( "Yes, you can use use honey as a substitute for sugar."), }, // The user answers the question based on the latest reply. &azopenai.ChatRequestUserMessage{ Content: azopenai.NewChatRequestUserMessageContent( "What other ingredients can I use as a substitute for sugar?"), }, // From here you can keep iterating, sending responses back from the chat model. } gotReply := false resp, err := client.GetChatCompletions(context.TODO(), azopenai.ChatCompletionsOptions{ // This is a conversation in progress. // All messages count against token usage for this API. Messages: messages, DeploymentName: &modelDeploymentID, MaxTokens: &maxTokens, }, nil) if err != nil { // Implement application specific error handling logic. log.Printf("ERROR: %s", err) return } for _, choice := range resp.Choices { gotReply = true if choice.ContentFilterResults != nil { fmt.Fprintf(os.Stderr, "Content filter results\n") if choice.ContentFilterResults.Error != nil { fmt.Fprintf(os.Stderr, " Error:%v\n", choice.ContentFilterResults.Error) } fmt.Fprintf(os.Stderr, " Hate: sev: %v, filtered: %v\n", *choice.ContentFilterResults.Hate.Severity, *choice.ContentFilterResults.Hate.Filtered) fmt.Fprintf(os.Stderr, " SelfHarm: sev: %v, filtered: %v\n", *choice.ContentFilterResults.SelfHarm.Severity, *choice.ContentFilterResults.SelfHarm.Filtered) fmt.Fprintf(os.Stderr, " Sexual: sev: %v, filtered: %v\n", *choice.ContentFilterResults.Sexual.Severity, *choice.ContentFilterResults.Sexual.Filtered) fmt.Fprintf(os.Stderr, " Violence: sev: %v, filtered: %v\n", *choice.ContentFilterResults.Violence.Severity, *choice.ContentFilterResults.Violence.Filtered) } if choice.Message != nil && choice.Message.Content != nil { fmt.Fprintf(os.Stderr, "Content[%d]: %s\n", *choice.Index, *choice.Message.Content) } if choice.FinishReason != nil { // The conversation for this choice is complete. fmt.Fprintf(os.Stderr, "Finish reason[%d]: %s\n", *choice.Index, *choice.FinishReason) } } if gotReply { fmt.Fprintf(os.Stderr, "Received chat completions reply\n") } }
Exécutez la commande suivante pour créer un module Go :
go mod init chat_completions_keyless.go
Exécutez
go mod tidy
pour installer les dépendances requises :go mod tidy
Exécutez la commande suivante pour exécuter l’exemple :
go run chat_completions_keyless.go
Sortie
La sortie de l’exemple de code ressemble à ce qui suit :
Content filter results
Hate: sev: safe, filtered: false
SelfHarm: sev: safe, filtered: false
Sexual: sev: safe, filtered: false
Violence: sev: safe, filtered: false
Content[0]: There are many alternatives to sugar that you can use, depending on the type of recipe you’re making and your dietary needs or taste preferences. Here are some popular sugar substitutes:
---
### **Natural Sweeteners**
1. **Honey**
- Sweeter than sugar and adds moisture, with a distinct flavor.
- Substitution: Use ¾ cup honey for 1 cup sugar, and reduce the liquid in your recipe by 2 tablespoons. Lower the baking temperature by 25°F to prevent over-browning.
2. **Maple Syrup**
- Adds a rich, earthy sweetness with a hint of maple flavor.
- Substitution: Use ¾ cup syrup for 1 cup sugar. Reduce liquids by 3 tablespoons.
3. **Agave Nectar**
- Sweeter and milder than honey, it dissolves well in cold liquids.
- Substitution: Use ⅔ cup agave for 1 cup sugar. Reduce liquids in the recipe slightly.
4. **Molasses**
- A byproduct of sugar production with a robust, slightly bitter flavor.
- Substitution: Use 1 cup of molasses for 1 cup sugar. Reduce liquid by ¼ cup and consider combining it with other sweeteners due to its strong flavor.
5. **Coconut Sugar**
- Made from the sap of coconut palms, it has a rich, caramel-like flavor.
- Substitution: Use it in a 1:1 ratio for sugar.
6. **Date Sugar** (or Medjool Dates)
- Made from ground, dried dates, or blended into a puree, offering a rich, caramel taste.
- Substitution: Use 1:1 for sugar. Adjust liquid in recipes if needed.
---
### **Calorie-Free or Reduced-Calorie Sweeteners**
1. **Stevia**
- A natural sweetener derived from stevia leaves, hundreds of
Finish reason[0]: length
Received chat completions reply
Nettoyer les ressources
Si vous souhaitez nettoyer et supprimer une ressource Azure OpenAI, vous pouvez la supprimer. Vous devez d’abord supprimer tous les modèles déployés avant de supprimer la ressource.
Étapes suivantes
Consultez le référentiel GitHub Azure OpenAI samples (uniquement disponible en anglais) pour découvrir d’autres exemples.
Code source | Artefact (Maven) | Exemples | Modèle de conversation d’entreprise de la génération augmentée de récupération (RAG) | IntelliJ IDEA
Prérequis
- Un abonnement Azure - En créer un gratuitement
- La version actuelle du JDK (Java Development Kit)
- L’outil de génération Gradle ou un autre gestionnaire de dépendances.
- Ressource Azure OpenAI dans azure AI Foundry Models avec le
gpt-4
modèle déployé. Pour plus d’informations sur le déploiement de modèle, consultez le guide de déploiement de ressources.
Prérequis pour Microsoft Entra ID
Pour l’authentification sans clé recommandée avec Microsoft Entra ID, vous devez effectuer les tâches suivantes :
- Installez l’interface Azure CLI utilisée pour l’authentification sans clé avec Microsoft Entra ID.
- Attribuez le rôle
Cognitive Services User
à votre compte d’utilisateur. Vous pouvez attribuer des rôles dans le Portail Azure sous Contrôle d’accès (IAM)>Ajouter une attribution de rôle.
Configurer
Créez un dossier
chat-quickstart
et accédez au dossier de démarrage rapide avec la commande suivante :mkdir chat-quickstart && cd chat-quickstart
Installez Apache Maven. Exécutez ensuite
mvn -v
pour confirmer la réussite de l’installation.Créez un fichier
pom.xml
à la racine de votre projet, puis copiez-y le code suivant :<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.azure.samples</groupId> <artifactId>quickstart-dall-e</artifactId> <version>1.0.0-SNAPSHOT</version> <build> <sourceDirectory>src</sourceDirectory> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.7.0</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>com.azure</groupId> <artifactId>azure-ai-openai</artifactId> <version>1.0.0-beta.10</version> </dependency> <dependency> <groupId>com.azure</groupId> <artifactId>azure-core</artifactId> <version>1.53.0</version> </dependency> <dependency> <groupId>com.azure</groupId> <artifactId>azure-identity</artifactId> <version>1.15.1</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.7.9</version> </dependency> </dependencies> </project>
Installez le Kit de développement logiciel (SDK) Azure OpenAI et les dépendances.
mvn clean dependency:copy-dependencies
Pour l’authentification sans clé recommandée avec Microsoft Entra ID, connectez-vous à Azure avec la commande suivante :
az login
Récupérer des informations sur les ressources
Vous devez récupérer les informations suivantes pour authentifier votre application auprès de votre ressource Azure OpenAI :
Nom de la variable | Valeur |
---|---|
AZURE_OPENAI_ENDPOINT |
Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. |
AZURE_OPENAI_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 peut être trouvée dans le Portail Azure sous Gestion des ressources>Déploiements de modèles. |
OPENAI_API_VERSION |
En savoir plus sur les versions d’API. Vous pouvez modifier la version dans le code ou utiliser une variable d’environnement. |
En savoir plus sur l’authentification sans clé et la définition de variables d’environnement.
Exécuter l’application
L’exemple de code de ce guide de démarrage rapide utilise Microsoft Entra ID pour l’authentification sans clé recommandée. Si vous préférez utiliser une clé API, vous pouvez remplacer l’objet DefaultAzureCredential
par un AzureKeyCredential
objet.
OpenAIClient client = new OpenAIClientBuilder()
.endpoint(endpoint)
.credential(new DefaultAzureCredentialBuilder().build())
.buildAsyncClient();
Suivez ces étapes pour créer une application console pour la reconnaissance vocale.
Créez un fichier nommé Quickstart.java dans le même répertoire racine du projet.
Copiez le code suivant dans Quickstart.java :
import com.azure.ai.openai.OpenAIClient; import com.azure.ai.openai.OpenAIClientBuilder; import com.azure.ai.openai.models.ChatChoice; import com.azure.ai.openai.models.ChatCompletions; import com.azure.ai.openai.models.ChatCompletionsOptions; import com.azure.ai.openai.models.ChatRequestAssistantMessage; import com.azure.ai.openai.models.ChatRequestMessage; import com.azure.ai.openai.models.ChatRequestSystemMessage; import com.azure.ai.openai.models.ChatRequestUserMessage; import com.azure.ai.openai.models.ChatResponseMessage; import com.azure.ai.openai.models.CompletionsUsage; import com.azure.identity.DefaultAzureCredentialBuilder; import com.azure.core.util.Configuration; import java.util.ArrayList; import java.util.List; public class QuickstartEntra { public static void main(String[] args) { String endpoint = Configuration.getGlobalConfiguration().get("AZURE_OPENAI_ENDPOINT"); String deploymentOrModelId = "gpt-4o"; // Use the recommended keyless credential instead of the AzureKeyCredential credential. OpenAIClient client = new OpenAIClientBuilder() .endpoint(endpoint) .credential(new DefaultAzureCredentialBuilder().build()) .buildClient(); List<ChatRequestMessage> chatMessages = new ArrayList<>(); chatMessages.add(new ChatRequestSystemMessage("You are a helpful assistant.")); chatMessages.add(new ChatRequestUserMessage("Can I use honey as a substitute for sugar?")); chatMessages.add(new ChatRequestAssistantMessage("Yes, you can use use honey as a substitute for sugar.")); chatMessages.add(new ChatRequestUserMessage("What other ingredients can I use as a substitute for sugar?")); ChatCompletions chatCompletions = client.getChatCompletions(deploymentOrModelId, new ChatCompletionsOptions(chatMessages)); System.out.printf("Model ID=%s is created at %s.%n", chatCompletions.getId(), chatCompletions.getCreatedAt()); for (ChatChoice choice : chatCompletions.getChoices()) { ChatResponseMessage message = choice.getMessage(); System.out.printf("Index: %d, Chat Role: %s.%n", choice.getIndex(), message.getRole()); System.out.println("Message:"); System.out.println(message.getContent()); } System.out.println(); CompletionsUsage usage = chatCompletions.getUsage(); System.out.printf("Usage: number of prompt token is %d, " + "number of completion token is %d, and number of total tokens in request and response is %d.%n", usage.getPromptTokens(), usage.getCompletionTokens(), usage.getTotalTokens()); } }
Exécutez votre nouvelle application console pour générer une image :
javac Quickstart.java -cp ".;target\dependency\*" java -cp ".;target\dependency\*" Quickstart
Sortie
Model ID=chatcmpl-BDgC0Yr8YNhZFhLABQYfx6QfERsVO is created at 2025-03-21T23:35:52Z.
Index: 0, Chat Role: assistant.
Message:
If you're looking to replace sugar in cooking, baking, or beverages, there are several alternatives you can use depending on your tastes, dietary needs, and the recipe. Here's a list of common sugar substitutes:
### **Natural Sweeteners**
1. **Honey**
- Sweeter than sugar, so you may need less.
- Adds moisture to recipes.
- Adjust liquids and cooking temperature when baking to avoid over-browning.
2. **Maple Syrup**
- Provides a rich, complex flavor.
- Can be used in baking, beverages, and sauces.
- Reduce the liquid content slightly in recipes.
3. **Agave Syrup**
- Sweeter than sugar and has a mild flavor.
- Works well in drinks, smoothies, and desserts.
- Contains fructose, so use sparingly.
4. **Date Sugar or Date Paste**
- Made from dates, it's a whole-food sweetener with fiber and nutrients.
- Great for baked goods and smoothies.
- May darken recipes due to its color.
5. **Coconut Sugar**
- Similar in taste and texture to brown sugar.
- Less refined than white sugar.
- Slightly lower glycemic index, but still contains calories.
6. **Molasses**
- Dark, syrupy byproduct of sugar refining.
- Strong flavor; best for specific recipes like gingerbread or BBQ sauce.
### **Artificial Sweeteners**
1. **Stevia**
- Extracted from the leaves of the stevia plant.
- Virtually calorie-free and much sweeter than sugar.
- Available as liquid, powder, or granulated.
2. **Erythritol**
- A sugar alcohol with few calories and a clean, sweet taste.
- Doesn?t caramelize like sugar.
- Often blended with other sweeteners.
3. **Xylitol**
- A sugar alcohol similar to erythritol.
- Commonly used in baking and beverages.
- Toxic to pets (especially dogs), so handle carefully.
### **Whole Fruits**
1. **Mashed Bananas**
- Natural sweetness works well in baking.
- Adds moisture to recipes.
- Can replace sugar partially or fully depending on the dish.
2. **Applesauce (Unsweetened)**
- Adds sweetness and moisture to baked goods.
- Reduce other liquids in the recipe accordingly.
3. **Pureed Dates, Figs, or Prunes**
- Dense sweetness with added fiber and nutrients.
- Ideal for energy bars, smoothies, and baking.
### **Other Options**
1. **Brown Rice Syrup**
- Less sweet than sugar, with a mild flavor.
- Good for granola bars and baked goods.
2. **Yacon Syrup**
- Extracted from the root of the yacon plant.
- Sweet and rich in prebiotics.
- Best for raw recipes.
3. **Monk Fruit Sweetener**
- Natural sweetener derived from monk fruit.
- Often mixed with erythritol for easier use.
- Provides sweetness without calories.
### **Tips for Substitution**
- Sweeteners vary in sweetness, texture, and liquid content, so adjust recipes accordingly.
- When baking, reducing liquids or fats slightly may be necessary.
- Taste test when possible to ensure the sweetness level matches your preference.
Whether you're seeking healthier options, low-calorie substitutes, or simply alternatives for flavor, these sugar substitutes can work for a wide range of recipes!
Usage: number of prompt token is 60, number of completion token is 740, and number of total tokens in request and response is 800.
Nettoyer les ressources
Si vous souhaitez nettoyer et supprimer une ressource Azure OpenAI, vous pouvez la supprimer. Vous devez d’abord supprimer tous les modèles déployés avant de supprimer la ressource.
Étapes suivantes
- Commencez avec le chat en utilisant votre propre exemple de données pour Java
- Consultez le référentiel GitHub Azure OpenAI samples (uniquement disponible en anglais) pour découvrir d’autres exemples.
Code source | Artefacts (Maven) | Échantillon
Prérequis
- Un abonnement Azure - En créer un gratuitement
- La version actuelle du JDK (Java Development Kit)
- L’outil CLI Spring Boot
- Ressource Azure OpenAI dans azure AI Foundry Models avec le
gpt-4
modèle déployé. Pour plus d’informations sur le déploiement de modèle, consultez le guide de déploiement de ressources. Cet exemple suppose que le nom de votre déploiement correspond au nom du modèlegpt-4
Configurer
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 |
Le point de terminaison de service se trouve dans la section Clés et point de terminaison quand vous examinerez votre ressource à partir du Portail Azure. Sinon, vous pouvez trouver le point de terminaison via la page Déploiements dans le portail Azure AI Foundry. 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.
Variables d'environnement
Créez et affectez des variables d’environnement persistantes pour votre clé et votre point de terminaison.
Important
Utilisez les clés API avec précaution. N'incluez pas la clé API directement dans votre code et ne la diffusez jamais publiquement. Si vous utilisez une clé API, stockez-la en lieu sûr dans Azure Key Vault. Pour plus d’informations sur l’utilisation sécurisée des clés API dans vos applications, consultez Clés API avec Azure Key Vault.
Pour plus d’informations sur la sécurité des services IA, consultez Authentifier les requêtes auprès d’Azure AI services.
Remarque
Spring AI affecte par défaut le nom du modèle à gpt-35-turbo
. Il n’est nécessaire de fournir la valeur SPRING_AI_AZURE_OPENAI_MODEL
que si vous avez déployé un modèle avec un autre nom.
export SPRING_AI_AZURE_OPENAI_API_KEY="REPLACE_WITH_YOUR_KEY_VALUE_HERE"
export SPRING_AI_AZURE_OPENAI_ENDPOINT="REPLACE_WITH_YOUR_ENDPOINT_HERE"
export SPRING_AI_AZURE_OPENAI_MODEL="REPLACE_WITH_YOUR_MODEL_NAME_HERE"
Créer une application Spring
Créez un projet Spring.
Dans une fenêtre Bash, créez un répertoire pour votre application et accédez-y.
mkdir ai-chat-demo && cd ai-chat-demo
Exécutez la commande spring init
à partir de votre répertoire de travail. Cette commande crée une structure de répertoires standard pour votre projet Spring, y compris le fichier source de classe Java principal et le fichier pom.xml utilisé pour la gestion des projets Maven.
spring init -a ai-chat-demo -n AIChat --force --build maven -x
Les fichiers et dossiers générés ressemblent à la structure suivante :
ai-chat-demo/
|-- pom.xml
|-- mvn
|-- mvn.cmd
|-- HELP.md
|-- src/
|-- main/
| |-- resources/
| | |-- application.properties
| |-- java/
| |-- com/
| |-- example/
| |-- aichatdemo/
| |-- AiChatApplication.java
|-- test/
|-- java/
|-- com/
|-- example/
|-- aichatdemo/
|-- AiChatApplicationTests.java
Modifier l’application Spring
Modifiez le fichier pom.xml.
À partir de la racine du répertoire du projet, ouvrez le fichier pom.xml dans votre éditeur ou IDE préféré et remplacez le fichier par le contenu suivant :
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.3.4</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>ai-chat-demo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>AIChat</name> <description>Demo project for Spring Boot</description> <properties> <java.version>17</java.version> <spring-ai.version>1.0.0-M5</spring-ai.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-azure-openai-spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-bom</artifactId> <version>${spring-ai.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> <repositories> <repository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> </project>
À partir du dossier src/main/java/com/example/aichatdemo, ouvrez AiChatApplication.java dans votre éditeur ou IDE préféré et collez le code suivant :
package com.example.aichatdemo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.ai.chat.client.ChatClient; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; @SpringBootApplication public class AiChatApplication { private static final Logger log = LoggerFactory.getLogger(AiChatApplication.class); public static void main(String[] args) { SpringApplication.run(AiChatApplication.class, args); } @Bean CommandLineRunner commandLineRunner(ChatClient.Builder builder) { return args -> { var chatClient = builder.build(); log.info("Sending chat prompts to AI service. One moment please..."); String response = chatClient.prompt() .user("What was Microsoft's original internal codename for the project that eventually became Azure?") .call() .content(); log.info("Response: {}", response); }; } }
Important
Pour la production, utilisez un moyen sécurisé de stocker et d’accéder à vos informations d’identification comme Azure Key Vault. Pour plus d’informations sur la sécurité des informations d’identification, consultez cet article de sécurité .
Revenez au dossier racine du projet et exécutez l’application à l’aide de la commande suivante :
./mvnw spring-boot:run
Sortie
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v3.3.4)
2025-03-14T13:35:30.145-04:00 INFO 93252 --- [AIChat] [ main] c.example.aichatdemo.AiChatApplication : Starting AiChatApplication using Java 23.0.2 with PID 93252 (/Users/vega/dev/msft/spring-ai-samples/ai-chat-demo/target/classes started by vega in /Users/vega/dev/msft/spring-ai-samples/ai-chat-demo)
2025-03-14T13:35:30.146-04:00 INFO 93252 --- [AIChat] [ main] c.example.aichatdemo.AiChatApplication : No active profile set, falling back to 1 default profile: "default"
2025-03-14T13:35:30.500-04:00 INFO 93252 --- [AIChat] [ main] c.example.aichatdemo.AiChatApplication : Started AiChatApplication in 0.445 seconds (process running for 0.633)
2025-03-14T13:35:30.501-04:00 INFO 93252 --- [AIChat] [ main] c.example.aichatdemo.AiChatApplication : Sending chat prompts to AI service. One moment please...
2025-03-14T13:35:31.950-04:00 INFO 93252 --- [AIChat] [ main] c.example.aichatdemo.AiChatApplication : Response: Microsoft's original internal codename for the project that eventually became Azure was "Project Red Dog." This initiative ultimately led to the development and launch of the Microsoft Azure cloud computing platform.
Nettoyer les ressources
Si vous souhaitez nettoyer et supprimer une ressource Azure OpenAI, vous pouvez la supprimer. Vous devez d’abord supprimer tous les modèles déployés avant de supprimer la ressource.
Étapes suivantes
Consultez le référentiel GitHub Azure OpenAI samples (uniquement disponible en anglais) pour découvrir d’autres exemples.
Code source | Package (npm) | Exemples
Remarque
Ce guide utilise le dernier package npm OpenAI, qui prend désormais entièrement en charge Azure OpenAI. Si vous recherchez des exemples de code pour le kit SDK JavaScript hérité d’Azure OpenAI, ils sont toujours disponibles dans ce référentiel.
Prérequis
- Un abonnement Azure - En créer un gratuitement
- Versions LTS de Node.js
- 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 dans azure AI Foundry Models avec un
gpt-4
modèle de série déployé. Pour plus d’informations sur le déploiement de modèle, consultez le guide de déploiement de ressources.
Prérequis pour Microsoft Entra ID
Pour l’authentification sans clé recommandée avec Microsoft Entra ID, vous devez effectuer les tâches suivantes :
- Installez l’interface Azure CLI utilisée pour l’authentification sans clé avec Microsoft Entra ID.
- Attribuez le rôle
Cognitive Services User
à votre compte d’utilisateur. Vous pouvez attribuer des rôles dans le Portail Azure sous Contrôle d’accès (IAM)>Ajouter une attribution de rôle.
Configurer
Créez un dossier
chat-quickstart
et accédez au dossier de démarrage rapide avec la commande suivante :mkdir chat-quickstart && cd chat-quickstart
Créez le
package.json
avec la commande suivante :npm init -y
Installez la bibliothèque de client OpenAI pour JavaScript avec :
npm install openai
Pour l’authentification sans mot de passe recommandée :
npm install @azure/identity
Récupérer des informations sur les ressources
Vous devez récupérer les informations suivantes pour authentifier votre application auprès de votre ressource Azure OpenAI :
Nom de la variable | Valeur |
---|---|
AZURE_OPENAI_ENDPOINT |
Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. |
AZURE_OPENAI_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 peut être trouvée dans le Portail Azure sous Gestion des ressources>Déploiements de modèles. |
OPENAI_API_VERSION |
En savoir plus sur les versions d’API. Vous pouvez modifier la version dans le code ou utiliser une variable d’environnement. |
En savoir plus sur l’authentification sans clé et la définition de variables d’environnement.
Attention
Pour utiliser l’authentification sans clé recommandée avec le kit de développement logiciel (SDK), vérifiez que la variable d’environnement AZURE_OPENAI_API_KEY
n’est pas définie.
Créer un exemple d’application
Remplacez le fichier
index.js
avec le code suivant :const { AzureOpenAI } = require("openai"); const { DefaultAzureCredential, getBearerTokenProvider } = require("@azure/identity"); // You will need to set these environment variables or edit the following values const endpoint = process.env.AZURE_OPENAI_ENDPOINT || "Your endpoint"; const apiVersion = process.env.OPENAI_API_VERSION || "2024-05-01-preview"; const deployment = process.env.AZURE_OPENAI_DEPLOYMENT_NAME || "gpt-4o"; //This must match your deployment name. // keyless authentication const credential = new DefaultAzureCredential(); const scope = "https://cognitiveservices.azure.com/.default"; const azureADTokenProvider = getBearerTokenProvider(credential, scope); async function main() { const client = new AzureOpenAI({ endpoint, apiKey, azureADTokenProvider, deployment }); const result = await client.chat.completions.create({ messages: [ { role: "system", content: "You are a helpful assistant." }, { role: "user", content: "Does Azure OpenAI support customer managed keys?" }, { role: "assistant", content: "Yes, customer managed keys are supported by Azure OpenAI?" }, { role: "user", content: "Do other Azure services support this too?" }, ], model: "", }); for (const choice of result.choices) { console.log(choice.message); } } main().catch((err) => { console.error("The sample encountered an error:", err); }); module.exports = { main };
Connectez-vous à Azure à l’aide de la commande suivante :
az login
Exécutez le fichier JavaScript.
node index.js
Sortie
== Chat Completions Sample ==
{
content: 'Yes, several other Azure services also support customer managed keys for enhanced security and control over encryption keys.',
role: 'assistant'
}
Remarque
Si vous recevez l’erreur Une erreur s’est produite : OpenAIError : les arguments apiKey
et azureADTokenProvider
s’excluent mutuellement ; un seul peut être passé à la fois. Vous devrez peut-être supprimer de votre système une variable d’environnement préexistante pour la clé API. Même si l’exemple de code Microsoft Entra ID ne référence pas explicitement la variable d’environnement de la clé API, si une telle variable est présente sur le système exécutant cet exemple, cette erreur est tout de même générée.
Nettoyer les ressources
Si vous souhaitez nettoyer et supprimer une ressource Azure OpenAI, vous pouvez la supprimer. Vous devez d’abord supprimer tous les modèles déployés avant de supprimer la ressource.
Étapes suivantes
- Vue d’ensemble d’Azure OpenAI
- Commencez avec le chat en utilisant votre propre exemple de données pour JavaScript
- Consultez le référentiel GitHub Azure OpenAI samples (uniquement disponible en anglais) pour découvrir d’autres exemples.
Code source | Package (npm) | Exemples
Remarque
Ce guide utilise le dernier package npm OpenAI, qui prend désormais entièrement en charge Azure OpenAI. Si vous recherchez des exemples de code pour le kit SDK JavaScript hérité d’Azure OpenAI, ils sont toujours disponibles dans ce référentiel.
Prérequis
- Un abonnement Azure - En créer un gratuitement
- Versions LTS de Node.js
- TypeScript
- 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 dans azure AI Foundry Models avec un
gpt-4
modèle de série déployé. Pour plus d’informations sur le déploiement de modèle, consultez le guide de déploiement de ressources.
Prérequis pour Microsoft Entra ID
Pour l’authentification sans clé recommandée avec Microsoft Entra ID, vous devez effectuer les tâches suivantes :
- Installez l’interface Azure CLI utilisée pour l’authentification sans clé avec Microsoft Entra ID.
- Attribuez le rôle
Cognitive Services User
à votre compte d’utilisateur. Vous pouvez attribuer des rôles dans le Portail Azure sous Contrôle d’accès (IAM)>Ajouter une attribution de rôle.
Configurer
Créez un dossier
chat-quickstart
et accédez au dossier de démarrage rapide avec la commande suivante :mkdir chat-quickstart && cd chat-quickstart
Créez le
package.json
avec la commande suivante :npm init -y
Mettez à jour le
package.json
vers ECMAScript avec la commande suivante :npm pkg set type=module
Installez la bibliothèque de client OpenAI pour JavaScript avec :
npm install openai
Pour l’authentification sans mot de passe recommandée :
npm install @azure/identity
Récupérer des informations sur les ressources
Vous devez récupérer les informations suivantes pour authentifier votre application auprès de votre ressource Azure OpenAI :
Nom de la variable | Valeur |
---|---|
AZURE_OPENAI_ENDPOINT |
Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. |
AZURE_OPENAI_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 peut être trouvée dans le Portail Azure sous Gestion des ressources>Déploiements de modèles. |
OPENAI_API_VERSION |
En savoir plus sur les versions d’API. Vous pouvez modifier la version dans le code ou utiliser une variable d’environnement. |
En savoir plus sur l’authentification sans clé et la définition de variables d’environnement.
Attention
Pour utiliser l’authentification sans clé recommandée avec le kit de développement logiciel (SDK), vérifiez que la variable d’environnement AZURE_OPENAI_API_KEY
n’est pas définie.
Créer un exemple d’application
Remplacez le fichier
index.ts
avec le code suivant :import { AzureOpenAI } from "openai"; import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity"; import type { ChatCompletion, ChatCompletionCreateParamsNonStreaming, } from "openai/resources/index"; // You will need to set these environment variables or edit the following values const endpoint = process.env.AZURE_OPENAI_ENDPOINT || "Your endpoint"; // Required Azure OpenAI deployment name and API version const apiVersion = process.env.OPENAI_API_VERSION || "2024-08-01-preview"; const deploymentName = process.env.AZURE_OPENAI_DEPLOYMENT_NAME || "gpt-4o-mini"; //This must match your deployment name. // keyless authentication const credential = new DefaultAzureCredential(); const scope = "https://cognitiveservices.azure.com/.default"; const azureADTokenProvider = getBearerTokenProvider(credential, scope); function getClient(): AzureOpenAI { return new AzureOpenAI({ endpoint, azureADTokenProvider, apiVersion, deployment: deploymentName, }); } function createMessages(): ChatCompletionCreateParamsNonStreaming { return { messages: [ { role: "system", content: "You are a helpful assistant." }, { role: "user", content: "Does Azure OpenAI support customer managed keys?", }, { role: "assistant", content: "Yes, customer managed keys are supported by Azure OpenAI?", }, { role: "user", content: "Do other Azure services support this too?" }, ], model: "", }; } async function printChoices(completion: ChatCompletion): Promise<void> { for (const choice of completion.choices) { console.log(choice.message); } } export async function main() { const client = getClient(); const messages = createMessages(); const result = await client.chat.completions.create(messages); await printChoices(result); } main().catch((err) => { console.error("The sample encountered an error:", err); });
Créez le fichier
tsconfig.json
pour transpiler le code TypeScript et copiez le code suivant pour ECMAScript.{ "compilerOptions": { "module": "NodeNext", "target": "ES2022", // Supports top-level await "moduleResolution": "NodeNext", "skipLibCheck": true, // Avoid type errors from node_modules "strict": true // Enable strict type-checking options }, "include": ["*.ts"] }
Transpiler de TypeScript à JavaScript.
tsc
Exécutez le code avec la commande suivante :
node index.js
Sortie
== Chat Completions Sample ==
{
content: 'Yes, several other Azure services also support customer managed keys for enhanced security and control over encryption keys.',
role: 'assistant'
}
Remarque
Si vous recevez l’erreur Une erreur s’est produite : OpenAIError : les arguments apiKey
et azureADTokenProvider
s’excluent mutuellement ; un seul peut être passé à la fois. Vous devrez peut-être supprimer de votre système une variable d’environnement préexistante pour la clé API. Même si l’exemple de code Microsoft Entra ID ne référence pas explicitement la variable d’environnement de la clé API, si une telle variable est présente sur le système exécutant cet exemple, cette erreur est tout de même générée.
Nettoyer les ressources
Si vous souhaitez nettoyer et supprimer une ressource Azure OpenAI, vous pouvez la supprimer. Vous devez d’abord supprimer tous les modèles déployés avant de supprimer la ressource.
Étapes suivantes
- Vue d’ensemble d’Azure OpenAI
- Consultez le référentiel GitHub Azure OpenAI samples (uniquement disponible en anglais) pour découvrir d’autres exemples.
Code source de la bibliothèque | Package (PyPi) | Modèle de conversation d’entreprise de la génération augmentée de récupération (RAG) |
Prérequis
- Un abonnement Azure - En créer un gratuitement
- Python 3.8 ou version ultérieure.
- Bibliothèques Python suivantes : os.
- Ressource Azure OpenAI dans azure AI Foundry Models avec les modèles déployés
gpt-35-turbo
ou lesgpt-4
modèles déployés. Pour plus d’informations sur le déploiement de modèle, consultez le guide de déploiement de ressources.
Configurer
Installez la bibliothèque de client Python OpenAI avec :
pip install openai
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 correctement un appel sur Azure OpenAI, vous avez besoin d’un point de terminaison et d’une clé.
Nom de la variable | Valeur |
---|---|
ENDPOINT |
Le point de terminaison de service se trouve dans la section Clés et point de terminaison quand vous examinerez votre ressource à partir du Portail Azure. Sinon, vous pouvez trouver le point de terminaison via la page Déploiements dans le portail Azure AI Foundry. 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.
Variables d'environnement
Créez et affectez des variables d’environnement persistantes pour votre clé et votre point de terminaison.
Important
Nous vous recommandons l’authentification Microsoft Entra ID avec les identités managées pour les ressources Azure pour éviter de stocker des informations d’identification avec vos applications qui s’exécutent dans le cloud.
Utilisez les clés API avec précaution. N'incluez pas la clé API directement dans votre code et ne la diffusez jamais publiquement. Si vous utilisez des clés API, stockez-les en lieu sûr dans Azure Key Vault, faites tourner les clés régulièrement et limitez l’accès à Azure Key Vault à l’aide du contrôle d’accès en fonction du rôle et des restrictions d’accès réseau. Pour plus d’informations sur l’utilisation sécurisée des clés API dans vos applications, consultez Clés API avec Azure Key Vault.
Pour plus d’informations sur la sécurité des services IA, consultez Authentifier les requêtes auprès d’Azure AI services.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Créer une application Python
Créez un fichier Python appelé quickstart.py. Ensuite, ouvrez-le dans l’éditeur ou l’IDE de votre choix.
Remplacez le contenu du fichier quickstart.py par le code suivant.
Vous devez définir la variable model
sur le nom du déploiement que vous avez choisi quand vous avez déployé les modèles GPT-3.5-Turbo ou GPT-4. L’entrée du nom du modèle entraîne une erreur, sauf si vous avez choisi un nom de déploiement identique au nom du modèle sous-jacent.
import os
from openai import AzureOpenAI
client = AzureOpenAI(
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"),
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-02-01"
)
response = client.chat.completions.create(
model="gpt-35-turbo", # model = "deployment_name".
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},
{"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},
{"role": "user", "content": "Do other Azure services support this too?"}
]
)
print(response.choices[0].message.content)
Important
Pour la production, utilisez un moyen sécurisé de stocker et d’accéder à vos informations d’identification comme Azure Key Vault. Pour plus d’informations sur la sécurité des informations d’identification, consultez cet article de sécurité .
Exécutez l’application avec la commande
python
de votre fichier de démarrage rapide :python quickstart.py
Sortie
{
"choices": [
{
"finish_reason": "stop",
"index": 0,
"message": {
"content": "Yes, most of the Azure services support customer managed keys. However, not all services support it. You can check the documentation of each service to confirm if customer managed keys are supported.",
"role": "assistant"
}
}
],
"created": 1679001781,
"id": "chatcmpl-6upLpNYYOx2AhoOYxl9UgJvF4aPpR",
"model": "gpt-3.5-turbo-0301",
"object": "chat.completion",
"usage": {
"completion_tokens": 39,
"prompt_tokens": 58,
"total_tokens": 97
}
}
Yes, most of the Azure services support customer managed keys. However, not all services support it. You can check the documentation of each service to confirm if customer managed keys are supported.
Présentation de la structure des messages
Les modèles GPT-35-Turbo et GPT-4 sont optimisés pour fonctionner avec des entrées au format de conversation. La variable messages
transmet un tableau de dictionnaires avec différents rôles dans la conversation délimités par système, utilisateur et assistant. Le message système peut être utilisé pour amorcer le modèle en intégrant du contexte ou des instructions sur la manière dont le modèle doit répondre.
Le Guide pratique de GPT-35-Turbo et GPT-4 fournit une introduction détaillée aux options pour communiquer avec ces nouveaux modèles.
Nettoyer les ressources
Si vous souhaitez nettoyer et supprimer une ressource Azure OpenAI, vous pouvez la supprimer. Vous devez d’abord supprimer tous les modèles déployés avant de supprimer la ressource.
Étapes suivantes
- En savoir plus sur l’utilisation des modèles GPT-35-Turbo et GPT-4 avec notre guide pratique.
- Démarrez avec le chat à l’aide de votre propre exemple de données pour Python
- Consultez le référentiel GitHub Azure OpenAI samples (uniquement disponible en anglais) pour découvrir d’autres exemples.
Prérequis
- Un abonnement Azure : créez-en un gratuitement.
- Ressource Azure OpenAI dans azure AI Foundry Models avec les modèles déployés
gpt-35-turbo
ou lesgpt-4
modèles déployés. Pour plus d’informations sur le déploiement de modèle, consultez le guide de déploiement de ressources.
Configurer
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 |
Le point de terminaison de service se trouve dans la section Clés et point de terminaison quand vous examinerez votre ressource à partir du Portail Azure. Sinon, vous pouvez trouver le point de terminaison via la page Déploiements dans le portail Azure AI Foundry. 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.
Variables d'environnement
Créez et affectez des variables d’environnement persistantes pour votre clé et votre point de terminaison.
Important
Nous vous recommandons l’authentification Microsoft Entra ID avec les identités managées pour les ressources Azure pour éviter de stocker des informations d’identification avec vos applications qui s’exécutent dans le cloud.
Utilisez les clés API avec précaution. N'incluez pas la clé API directement dans votre code et ne la diffusez jamais publiquement. Si vous utilisez des clés API, stockez-les en lieu sûr dans Azure Key Vault, faites tourner les clés régulièrement et limitez l’accès à Azure Key Vault à l’aide du contrôle d’accès en fonction du rôle et des restrictions d’accès réseau. Pour plus d’informations sur l’utilisation sécurisée des clés API dans vos applications, consultez Clés API avec Azure Key Vault.
Pour plus d’informations sur la sécurité des services IA, consultez Authentifier les requêtes auprès d’Azure AI services.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
API REST
Dans un interpréteur de commandes bash, exécutez la commande suivante. Vous devez remplacer gpt-35-turbo
par le nom de déploiement que vous avez choisi lors du déploiement des modèles GPT-35-Turbo ou GPT-4. L’entrée du nom du modèle entraîne une erreur, sauf si vous avez choisi un nom de déploiement identique au nom du modèle sous-jacent.
curl $AZURE_OPENAI_ENDPOINT/openai/deployments/gpt-35-turbo/chat/completions?api-version=2024-02-01 \
-H "Content-Type: application/json" \
-H "api-key: $AZURE_OPENAI_API_KEY" \
-d '{"messages":[{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},{"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},{"role": "user", "content": "Do other Azure services support this too?"}]}'
Le format de la première ligne de votre commande avec un exemple de point de terminaison s'afficherait comme suit curl https://docs-test-001.openai.azure.com/openai/deployments/{YOUR-DEPLOYMENT_NAME_HERE}/chat/completions?api-version=2024-02-01 \
. Si vous rencontrez une erreur, vérifiez bien qu'il n'y a pas de doublement de /
à la séparation entre votre point de terminaison et /openai/deployments
.
Si vous souhaitez exécuter cette commande dans une invite de commandes Windows normale, vous devez modifier le texte pour supprimer les \
et les sauts de ligne.
Important
Pour la production, utilisez un moyen sécurisé de stocker et d’accéder à vos informations d’identification comme Azure Key Vault. Pour plus d’informations sur la sécurité des informations d’identification, consultez cet article de sécurité .
Sortie
{"id":"chatcmpl-6v7mkQj980V1yBec6ETrKPRqFjNw9",
"object":"chat.completion","created":1679072642,
"model":"gpt-35-turbo",
"usage":{"prompt_tokens":58,
"completion_tokens":68,
"total_tokens":126},
"choices":[{"message":{"role":"assistant",
"content":"Yes, many other Azure services also support customer managed keys. Azure OpenAI offers multiple options for customers to manage keys, such as using Azure Key Vault, customer-managed keys in Azure Key Vault or customer-managed keys through Azure Storage service. This helps customers ensure that their data is secure and access to their services is controlled."},"finish_reason":"stop","index":0}]}
Mise en forme de sortie ajustée pour faciliter la lecture. La sortie réelle est un seul bloc de texte sans saut de ligne.
Présentation de la structure des messages
Les modèles GPT-35-Turbo et GPT-4 sont optimisés pour fonctionner avec des entrées au format de conversation. La variable messages
transmet un tableau de dictionnaires avec différents rôles dans la conversation délimités par système, utilisateur et assistant. Le message système peut être utilisé pour amorcer le modèle en intégrant du contexte ou des instructions sur la manière dont le modèle doit répondre.
Le Guide pratique de GPT-35-Turbo et GPT-4 fournit une introduction détaillée aux options pour communiquer avec ces nouveaux modèles.
Nettoyer les ressources
Si vous souhaitez nettoyer et supprimer une ressource Azure OpenAI, vous pouvez la supprimer. Vous devez d’abord supprimer tous les modèles déployés avant de supprimer la ressource.
Étapes suivantes
- En savoir plus sur l’utilisation des modèles GPT-35-Turbo et GPT-4 avec notre guide pratique.
- Consultez le référentiel GitHub Azure OpenAI samples (uniquement disponible en anglais) pour découvrir d’autres exemples.
Prérequis
- Un abonnement Azure - En créer un gratuitement
- Vous pouvez utiliser la dernière version, PowerShell 7, ou Windows PowerShell 5.1.
- Ressource Azure OpenAI dans azure AI Foundry Models avec un modèle déployé. Pour plus d’informations sur le déploiement de modèle, consultez le guide de déploiement de ressources.
- Ressource Azure OpenAI avec le modèle
gpt-4o
déployé. Pour plus d’informations sur le déploiement de modèle, consultez le guide de déploiement de ressources.
Prérequis pour Microsoft Entra ID
Pour l’authentification sans clé recommandée avec Microsoft Entra ID, vous devez effectuer les tâches suivantes :
- Installez l’interface Azure CLI utilisée pour l’authentification sans clé avec Microsoft Entra ID.
- Attribuez le rôle
Cognitive Services User
à votre compte d’utilisateur. Vous pouvez attribuer des rôles dans le Portail Azure sous Contrôle d’accès (IAM)>Ajouter une attribution de rôle.
Récupérer des informations sur les ressources
Vous devez récupérer les informations suivantes pour authentifier votre application auprès de votre ressource Azure OpenAI :
Nom de la variable | Valeur |
---|---|
AZURE_OPENAI_ENDPOINT |
Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. |
AZURE_OPENAI_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 peut être trouvée dans le Portail Azure sous Gestion des ressources>Déploiements de modèles. |
OPENAI_API_VERSION |
En savoir plus sur les versions d’API. Vous pouvez modifier la version dans le code ou utiliser une variable d’environnement. |
En savoir plus sur l’authentification sans clé et la définition de variables d’environnement.
Créer un nouveau script PowerShell
Pour l’authentification sans clé recommandée avec Microsoft Entra ID, connectez-vous à Azure avec la commande suivante :
az login
Créez un fichier PowerShell appelé quickstart.ps1. Ensuite, ouvrez-le dans l’éditeur ou l’IDE de votre choix.
Remplacez le contenu du fichier quickstart.ps1 par le code suivant. Vous devez définir la
engine
variable sur le nom de déploiement que vous avez choisi lorsque vous avez déployé le modèle GPT-4o. L’entrée du nom du modèle entraîne une erreur, sauf si vous avez choisi un nom de déploiement identique au nom du modèle sous-jacent.# Azure OpenAI metadata variables $openai = @{ api_base = $Env:AZURE_OPENAI_ENDPOINT api_version = '2024-10-21' # This can change in the future. name = 'gpt-4o' # The name you chose for your model deployment. } # Use the recommended keyless authentication via bearer token. $headers = [ordered]@{ #'api-key' = $Env:AZURE_OPENAI_API_KEY 'Authorization' = "Bearer $($Env:DEFAULT_AZURE_CREDENTIAL_TOKEN)" } # Completion text $messages = @() $messages += @{ role = 'system' content = 'You are a helpful assistant.' } $messages += @{ role = 'user' content = 'Can I use honey as a substitute for sugar?' } $messages += @{ role = 'assistant' content = 'Yes, you can use honey as a substitute for sugar.' } $messages += @{ role = 'user' content = 'What other ingredients can I use as a substitute for sugar?' } # Adjust these values to fine-tune completions $body = [ordered]@{ messages = $messages } | ConvertTo-Json # Send a request to generate an answer $url = "$($openai.api_base)/openai/deployments/$($openai.name)/chat/completions?api-version=$($openai.api_version)" $response = Invoke-RestMethod -Uri $url -Headers $headers -Body $body -Method Post -ContentType 'application/json' return $response
Important
Pour la production, utilisez un moyen sécurisé de stocker et d’accéder à vos informations d’identification, comme La gestion des secrets PowerShell dans Azure Key Vault. Pour plus d’informations sur la sécurité des informations d’identification, consultez cet article de sécurité .
Exécutez le script à l’aide de PowerShell. Dans cet exemple, nous utilisons le
-Depth
paramètre pour vous assurer que la sortie n’est pas tronquée../quickstart.ps1 | ConvertTo-Json -Depth 4
Sortie
La sortie du script est un objet JSON qui contient la réponse d’Azure OpenAI. Le résultat ressemble à ce qui suit :
{
"choices": [
{
"content_filter_results": {
"custom_blocklists": {
"filtered": false
},
"hate": {
"filtered": false,
"severity": "safe"
},
"protected_material_code": {
"filtered": false,
"detected": false
},
"protected_material_text": {
"filtered": false,
"detected": false
},
"self_harm": {
"filtered": false,
"severity": "safe"
},
"sexual": {
"filtered": false,
"severity": "safe"
},
"violence": {
"filtered": false,
"severity": "safe"
}
},
"finish_reason": "stop",
"index": 0,
"logprobs": null,
"message": {
"content": "There are many alternatives to sugar that can be used in cooking and baking, depending on your dietary needs, taste preferences, and the type of recipe you're making. Here are some popular sugar substitutes:\n\n---\n\n### 1. **Natural Sweeteners**\n - **Maple Syrup**: A natural sweetener with a rich, distinct flavor. Use about ¾ cup of maple syrup for every cup of sugar, and reduce the liquid in the recipe slightly.\n - **Agave Nectar**: A liquid sweetener that’s sweeter than sugar. Use about ⅔ cup of agave nectar for each cup of sugar, and reduce the liquid in the recipe.\n - **Coconut Sugar**: Made from the sap of the coconut palm, it has a mild caramel flavor. Substitute in a 1:1 ratio for sugar.\n - **Molasses**: A by-product of sugar production, molasses is rich in flavor and best for recipes like gingerbread or barbecue sauce. Adjust quantities based on the recipe.\n - **Stevia (Natural)**: Derived from the stevia plant, it's intensely sweet and available in liquid or powder form. Use sparingly, as a little goes a long way.\n\n---\n\n### 2. **Fruit-Based Sweeteners**\n - **Ripe Bananas**: Mashed bananas work well for baking recipes like muffins or pancakes. Use about ½ cup of mashed banana for every cup of sugar and reduce the liquid slightly.\n - **Applesauce**: Unsweetened applesauce adds sweetness and moisture to baked goods. Replace sugar in a 1:1 ratio, but reduce the liquid by ¼ cup.\n - **Dates/Date Paste**: Blend dates with water to make a paste, which works well in recipes like energy bars, cakes, or smoothies. Use in a 1:1 ratio for sugar.\n - **Fruit Juices (e.g., orange juice)**: Can be used to impart natural sweetness but is best suited for specific recipes like marinades or desserts.\n\n---\n\n### 3. **Artificial and Low-Calorie Sweeteners**\n - **Erythritol**: A sugar alcohol with no calories. Substitute in equal amounts, but be careful as it may cause a cooling sensation in some recipes.\n - **Xylitol**: Another sugar alcohol, often used in gum and candies. It’s a 1:1 sugar substitute but may affect digestion if consumed in large quantities.\n - **Monk Fruit Sweetener**: A natural, calorie-free sweetener that’s significantly sweeter than sugar. Follow the product packaging for exact substitution measurements.\n - **Aspartame, Sucralose, or Saccharin** (Artificial Sweeteners): Often used for calorie reduction in beverages or desserts. Follow package instructions for substitution.\n\n---\n\n### 4. **Other Natural Alternatives**\n - **Brown Rice Syrup**: A sticky, malt-flavored syrup used in granolas or desserts. Substitute 1 ¼ cups of brown rice syrup for every cup of sugar.\n - **Barley Malt Syrup**: A thick, dark syrup with a distinct flavor. It can replace sugar but might require recipe adjustments due to its strong taste.\n - **Yacon Syrup**: Made from the root of the yacon plant, it’s similar in texture to molasses and has a mild sweetness.\n\n---\n\n### General Tips for Substituting Sugar:\n- **Adjust Liquids:** Many liquid sweeteners (like honey or maple syrup) require reducing the liquid in the recipe to maintain texture.\n- **Baking Powder Adjustment:** If replacing sugar with an acidic sweetener (e.g., honey or molasses), you might need to add a little baking soda to neutralize acidity.\n- **Flavor Changes:** Some substitutes, like molasses or coconut sugar, have distinct flavors that can influence the taste of your recipe.\n- **Browning:** Sugar contributes to caramelization and browning in baked goods. Some alternatives may yield lighter-colored results.\n\nBy trying out different substitutes, you can find what works best for your recipes!",
"refusal": null,
"role": "assistant"
}
}
],
"created": 1742602230,
"id": "chatcmpl-BDgjWjEboQ0z6r58pvSBgH842JbB2",
"model": "gpt-4o-2024-11-20",
"object": "chat.completion",
"prompt_filter_results": [
{
"prompt_index": 0,
"content_filter_results": {
"custom_blocklists": {
"filtered": false
},
"hate": {
"filtered": false,
"severity": "safe"
},
"jailbreak": {
"filtered": false,
"detected": false
},
"self_harm": {
"filtered": false,
"severity": "safe"
},
"sexual": {
"filtered": false,
"severity": "safe"
},
"violence": {
"filtered": false,
"severity": "safe"
}
}
}
],
"system_fingerprint": "fp_a42ed5ff0c",
"usage": {
"completion_tokens": 836,
"completion_tokens_details": {
"accepted_prediction_tokens": 0,
"audio_tokens": 0,
"reasoning_tokens": 0,
"rejected_prediction_tokens": 0
},
"prompt_tokens": 60,
"prompt_tokens_details": {
"audio_tokens": 0,
"cached_tokens": 0
},
"total_tokens": 896
}
}
Remarques
Vous pouvez ignorer l’étape ConvertTo-Json
si vous souhaitez afficher la sortie brute.
./quickstart.ps1
Le résultat doit ressembler à ceci :
choices : {@{content_filter_results=; finish_reason=stop; index=0; logprobs=; message=}}
created : 1742602727
id : chatcmpl-BDgrX0BF38mZuszFeyU1NKZSiRpSX
model : gpt-4o-2024-11-20
object : chat.completion
prompt_filter_results : {@{prompt_index=0; content_filter_results=}}
system_fingerprint : fp_b705f0c291
usage : @{completion_tokens=944; completion_tokens_details=; prompt_tokens=60; prompt_tokens_details=; total_tokens=1004}
Vous pouvez modifier le contenu du script powershell.ps1 pour renvoyer l’objet entier ou une propriété spécifique. Par exemple, pour renvoyer le texte retourné, vous pouvez remplacer la dernière ligne du script (return $response
) par les éléments suivants :
return $response.choices.message.content
Ensuite, réexécutez le script.
./quickstart.ps1
Le résultat doit ressembler à ceci :
There are several ingredients that can be used as substitutes for sugar, depending on the recipe and your dietary preferences. Here are some popular options:
---
### **Natural Sweeteners**
1. **Maple Syrup**
- Flavor: Rich and slightly caramel-like.
- Use: Works well in baking, sauces, oatmeal, and beverages.
- Substitution: Replace sugar in a 1:1 ratio but reduce the liquid in your recipe by about 3 tablespoons per cup of maple syrup.
2. **Agave Nectar**
- Flavor: Mildly sweet, less pronounced than honey.
- Use: Good for beverages, desserts, and dressings.
- Substitution: Use about 2/3 cup of agave nectar for every 1 cup of sugar, and reduce other liquids slightly.
3. **Molasses**
- Flavor: Strong, earthy, and slightly bitter.
- Use: Perfect for gingerbread, cookies, and marinades.
- Substitution: Replace sugar in equal amounts, but adjust for the strong flavor.
4. **Date Paste**
- Flavor: Naturally sweet with hints of caramel.
- Use: Works well in energy bars, smoothies, or baking recipes.
- Substitution: Blend pitted dates with water to create paste (about 1:1 ratio). Use equal amounts in recipes.
5. **Coconut Sugar**
- Flavor: Similar to brown sugar, mildly caramel-like.
- Use: Excellent for baking.
- Substitution: Replace sugar in a 1:1 ratio.
---
### **Low-Calorie Sweeteners**
1. **Stevia**
- Flavor: Very sweet but can have a slightly bitter aftertaste.
- Use: Works in beverages, desserts, and some baked goods.
- Substitution: Use less—around 1 teaspoon of liquid stevia or 1/2 teaspoon stevia powder for 1 cup of sugar. Check the package for exact conversion.
2. **Erythritol**
- Flavor: Similar to sugar but less sweet.
- Use: Perfect for baked goods and beverages.
- Substitution: Replace sugar using a 1:1 ratio, though you may need to adjust for less sweetness.
3. **Xylitol**
- Flavor: Similar to sugar.
- Use: Great for baking or cooking but avoid using it for recipes requiring caramelization.
- Substitution: Use a 1:1 ratio.
---
### **Fruit-Based Sweeteners**
1. **Mashed Bananas**
- Flavor: Sweet with a fruity note.
- Use: Great for muffins, cakes, and pancakes.
- Substitution: Use 1 cup mashed banana for 1 cup sugar, but reduce liquid slightly in the recipe.
2. **Applesauce**
- Flavor: Mildly sweet.
- Use: Excellent for baked goods like muffins or cookies.
- Substitution: Replace sugar 1:1, but reduce other liquids slightly.
3. **Fruit Juice Concentrates**
- Flavor: Sweet with fruity undertones.
- Use: Works well in marinades, sauces, and desserts.
- Substitution: Use equal amounts, but adjust liquid content.
---
### **Minimal-Processing Sugars**
1. **Raw Honey**
- Flavor: Sweet with floral undertones.
- Use: Good for baked goods and beverages.
- Substitution: Replace sugar in a 1:1 ratio, but reduce other liquids slightly.
2. **Brown Rice Syrup**
- Flavor: Mildly sweet with a hint of nuttiness.
- Use: Suitable for baked goods and granola bars.
- Substitution: Use 1-1/4 cups of syrup for 1 cup of sugar, and decrease liquid in the recipe.
---
### Tips for Substitution:
- Adjust for sweetness: Some substitutes are sweeter or less sweet than sugar, so amounts may need tweaking.
- Baking considerations: Sugar affects texture, browning, and moisture. If you replace it, you may need to experiment to get the desired result.
- Liquid adjustments: Many natural sweeteners are liquid, so you’ll often need to reduce the amount of liquid in your recipe.
Would you like help deciding the best substitute for a specific recipe?
Présentation de la structure des messages
Les modèles GPT-4 sont optimisés pour fonctionner avec des entrées mises en forme en tant que conversation. La variable messages
transmet un tableau de dictionnaires avec différents rôles dans la conversation délimités par système, utilisateur et assistant. Le message système peut être utilisé pour amorcer le modèle en intégrant du contexte ou des instructions sur la manière dont le modèle doit répondre.
Le guide pratique GPT-4 fournit une introduction approfondie aux options de communication avec ces modèles.
Nettoyer les ressources
Si vous souhaitez nettoyer et supprimer une ressource Azure OpenAI, vous pouvez la supprimer. Vous devez d’abord supprimer tous les modèles déployés avant de supprimer la ressource.
Étapes suivantes
- Découvrez comment utiliser les modèles GPT-4 avec notre guide pratique.
- Consultez le référentiel GitHub Azure OpenAI samples (uniquement disponible en anglais) pour découvrir d’autres exemples.