Sdílet prostřednictvím


Shrnutí textu pomocí chatovací aplikace AI s .NET

Začněte s AI vytvořením jednoduché konzolové chatovací aplikace .NET 8.0 pro shrnutí textu. Aplikace běží místně a používá model OpenAI gpt-3.5-turbo . Pomocí těchto kroků získáte přístup k OpenAI a naučíte se používat sémantické jádro.

Požadavky

  • .NET 8.0 SDK – Nainstalujte sadu .NET 8.0 SDK.
  • Klíč rozhraní API z OpenAI , abyste mohli tuto ukázku spustit.
  • Ve Windows se vyžaduje PowerShell v7+ . Pokud chcete ověřit svou verzi, spusťte pwsh v terminálu. Měla by vrátit aktuální verzi. Pokud vrátí chybu, spusťte následující příkaz: dotnet tool update --global PowerShell.

Začněte s AI vytvořením jednoduché konzolové chatovací aplikace .NET 8.0 pro shrnutí textu. Aplikace běží místně a připojuje se k modelu OpenAI gpt-35-turbo nasazeného do Azure OpenAI. Pomocí těchto kroků zřiďte službu Azure OpenAI a zjistěte, jak používat sémantické jádro.

Požadavky

Získání ukázkového projektu

Naklonujte úložiště GitHub, které obsahuje ukázkové aplikace pro všechny rychlé starty:

git clone https://github.com/dotnet/ai-samples.git

Vytvoření služby Azure OpenAI

Ukázkové úložiště GitHubu je strukturované jako šablona Azure Developer CLI (azd), která azd umožňuje zřídit službu Azure OpenAI a model za vás.

  1. Z terminálu nebo příkazového řádku přejděte do adresáře src\quickstarts\azure-openai ukázkového úložiště.

  2. Spuštěním azd up příkazu zřiďte prostředky Azure OpenAI. Vytvoření služby Azure OpenAI a nasazení modelu může trvat několik minut.

    azd up
    

    azd také nakonfiguruje požadované tajné kódy uživatelů pro ukázkovou aplikaci, jako je přístupový klíč OpenAI.

    Poznámka:

    Pokud během azd up nasazení dojde k chybě, přejděte do části pro řešení potíží .

Vyzkoušejte si ukázku výhod pěší turistiky

  1. Z terminálu nebo příkazového řádku přejděte do openai\01-HikeBenefitsSummary adresáře.

  2. Spuštěním následujících příkazů nakonfigurujte klíč rozhraní API OpenAI jako tajný klíč pro ukázkovou aplikaci:

    dotnet user-secrets init
    dotnet user-secrets set OpenAIKey <your-openai-key>
    
  3. dotnet run Spuštění aplikace pomocí příkazu:

    dotnet run
    
  1. Z terminálu nebo příkazového řádku přejděte do azure-openai\01-HikeBenefitsSummary adresáře.

  2. dotnet run Spuštění aplikace pomocí příkazu:

    dotnet run
    

    Tip

    Pokud se zobrazí chybová zpráva, prostředky Azure OpenAI možná nedokončily nasazení. Počkejte několik minut a zkuste to znovu.

Prozkoumání kódu

Aplikace používá Microsoft.SemanticKernel balíček k odesílání a přijímání požadavků do služby OpenAI.

Soubor Program.cs obsahuje veškerý kód aplikace. Prvních několik řádků konfiguračních hodnot sady kódu a získání klíče OpenAI, který byl dříve nastaven pomocí dotnet user-secrets příkazu.

var config = new ConfigurationBuilder().AddUserSecrets<Program>().Build();
string model = "gpt-3.5-turbo";
string key = config["OpenAIKey"];

Třída Kernel usnadňuje požadavky a odpovědi a zaregistruje OpenAIChatCompletion službu.

// Create a Kernel containing the OpenAI Chat Completion Service
Kernel kernel = Kernel.CreateBuilder()
    .AddOpenAIChatCompletion(model, key)
    .Build();

Aplikace používá Microsoft.SemanticKernel balíček k odesílání a přijímání požadavků do služby Azure OpenAI.

Soubor Program.cs obsahuje veškerý kód aplikace. Prvních několik řádků kódu načítá tajné kódy a konfigurační hodnoty, které byly nastaveny ve dotnet user-secrets vámi během zřizování aplikace.

// Retrieve the local secrets saved during the Azure deployment
var config = new ConfigurationBuilder().AddUserSecrets<Program>().Build();
string endpoint = config["AZURE_OPENAI_ENDPOINT"];
string deployment = config["AZURE_OPENAI_GPT_NAME"];
string key = config["AZURE_OPENAI_KEY"];

Třída Kernel usnadňuje požadavky a odpovědi a zaregistruje OpenAIChatCompletion službu.

// Create a Kernel containing the Azure OpenAI Chat Completion Service
Kernel kernel = Kernel.CreateBuilder()
    .AddAzureOpenAIChatCompletion(deployment, endpoint, key)
    .Build();

Kernel Po vytvoření kód aplikace načte benefits.md obsah souboru a použije ho k vytvoření prompt modelu. Výzva dává modelu pokyn, aby shrnul textový obsah souboru.

// Create and print out the prompt
string prompt = $"""
    Please summarize the the following text in 20 words or less:
    {File.ReadAllText("benefits.md")}
    """;
Console.WriteLine($"user >>> {prompt}");

Funkce InvokePromptAsync odešle prompt do modelu odpověď.

// Submit the prompt and print out the response
string response = await kernel.InvokePromptAsync<string>(
    prompt,
    new(new OpenAIPromptExecutionSettings() 
        { 
            MaxTokens = 400 
        })
    );
Console.WriteLine($"assistant >>> {response}");

Přizpůsobte si textový obsah souboru nebo délku souhrnu, abyste viděli rozdíly v odpovědích.

Vyčištění prostředků

Pokud už ukázkovou aplikaci nebo prostředky nepotřebujete, odeberte odpovídající nasazení a všechny prostředky.

azd down

Odstraňování potíží

Ve Windows se můžou po spuštění azd upzobrazit následující chybové zprávy:

postprovision.ps1 není digitálně podepsán. Skript se v systému nespustí.

Skript postprovision.ps1 se spustí a nastaví tajné kódy uživatele .NET používané v aplikaci. Pokud se chcete této chybě vyhnout, spusťte následující příkaz PowerShellu:

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

Pak příkaz spusťte azd up znovu.

Další možná chyba:

"pwsh" není rozpoznán jako interní nebo externí příkaz, operovatelný program nebo dávkový soubor. UPOZORNĚNÍ: "postprovision" hook selhal s ukončovacím kódem: '1', Cesta: '.\infra\post-script\postprovision.ps1'. : ukončovací kód: 1 Provádění bude pokračovat, protože ContinueOnError byl nastaven na hodnotu true.

Skript postprovision.ps1 se spustí a nastaví tajné kódy uživatele .NET používané v aplikaci. Pokud se chcete této chybě vyhnout, spusťte skript ručně pomocí následujícího příkazu PowerShellu:

.\infra\post-script\postprovision.ps1

Aplikace .NET AI teď mají nakonfigurované tajné kódy uživatelů a dají se testovat.

Další kroky