Dela via


Generera avbildningar med AI med .NET

I den här snabbstarten får du lära dig hur du skapar en .NET-konsolapp för att generera avbildningar med hjälp av en OpenAI- eller Azure OpenAI DALLe AI-modell, som är särskilt utformad för att generera bilder baserat på textprompter.

Förutsättningar

Förutsättningar

Notera

Du kan också använda semantisk kernel för att utföra uppgifterna i den här artikeln. Semantisk kernel är en enkel SDK med öppen källkod som gör att du kan skapa AI-agenter och integrera de senaste AI-modellerna i dina .NET-appar.

Klona exempellagringsplatsen

Du kan skapa en egen app med hjälp av stegen i de kommande avsnitten, eller så kan du klona GitHub-lagringsplatsen som innehåller de färdiga exempelapparna för alla snabbstarter. Om du planerar att använda Azure OpenAI är exempelrepoen också strukturerad som en Azure Developer CLI-mall som kan etablera en Azure OpenAI-resurs åt dig.

git clone https://github.com/dotnet/ai-samples.git

Skapa appen

Slutför följande steg för att skapa en .NET-konsolapp för att ansluta till en AI-modell.

  1. I en tom katalog på datorn använder du kommandot dotnet new för att skapa en ny konsolapp:

    dotnet new console -o ImagesAI
    
  2. Ändra katalog till appmappen:

    cd ImagesAI
    
  3. Installera de paket som krävs:

    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. Öppna appen i Visual Studio Code eller valfri redigerare.

    code .
    

Skapa AI-tjänsten

GitHub-exempellagringsplatsen är strukturerad som en Azure Developer CLI-mall (azd) som azd kan använda för att etablera Azure OpenAI-tjänsten och modellen åt dig.

  1. Från en terminal eller kommandotolk navigerar du till src\quickstarts\azure-openai katalogen för exempeldatabasen.

  2. azd up Kör kommandot för att etablera Azure OpenAI-resurserna. Det kan ta flera minuter att skapa Azure OpenAI-tjänsten och distribuera modellen.

    azd up
    

    azd konfigurerar också nödvändiga användarhemligheter för exempelappen, till exempel Azure OpenAI-slutpunkten och modellnamnet.

Konfigurera appen

  1. Gå till rotkatalogen för ditt .NET-projekt från en terminal eller kommandotolk.

  2. Kör följande kommandon för att konfigurera din OpenAI API-nyckel som en hemlighet för exempelappen:

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

Lägg till appkoden

  1. I filen Program.cs lägger du till följande kod för att ansluta och autentisera till AI-modellen.

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

    Notera

    DefaultAzureCredential söker efter autentiseringsuppgifter från ditt lokala verktyg. Om du inte använder azd-mallen för att etablera Azure OpenAI-resursen måste du tilldela Azure AI Developer rollen till det konto som du använde för att logga in på Visual Studio eller Azure CLI. Mer information finns i Autentisera till Azure AI-tjänster med .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}");
    

    Föregående kod:

    • Läser viktiga konfigurationsvärden från projektets användarhemligheter för att ansluta till AI-modellen
    • Skapar en ImageClient för att ansluta till AI-modellen
    • Skickar en uppmaning till modellen som beskriver den önskade bilden
    • Skriver ut URL:en för den genererade avbildningen till konsolens utdata
  2. dotnet run Använd kommandot för att köra appen:

    dotnet run
    

    Gå till bild-URL:en i konsolens utdata för att visa den genererade avbildningen. Anpassa textinnehållet i prompten för att skapa nya bilder eller ändra originalet.

Rensa resurser

När du inte längre behöver exempelprogrammet eller resurserna tar du bort motsvarande distribution och alla resurser.

azd down

Nästa steg