Generieren von Bildern mit KI und .NET
In dieser Schnellstartanleitung erfahren Sie, wie Sie eine .NET-Konsolen-App erstellen, um Bilder mithilfe eines OpenAI- oder Azure OpenAI DALLe AI-Modells zu generieren, das speziell für das Generieren von Bildern basierend auf Textaufforderungen konzipiert ist.
Voraussetzungen
- .NET 8.0 SDK oder höher - .NET 8.0 SDK installieren.
- Ein API-Schlüssel aus OpenAI, damit Sie dieses Beispiel ausführen können
Voraussetzungen
- .NET 8.0 SDK oder höher – .NET 8 SDKinstallieren.
- Azure-Abonnement – kostenloses Abonnement erstellen.
- Zugriff auf Azure OpenAI Service
- Azure Developer CLI (Optional) – Installieren oder Aktualisieren der Azure Developer CLI.
Anmerkung
Sie können auch den Semantischen Kernel verwenden, um die Aufgaben in diesem Artikel auszuführen. Der semantische Kernel ist ein einfaches Open-Source-SDK, mit dem Sie KI-Agents erstellen und die neuesten KI-Modelle in Ihre .NET-Apps integrieren können.
Klonen des Beispielrepositorys
Sie können Ihre eigene App mit den Schritten in den vorherigen Abschnitten erstellen oder das GitHub-Repository klonen, das die abgeschlossenen Beispiel-Apps für alle Schnellstarts enthält. Wenn Sie Beabsichtigen, Azure OpenAI zu verwenden, ist das Beispiel-Repository auch als Azure Developer CLI-Vorlage strukturiert, die eine Azure OpenAI-Ressource für Sie bereitstellen kann.
git clone https://github.com/dotnet/ai-samples.git
Erstellen der App
Führen Sie die folgenden Schritte aus, um eine .NET-Konsolen-App zu erstellen, um eine Verbindung mit einem AI-Modell herzustellen.
Verwenden Sie in einem leeren Verzeichnis auf Ihrem Computer den Befehl
dotnet new
, um eine neue Konsolen-App zu erstellen:dotnet new console -o ImagesAI
Wechseln Sie das Verzeichnis in den App-Ordner:
cd ImagesAI
Installieren Sie die erforderlichen Pakete:
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
Öffnen Sie die App in Visual Studio Code oder dem gewünschten Editor.
code .
Erstellen Sie den KI-Dienst
Das GitHub-Beispielrepository ist als Azure Developer CLI-Vorlage (azd
) strukturiert, die azd
zum Bereitstellen der Azure OpenAI Service-Instanz und -Modells für Sie verwenden kann.
Navigieren Sie über ein Terminal oder eine Eingabeaufforderung zum
src\quickstarts\azure-openai
Verzeichnis des Beispielrepo.Führen Sie den
azd up
-Befehl aus, um die Azure OpenAI-Ressourcen bereitzustellen. Es kann mehrere Minuten dauern, bis Azure OpenAI Service erstellt und das Modell bereitgestellt ist.azd up
azd
konfiguriert außerdem die erforderlichen Benutzerschlüssel für die Beispiel-App, z. B. den Azure OpenAI-Endpunkt und den Modellnamen.
Konfigurieren der App
Navigieren Sie über ein Terminal oder eine Eingabeaufforderung zum Stammverzeichnis Ihres .NET-Projekts.
Führen Sie die folgenden Befehle aus, um Ihren OpenAI-API-Schlüssel als Geheimnis für die Beispiel-App zu konfigurieren:
dotnet user-secrets init dotnet user-secrets set OpenAIKey <your-openai-key> dotnet user-secrets set ModelName <your-openai-model-name>
Fügen Sie den App-Code hinzu
Fügen Sie in der datei Program.cs den folgenden Code hinzu, um eine Verbindung mit dem KI-Modell herzustellen und sich zu authentifizieren.
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}");
Anmerkung
DefaultAzureCredential sucht von Ihrem lokalen Tool nach Authentifizierungsanmeldeinformationen. Wenn Sie die
azd
Vorlage nicht zum Bereitstellen der Azure OpenAI-Ressource verwenden, müssen Sie dem Konto, das Sie für die Anmeldung bei Visual Studio oder der Azure CLI verwendet haben, dieAzure AI Developer
Rolle zuweisen. Weitere Informationen finden Sie unter Authentifizierung von Azure AI-Diensten mit .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}");
Der vorangehende Code:
- Liest wesentliche Konfigurationsparameter aus den projektbezogenen Benutzungsgeheimnissen aus, um eine Verbindung mit dem KI-Modell herzustellen.
- Erstellt eine
ImageClient
zum Herstellen einer Verbindung mit dem KI-Modell - Sendet eine Eingabeaufforderung an das Modell, das das gewünschte Bild beschreibt.
- Druckt die URL des generierten Bildes in die Konsolenausgabe
Verwenden Sie den Befehl
dotnet run
, um die App auszuführen:dotnet run
Navigieren Sie zur Bild-URL in der Konsolenausgabe, um das generierte Bild anzuzeigen. Passen Sie den Textinhalt der Eingabeaufforderung an, um neue Bilder zu erstellen oder das Original zu ändern.
Bereinigen von Ressourcen
Wenn Sie die Beispielanwendung oder Ressourcen nicht mehr benötigen, entfernen Sie die entsprechende Bereitstellung und alle Ressourcen.
azd down