Dela via


Ansluta till och fråga en AI-modell med hjälp av .NET

I den här snabbstarten får du lära dig hur du skapar en .NET-konsolchattapp för att ansluta till och fråga en OpenAI- eller Azure OpenAI-modell. Appen använder Microsoft.Extensions.AI biblioteket så att du kan skriva kod med ai-abstraktioner i stället för ett specifikt SDK. MED AI-abstraktioner kan du ändra den underliggande AI-modellen med minimala kodändringar.

Kommentar

Biblioteket Microsoft.Extensions.AI finns för närvarande i förhandsversion.

Förutsättningar

  • .NET 8.0 SDK – Installera .NET 8.0 SDK.
  • En API-nyckel från OpenAI så att du kan köra det här exemplet.
  • I Windows krävs PowerShell v7+ . Om du vill verifiera din version kör du pwsh i en terminal. Den bör returnera den aktuella versionen. Om det returnerar ett fel kör du följande kommando: dotnet tool update --global PowerShell.

Förutsättningar

Kommentar

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 dotnet new kommandot för att skapa en ny konsolapp:

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

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

    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. Ö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 roten för .NET-projet 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

Appen använder Microsoft.Extensions.AI paketet för att skicka och ta emot begäranden till AI-modellen.

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

    Kommentar

    DefaultAzureCredential söker efter autentiseringsuppgifter från din lokala verktygsuppsättning. Om du inte använder mallen azd 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.

    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. Läs filinnehållet benefits.md och använd det för att skapa en fråga för modellen. Uppmaningen instruerar modellen att sammanfatta filtextinnehållet.

    // 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. InvokePromptAsync Anropa funktionen för att skicka uppmaningen till modellen för att generera ett svar.

    // Submit the prompt and print out the response
    ChatCompletion response = await client.CompleteAsync(prompt, new ChatOptions { MaxOutputTokens = 400 });
    Console.WriteLine($"assistant >>> {response}");
    
  4. dotnet run Använd kommandot för att köra appen:

    dotnet run
    

    Appen skriver ut svar om slutförande från AI-modellen. Anpassa textinnehållet i benefits.md filen eller längden på sammanfattningen för att se skillnaderna i svaren.

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