Dela via


Ansluta till och fråga en AI-modell

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.

Förutsättningar

Förutsättningar

Anmärkning

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.

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 kommandot dotnet new 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.AI.OpenAI
    dotnet add package Azure.Identity
    dotnet add package Microsoft.Extensions.AI.OpenAI --prerelease
    dotnet add package Microsoft.Extensions.Configuration
    dotnet add package Microsoft.Extensions.Configuration.UserSecrets
    
    dotnet add package OpenAI
    dotnet add package Microsoft.Extensions.AI.OpenAI --prerelease
    dotnet add package Microsoft.Extensions.Configuration
    dotnet add package Microsoft.Extensions.Configuration.UserSecrets
    
  4. Öppna appen i Visual Studio Code eller valfri redigerare.

Skapa AI-tjänsten

  1. Om du vill etablera en Azure OpenAI-tjänst och modell slutför du stegen i artikeln Skapa och distribuera en Azure OpenAI-tjänstresurs .

  2. Från en terminal eller kommandotolk navigerar du till roten av din projektkatalog.

  3. Kör följande kommandon för att konfigurera Azure OpenAI-slutpunkten och modellnamnet för exempelappen:

    dotnet user-secrets init
    dotnet user-secrets set AZURE_OPENAI_ENDPOINT <your-Azure-OpenAI-endpoint>
    dotnet user-secrets set AZURE_OPENAI_GPT_NAME <your-Azure-OpenAI-model-name>
    

Konfigurera appen

  1. Navigera till roten av ditt .NET-projekt 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. Kopiera filen benefits.md till projektkatalogen. Konfigurera projektet för att kopiera den här filen till utdatakatalogen. Om du använder Visual Studio högerklickar du på filen i Solution Explorer, väljer Egenskaper och ställer sedan in Kopiera till Utdatakatalog till Kopiera om det är nyare.

  2. Program.cs I filen 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())
            .GetChatClient(deployment)
            .AsIChatClient();
    

    Anmärkning

    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 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;
    
    IConfigurationRoot config = new ConfigurationBuilder()
        .AddUserSecrets<Program>()
        .Build();
    string? model = config["ModelName"];
    string? key = config["OpenAIKey"];
    
    IChatClient client =
        new OpenAIClient(key).GetChatClient(model).AsIChatClient();
    
  3. Lägg till kod för att läsa filinnehållet benefits.md och skapa sedan en uppmaning till modellen. Uppmaningen instruerar modellen att sammanfatta filens textinnehåll med högst 20 ord.

    string text = File.ReadAllText("benefits.md");
    string prompt = $"""
        Summarize the the following text in 20 words or less:
        {text}
        """;
    
  4. GetResponseAsync Anropa metoden för att skicka uppmaningen till modellen för att generera ett svar.

    // Submit the prompt and print out the response.
    ChatResponse response = await client.GetResponseAsync(
        prompt,
        new ChatOptions { MaxOutputTokens = 400 });
    Console.WriteLine(response);
    
  5. Kör 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

Om du inte längre behöver dem tar du bort Azure OpenAI-resursen och GPT-4-modelldistributionen.

  1. I Azure-portalengår du till Azure OpenAI-resursen.
  2. Välj Azure OpenAI-resursen och välj sedan Ta bort.

Nästa steg