Partager via


Générer des images en utilisant l’IA avec .NET

Dans ce démarrage rapide, vous apprenez à créer une application console XXX.NET pour générer des images à l'aide d'un modèle d'IA OpenAI ou Azure OpenAI DALLe, qui sont spécifiquement conçus pour générer des images à partir d'invites textuelles.

Conditions préalables

Conditions préalables

Remarque

Vous pouvez également utiliser Semantic Kernel pour accomplir les tâches décrites dans cet article. Semantic Kernel est un noyau léger et open source qui vous permet de construire des agents d'IA et d'intégrer les derniers modèles d'IA dans vos applications .NET.

Créer l’application

Effectuez les étapes suivantes pour créer une application console .NET qui se connectera à un modèle d'IA.

  1. Dans un répertoire vide sur votre ordinateur, utilisez la commande dotnet new pour créer une application console :

    dotnet new console -o ImagesAI
    
  2. Modifiez le répertoire dans le dossier de l’application :

    cd ImagesAI
    
  3. Installez les packages nécessaires :

    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
    
  4. Ouvrez l'application dans Visual Studio Code ou dans l'éditeur de votre choix.

    code .
    

Créer le service d’IA

  1. Pour provisionner un service et un modèle Azure OpenAI, suivez les étapes décrites dans l’article Créer et déployer une ressource Azure OpenAI Service .

  2. À partir d’un terminal ou d’une invite de commandes, accédez à la racine de votre répertoire de projet.

  3. Exécutez les commandes suivantes pour configurer votre point de terminaison Azure OpenAI et le nom du modèle pour l’exemple d’application :

    dotnet user-secrets init
    dotnet user-secrets set AZURE_OPENAI_ENDPOINT <your-Azure-OpenAI-endpoint>
    dotnet user-secrets set AZURE_OPENAI_GPT_NAME <your-Azure-OpenAI-model-name>
    

Configurer l’application

  1. Accédez à la racine de votre projet .NET à partir d’un terminal ou d’une invite de commandes.

  2. 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>
    

Ajoutez le code de l’application

  1. Dans le Program.cs fichier, 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'identification dans vos outils locaux. Si vous n'utilisez pas le modèle azd pour provisionner la ressource Azure OpenAI, vous devrez attribuer le rôle Azure 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 des secrets utilisateur du projet pour se connecter au modèle IA.
    • Crée une connexion OpenAI.Images.ImageClient au modèle 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.
  2. Exécutez l’application :

    dotnet run
    

    Naviguez jusqu'à l'URL de l'image dans la sortie de la console pour afficher l'image générée. Personnalisez le contenu du texte de la requête pour créer de nouvelles images ou modifier l'original.

Nettoyer les ressources

Si vous n’en avez plus besoin, supprimez la ressource Azure OpenAI et le déploiement de modèle GPT-4.

  1. Dans le portail Azure , accédez à la ressource Azure OpenAI.
  2. Sélectionnez la ressource Azure OpenAI, puis sélectionnez Supprimer.

Étapes suivantes