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
- .NET 8.0 SDK eller senare – Installera .NET 8.0 SDK -.
- En API-nyckel från OpenAI så att du kan köra det här exemplet.
Förutsättningar
- .NET 8.0 SDK eller senare - Installera .NET 8 SDK.
- En Azure-prenumeration – Skapa en kostnadsfritt.
- Åtkomst till Azure OpenAI-tjänsten.
- Azure Developer CLI (valfritt) – Installera eller uppdatera Azure Developer CLI.
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.
I en tom katalog på datorn använder du kommandot
dotnet new
för att skapa en ny konsolapp:dotnet new console -o ImagesAI
Ändra katalog till appmappen:
cd ImagesAI
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
Ö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.
Från en terminal eller kommandotolk navigerar du till
src\quickstarts\azure-openai
katalogen för exempeldatabasen.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
Gå till rotkatalogen för ditt .NET-projekt från en terminal eller kommandotolk.
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
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 tilldelaAzure 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
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