Generieren von Bildern mit KI und .NET
In diesem Quickstart lernen Sie, wie Sie eine App für die .NET-Konsole erstellen, um mit einem OpenAI- oder Azure OpenAI DALLe KI-Modell Bilder zu generieren. Diese Modelle wurden speziell für die Generierung von Bildern auf der Grundlage von Text-Prompts erstellt.
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 SDK installieren.
- Azure-Abonnement – kostenloses Abonnement erstellen.
- Zugriff auf Azure OpenAI Service
- Azure Developer CLI (optional) – Installieren oder Aktualisieren der Azure Developer CLI.
Hinweis
Sie können auch den Semantischen Kernel verwenden, um die Aufgaben in diesem Artikel auszuführen. Semantic Kernel ist ein schlankes Open-Source SDK, mit dem Sie KI-Agenten 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
Schließen Sie die folgenden Schritte ab, um eine App für eine .NET-Konsole zu erstellen, die sich mit einem KI-Modell verbindet.
Erstellen Sie in einem leeren Verzeichnis auf Ihrem Computer mit dem
dotnet new
Befehl eine neue Konsolen-App: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 einem Editor Ihrer Wahl.
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 einen Prompt zum Root 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 ein, um sich mit dem KI-Modell zu verbinden und 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}");
Hinweis
DefaultAzureCredential sucht von Ihrem lokalen Tool nach Authentifizierungsanmeldeinformationen. Wenn Sie nicht die
azd
-Vorlage zur Bereitstellung der Azure OpenAI-Ressource verwenden, müssen Sie dieAzure AI Developer
-Rolle dem Konto zuweisen, das Sie zur Anmeldung bei Visual Studio oder dem Azure CLI verwendet haben. 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 zu der Image-URL in der Konsolenausgabe, um das generierte Image anzuzeigen. Passen Sie den Textinhalt des Prompts an, um neue Images 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