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ťtepwsh
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
- .NET 8 SDK – Nainstalujte sadu .NET 8 SDK.
- Předplatné Azure – Vytvořte si ho zdarma.
- Azure Developer CLI – Nainstalujte nebo aktualizujte Azure Developer CLI.
- Přístup ke službě Azure OpenAI
- Ve Windows se vyžaduje PowerShell
v7+
. Pokud chcete ověřit svou verzi, spusťtepwsh
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
.
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.
Z terminálu nebo příkazového řádku přejděte do adresáře src\quickstarts\azure-openai ukázkového úložiště.
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
Z terminálu nebo příkazového řádku přejděte do
openai\01-HikeBenefitsSummary
adresáře.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>
dotnet run
Spuštění aplikace pomocí příkazu:dotnet run
Z terminálu nebo příkazového řádku přejděte do
azure-openai\01-HikeBenefitsSummary
adresáře.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 up
zobrazit 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.