Condividi tramite


Generare immagini usando l'intelligenza artificiale con .NET

In questa guida introduttiva si apprenderà come creare un'app console .NET per generare immagini usando un modello OpenAI o Azure OpenAI DALLe AI, progettato appositamente per generare immagini in base alle richieste di testo.

Prerequisiti

Prerequisiti

Annotazioni

È anche possibile usare il kernel semantico per svolgere le attività in questo articolo. Semantic Kernel è un SDK leggero e open source che consente di creare agenti di intelligenza artificiale e integrare i modelli di intelligenza artificiale più recenti nelle app .NET.

Creare l'app

Completare i passaggi seguenti per creare un'app console .NET per connettersi a un modello di intelligenza artificiale.

  1. In una directory vuota nel computer usare il comando dotnet new per creare una nuova app console:

    dotnet new console -o ImagesAI
    
  2. Modificare la directory nella cartella dell'app:

    cd ImagesAI
    
  3. Installare i pacchetti necessari:

    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. Aprire l'app in Visual Studio Code o nell'editor preferito.

    code .
    

Creare il servizio di intelligenza artificiale

  1. Per effettuare il provisioning di un servizio e un modello OpenAI di Azure, completare la procedura descritta nell'articolo Creare e distribuire una risorsa del servizio OpenAI di Azure .

  2. Dal terminale o dal prompt dei comandi, vai alla cartella principale della directory del progetto.

  3. Eseguire i comandi seguenti per configurare l'endpoint OpenAI di Azure e il nome del modello per l'app di esempio:

    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>
    

Configurare l'app

  1. Vai alla radice del tuo progetto .NET da un terminale o da un prompt dei comandi.

  2. Eseguire i comandi seguenti per configurare la chiave API OpenAI come segreto per l'app di esempio:

    dotnet user-secrets init
    dotnet user-secrets set OpenAIKey <your-OpenAI-key>
    dotnet user-secrets set ModelName <your-OpenAI-model-name>
    

Aggiungere il codice dell'app

  1. Program.cs Nel file aggiungere il codice seguente per connettersi ed eseguire l'autenticazione al modello di intelligenza artificiale.

    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}");
    

    Annotazioni

    DefaultAzureCredential cerca le credenziali di autenticazione dai tuoi strumenti locali. Se non si usa il modello azd per il provisioning della risorsa OpenAI di Azure, è necessario assegnare il ruolo Azure AI Developer all'account usato per accedere a Visual Studio o all'Azure CLI. Per altre informazioni, vedere Eseguire l'autenticazione ai servizi di intelligenza artificiale di Azure con .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}");
    

    Il codice precedente:

    • Legge i valori di configurazione essenziali dai segreti utente del progetto per connettersi al modello di intelligenza artificiale.
    • Crea un OpenAI.Images.ImageClient per connettersi al modello di intelligenza artificiale.
    • Invia una richiesta al modello che descrive l'immagine desiderata.
    • Stampa l'URL dell'immagine generata nell'output della console.
  2. Eseguire l'app:

    dotnet run
    

    Accedere all'URL dell'immagine nel output della console per vedere l'immagine generata. Personalizzare il contenuto del testo del prompt per creare nuove immagini o modificare l'originale.

Pulire le risorse

Se non sono più necessari, eliminare la risorsa OpenAI di Azure e la distribuzione del modello GPT-4.

  1. Nel portale di Azure passare alla risorsa OpenAI di Azure.
  2. Selezionare la risorsa OpenAI di Azure e quindi selezionare Elimina.

Passaggi successivi