Générer des images en utilisant l’IA avec .NET
Dans ce guide de démarrage rapide, vous allez apprendre à créer une application console .NET pour générer des images à l’aide d’un modèle OpenAI ou Azure OpenAI DALLe AI, spécifiquement conçu pour générer des images basées sur des invites de texte.
Prérequis
- Kit de développement logiciel (SDK) .NET 8.0 : installez le Kit de développement logiciel (SDK) .NET 8.0.
- Une clé API d’OpenAI pour pouvoir exécuter cet échantillon.
- Sur Windows, PowerShell
v7+
est requis. Pour valider votre version, exécutezpwsh
dans un terminal. Elle doit retourner la version actuelle. Si une erreur est retournée, exécutez la commande suivante :dotnet tool update --global PowerShell
.
Prérequis
- Kit de développement logiciel (SDK) .NET 8 : installez le Kit de développement logiciel (SDK) .NET 8.
- Un abonnement Azure : créez-en un gratuitement.
- Accès auprès d’Azure OpenAI Service.
- Azure Developer CLI (facultatif) : installez ou mettez à jour Azure Developer CLI.
Remarque
Vous pouvez également utiliser noyau sémantique pour accomplir les tâches décrites dans cet article. Le noyau sémantique est un SDK open source léger qui vous permet de créer des agents IA et d’intégrer les derniers modèles IA à vos applications .NET.
Clonez l’exemple de dépôt
Vous pouvez créer votre propre application à l’aide des étapes décrites dans les sections à l’avance, ou vous pouvez cloner le dépôt GitHub qui contient les exemples d’applications terminés pour tous les guides de démarrage rapide. Si vous envisagez d’utiliser Azure OpenAI, l’exemple de dépôt est également structuré en tant que modèle Azure Developer CLI qui peut approvisionner une ressource Azure OpenAI pour vous.
git clone https://github.com/dotnet/ai-samples.git
Créer l’application
Effectuez les étapes suivantes pour créer une application console .NET pour vous connecter à un modèle IA.
Dans un répertoire vide sur votre ordinateur, utilisez la commande
dotnet new
pour créer une application console :dotnet new console -o ImagesAI
Modifiez le répertoire dans le dossier de l’application :
cd ImagesAI
Installez les packages requis :
dotnet add package Azure.AI.OpenAI dotnet add package Microsoft.Extensions.Configuration dotnet add package Microsoft.Extensions.Configuration.UserSecrets
dotnet add package OpenAI dotnet add package Microsoft.Extensions.Configuration dotnet add package Microsoft.Extensions.Configuration.UserSecrets
Ouvrez l’application dans Visual Studio Code ou votre éditeur de votre choix.
code .
Créer le service IA
- Azure Developer CLI
- Azure CLI
- Portail Azure
L’exemple de référentiel GitHub est structuré en tant que modèle Azure Developer CLI (azd
), que azd
peut utiliser pour approvisionner le service et le modèle Azure OpenAI pour vous.
À partir d’un terminal ou d’une invite de commandes, accédez au
src\quickstarts\azure-openai
répertoire de l’exemple de dépôt.Exécutez la commande
azd up
pour approvisionner les ressources Azure OpenAI. La création du service Azure OpenAI et le déploiement du modèle peuvent prendre plusieurs minutes.azd up
azd
configure également les secrets utilisateur requis pour l’exemple d’application, comme le point de terminaison Azure OpenAI et le nom du modèle.
Configurer l’application
Accédez à la racine de votre projet .NET à partir d’un terminal ou d’une invite de commandes.
Exécutez les commandes suivantes pour configurer votre clé API OpenAI en tant que secret pour l’exemple d’application :
dotnet user-secrets init dotnet user-secrets set OpenAIKey <your-openai-key> dotnet user-secrets set ModelName <your-openai-model-name>
Ajouter le code de l’application
Dans le fichier Program.cs, ajoutez le code suivant pour vous connecter et vous authentifier auprès du modèle IA.
using Microsoft.Extensions.Configuration; using OpenAI.Images; using System.ClientModel; using Azure.AI.OpenAI; using Azure.Identity; // Retrieve the local secrets saved during the Azure deployment. If you skipped the deployment // because you already have an Azure OpenAI available, edit the following lines to use your information, // e.g. string openAIEndpoint = "https://cog-demo123.openai.azure.com/"; var config = new ConfigurationBuilder().AddUserSecrets<Program>().Build(); string endpoint = config["AZURE_OPENAI_ENDPOINT"]; string deployment = config["AZURE_OPENAI_DALLE_NAME"]; // Create the Azure OpenAI ImageClient ImageClient client = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential()) .GetImageClient(deployment); // Generate the image GeneratedImage generatedImage = await client.GenerateImageAsync(""" A postal card with an happy hiker waving and a beautiful mountain in the background. There is a trail visible in the foreground. The postal card has text in red saying: 'You are invited for a hike!' """, new ImageGenerationOptions { Size = GeneratedImageSize.W1024xH1024 }); Console.WriteLine($"The generated image is ready at:\n{generatedImage.ImageUri}");
Remarque
DefaultAzureCredential recherche les informations d'authentification de votre outil local. Si vous n’utilisez pas le modèle
azd
pour approvisionner la ressource Azure OpenAI, vous devez affecter le rôleAzure AI Developer
au compte que vous avez utilisé pour vous connecter à Visual Studio ou à Azure CLI. Pour plus d'informations, voir Authentification aux services Azure AI avec .NET.// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using Microsoft.Extensions.Configuration; using OpenAI.Images; // Retrieve the local secrets that were set from the command line, using: // dotnet user-secrets init // dotnet user-secrets set OpenAIKey <your-openai-key> var config = new ConfigurationBuilder().AddUserSecrets<Program>().Build(); string key = config["OpenAIKey"]; string modelName = config["ModelName"]; // Create the OpenAI ImageClient ImageClient client = new(modelName, key); // Generate the image GeneratedImage generatedImage = await client.GenerateImageAsync(""" A postal card with a happy hiker waving and a beautiful mountain in the background. There is a trail visible in the foreground. The postal card has text in red saying: 'You are invited for a hike!' """, new ImageGenerationOptions { Size = GeneratedImageSize.W1024xH1024 }); Console.WriteLine($"The generated image is ready at:\n{generatedImage.ImageUri}");
Code précédent :
- Lit les valeurs de configuration essentielles à partir des secrets utilisateur du projet pour se connecter au modèle IA
- Crée un
ImageClient
pour se connecter au modèle d'IA - Envoie une invite au modèle qui décrit l’image souhaitée
- Imprime l’URL de l’image générée dans la sortie de la console
Utilisez la commande
dotnet run
pour exécuter l’application :dotnet run
Accédez à l’URL de l’image dans la sortie de la console pour afficher l’image générée. Personnalisez le contenu texte de l’invite pour créer des images ou modifier l’original.
Nettoyer les ressources
Lorsque vous n’avez plus besoin de l’exemple d’application ou de ressources, supprimez le déploiement correspondant et toutes les ressources.
azd down