Freigeben über


Herstellen einer Verbindung mit einem KI-Modell mithilfe von .NET

In dieser Schnellstartanleitung erfahren Sie, wie Sie eine .NET-Konsolenchat-App erstellen, um eine Verbindung mit einem OpenAI- oder Azure OpenAI-Modell herzustellen und aufzufordern. Die App verwendet die Microsoft.Extensions.AI Bibliothek, sodass Sie Code mithilfe von KI-Abstraktionen und nicht mit einem bestimmten SDK schreiben können. KI-Abstraktionen ermöglichen es Ihnen, das zugrunde liegende KI-Modell mit minimalen Codeänderungen zu ändern.

Hinweis

Die Microsoft.Extensions.AI Bibliothek befindet sich derzeit in der Vorschau.

Voraussetzungen

  • .NET 8.0 SDK: Installieren Sie das .NET 8.0 SDK.
  • Ein API-Schlüssel aus OpenAI, damit Sie dieses Beispiel ausführen können
  • Unter Windows ist PowerShell v7+ erforderlich. Um Ihre Version zu überprüfen, führen Sie pwsh in einem Terminal aus. Die aktuelle Version sollte zurückgegeben werden. Wenn ein Fehler zurückgegeben wird, führen Sie den folgenden Befehl aus: dotnet tool update --global PowerShell.

Voraussetzungen

Hinweis

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.

  1. Verwenden Sie in einem leeren Verzeichnis auf Ihrem Computer den dotnet new Befehl, um eine neue Konsolen-App zu erstellen:

    dotnet new console -o ExtensionsAI
    
  2. Ändern Sie das Verzeichnis in den App-Ordner:

    cd ExtensionsAI
    
  3. Installieren Sie die erforderlichen Pakete:

    dotnet add package Azure.Identity
    dotnet add package Azure.AI.OpenAI
    dotnet add package Microsoft.Extensions.AI.OpenAI
    dotnet add package Microsoft.Extensions.Configuration
    dotnet add package Microsoft.Extensions.Configuration.UserSecrets
    
    dotnet add package OpenAI
    dotnet add package Microsoft.Extensions.AI.OpenAI
    dotnet add package Microsoft.Extensions.Configuration
    dotnet add package Microsoft.Extensions.Configuration.UserSecrets
    
  4. Öffnen der App im Visual Studio-Code oder dem gewünschten Editor

    code .
    

Erstellen des KI-Diensts

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.

  1. Navigieren Sie über ein Terminal oder eine Eingabeaufforderung zum src\quickstarts\azure-openai Verzeichnis des Beispielrepo.

  2. 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

  1. Navigieren Sie über ein Terminal oder eine Eingabeaufforderung zum Stammverzeichnis Ihres .NET-Projets.

  2. 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>
    

Hinzufügen des App-Codes

Die App verwendet das Microsoft.Extensions.AI Paket zum Senden und Empfangen von Anforderungen an das KI-Modell.

  1. Fügen Sie in der datei Program.cs den folgenden Code hinzu, um eine Verbindung mit dem AI-Modell herzustellen und sich zu authentifizieren.

    using Microsoft.Extensions.Configuration;
    using Microsoft.Extensions.AI;
    using Azure.AI.OpenAI;
    using Azure.Identity;
    
    var config = new ConfigurationBuilder().AddUserSecrets<Program>().Build();
    string endpoint = config["AZURE_OPENAI_ENDPOINT"];
    string deployment = config["AZURE_OPENAI_GPT_NAME"];
    
    IChatClient client =
        new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential())
            .AsChatClient(deployment);
    

    Hinweis

    DefaultAzureCredential Sucht nach Authentifizierungsanmeldeinformationen aus Ihrem lokalen Tool. Wenn Sie die Vorlage nicht zum Bereitstellen der azd Azure OpenAI-Ressource verwenden, müssen Sie die Azure AI Developer Rolle dem Konto zuweisen, das Sie für die Anmeldung bei Visual Studio oder der Azure CLI verwendet haben. Weitere Informationen finden Sie unter Authentifizieren bei Azure AI-Diensten mit .NET.

    using Microsoft.Extensions.AI;
    using Microsoft.Extensions.Configuration;
    using OpenAI;
    
    var config = new ConfigurationBuilder().AddUserSecrets<Program>().Build();
    string model = config["ModelName"];
    string key = config["OpenAIKey"];
    
    // Create the IChatClient
    IChatClient client =
        new OpenAIClient(key).AsChatClient(model);
    
  2. Lesen Sie den benefits.md Dateiinhalt, und verwenden Sie ihn, um eine Eingabeaufforderung für das Modell zu erstellen. Über die Eingabeaufforderung wird das Modell angewiesen, den Dateitextinhalt zusammenzufassen.

    // Create and print out the prompt
    string prompt = $"""
        summarize the the following text in 20 words or less:
        {File.ReadAllText("benefits.md")}
        """;
    
    Console.WriteLine($"user >>> {prompt}");
    
  3. Rufen Sie die InvokePromptAsync Funktion auf, um die Aufforderung an das Modell zu senden, um eine Antwort zu generieren.

    // Submit the prompt and print out the response
    ChatCompletion response = await client.CompleteAsync(prompt, new ChatOptions { MaxOutputTokens = 400 });
    Console.WriteLine($"assistant >>> {response}");
    
  4. Verwenden Sie den Befehl dotnet run, um die App auszuführen:

    dotnet run
    

    Die App druckt die Abschlussantwort aus dem KI-Modell. Passen Sie den Textinhalt der benefits.md Datei oder die Länge der Zusammenfassung an, um die Unterschiede in den Antworten anzuzeigen.

Bereinigen von Ressourcen

Wenn Sie die Beispielanwendung oder Ressourcen nicht mehr benötigen, entfernen Sie die entsprechende Bereitstellung und alle Ressourcen.

azd down

Nächste Schritte