Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto rychlém startu vytvoříte chatovací aplikaci, která požádá o odpověď se strukturovaným výstupem. Odpověď strukturovaného výstupu je odpověď chatu, která je typu, který zadáte místo prostého textu. Chatovací aplikace, kterou vytvoříte v tomto rychlém přehledu, analyzuje sentiment různých recenzí produktů a kategorizuje každou recenzi podle hodnot vlastního výčtu.
Požadavky
- .NET 8 nebo novější verze
- Visual Studio Code (volitelné)
Konfigurace služby AI
Pokud chcete zřídit službu a model Azure OpenAI pomocí webu Azure Portal, proveďte kroky v článku Vytvoření a nasazení prostředku služby Azure OpenAI. V kroku Nasazení modelu vyberte gpt-5 model.
Vytvoření chatovací aplikace
Provedením následujících kroků vytvořte konzolovou aplikaci, která se připojí k gpt-5 modelu AI.
V okně terminálu přejděte do adresáře, do kterého chcete aplikaci vytvořit, a pomocí příkazu vytvořte novou konzolovou
dotnet newaplikaci:dotnet new console -o SOChatPřejděte do adresáře
SOChata přidejte do aplikace potřebné balíčky:dotnet add package Azure.AI.OpenAI dotnet add package Azure.Identity dotnet add package Microsoft.Extensions.AI dotnet add package Microsoft.Extensions.AI.OpenAI dotnet add package Microsoft.Extensions.Configuration dotnet add package Microsoft.Extensions.Configuration.UserSecretsSpuštěním následujících příkazů přidejte tajné kódy aplikací pro koncový bod Azure OpenAI a ID tenanta:
dotnet user-secrets init dotnet user-secrets set AZURE_OPENAI_ENDPOINT <your-Azure-OpenAI-endpoint> dotnet user-secrets set AZURE_TENANT_ID <your-tenant-ID>Poznámka:
V závislosti na vašem prostředí nemusí být ID tenanta potřeba. V takovém případě jej odeberte z kódu, který instanciuje DefaultAzureCredential.
Otevřete novou aplikaci v libovolném editoru.
Přidání kódu
Definujte výčet, který popisuje různé mínění.
public enum Sentiment { Positive, Negative, Neutral }Vytvořte IChatClient, který bude komunikovat s modelem.
IConfigurationRoot config = new ConfigurationBuilder() .AddUserSecrets<Program>() .Build(); string endpoint = config["AZURE_OPENAI_ENDPOINT"]; string tenantId = config["AZURE_TENANT_ID"]; string model = "gpt-5"; // Get a chat client for the Azure OpenAI endpoint. AzureOpenAIClient azureClient = new( new Uri(endpoint), new DefaultAzureCredential(new DefaultAzureCredentialOptions() { TenantId = tenantId })); IChatClient chatClient = azureClient .GetChatClient(deploymentName: model) .AsIChatClient();Poznámka:
DefaultAzureCredential vyhledá přihlašovací údaje ve vašem prostředí nebo v místních nástrojích. Bude třeba přiřadit roli
Azure AI Developerúčtu, který jste použili k přihlášení k sadě Visual Studio nebo Azure CLI. Další informace naleznete v tématu Ověřování v nástrojích Foundry pomocí .NET.Odešlete do modelu požadavek s recenzí produktu a poté vytiskněte analyzovaný sentiment do konzoly. Požadovaný typ strukturovaného výstupu deklarujete tak, že ho předáte jako argument typu metodě ChatClientStructuredOutputExtensions.GetResponseAsync<T>(IChatClient, String, ChatOptions, Nullable<Boolean>, CancellationToken) rozšíření.
string review = "I'm happy with the product!"; var response = await chatClient.GetResponseAsync<Sentiment>($"What's the sentiment of this review? {review}"); Console.WriteLine($"Sentiment: {response.Result}");Tento kód vytvoří výstup podobný následujícímu:
Sentiment: PositiveMísto pouhé analýzy jedné recenze můžete analyzovat kolekci recenzí.
string[] inputs = [ "Best purchase ever!", "Returned it immediately.", "Hello", "It works as advertised.", "The packaging was damaged but otherwise okay." ]; foreach (var i in inputs) { var response2 = await chatClient.GetResponseAsync<Sentiment>($"What's the sentiment of this review? {i}"); Console.WriteLine($"Review: {i} | Sentiment: {response2.Result}"); }Tento kód vytvoří výstup podobný následujícímu:
Review: Best purchase ever! | Sentiment: Positive Review: Returned it immediately. | Sentiment: Negative Review: Hello | Sentiment: Neutral Review: It works as advertised. | Sentiment: Neutral Review: The packaging was damaged but otherwise okay. | Sentiment: NeutralMísto vyžádání pouze analyzované hodnoty výčtu můžete požádat textovou odpověď spolu s analyzovanou hodnotou.
Definujte typ záznamu , který bude obsahovat textovou odpověď a analyzované mínění:
record SentimentRecord(string ResponseText, Sentiment ReviewSentiment);(Tento typ záznamu je definován pomocí syntaxe primárního konstruktoru . Primární konstruktory kombinují definici typu s parametry nezbytnými k vytvoření instance jakékoli instance třídy. Kompilátor jazyka C# generuje veřejné vlastnosti pro parametry primárního konstruktoru.)
Odešlete požadavek pomocí typu záznamu jako argumentu typu do
GetResponseAsync<T>:var review3 = "This product worked okay."; var response3 = await chatClient.GetResponseAsync<SentimentRecord>($"What's the sentiment of this review? {review3}"); Console.WriteLine($"Response text: {response3.Result.ResponseText}"); Console.WriteLine($"Sentiment: {response3.Result.ReviewSentiment}");Tento kód vytvoří výstup podobný následujícímu:
Response text: Certainly, I have analyzed the sentiment of the review you provided. Sentiment: Neutral
Vyčistěte zdroje
Pokud je už nepotřebujete, odstraňte nasazení modelu a prostředku Azure OpenAI.
- Na webu Azure Portal přejděte k prostředku Azure OpenAI.
- Vyberte prostředek Azure OpenAI a pak vyberte Odstranit.