Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Dalam panduan memulai cepat ini, Anda membuat aplikasi obrolan yang meminta respons dengan output terstruktur. Respons output terstruktur adalah respons obrolan yang merupakan jenis yang Anda tentukan alih-alih hanya teks biasa. Aplikasi obrolan yang Anda buat di tutorial cepat ini menganalisis sentimen berbagai ulasan produk, menyusun setiap ulasan sesuai dengan nilai daftar kustom.
Prasyarat
Mengonfigurasi layanan AI
Untuk memprovisikan layanan dan model Azure OpenAI menggunakan portal Azure, selesaikan langkah-langkah dalam artikel Membuat dan menyebarkan sumber daya Azure OpenAI Service. Dalam langkah "Sebarkan model", pilih model gpt-4o.
Membuat aplikasi obrolan
Selesaikan langkah-langkah berikut untuk membuat aplikasi konsol yang tersambung ke gpt-4o model AI.
Di jendela terminal, navigasikan ke direktori tempat Anda ingin membuat aplikasi, dan buat aplikasi konsol baru dengan
dotnet newperintah :dotnet new console -o SOChatNavigasi ke direktori
SOChat, dan tambahkan paket yang diperlukan ke aplikasi Anda:dotnet add package Azure.AI.OpenAI dotnet add package Azure.Identity dotnet add package Microsoft.Extensions.AI dotnet add package Microsoft.Extensions.AI.OpenAI --prerelease dotnet add package Microsoft.Extensions.Configuration dotnet add package Microsoft.Extensions.Configuration.UserSecretsJalankan perintah berikut untuk menambahkan rahasia aplikasi untuk titik akhir Azure OpenAI, nama model, dan ID penyewa Anda:
dotnet user-secrets init dotnet user-secrets set AZURE_OPENAI_ENDPOINT <your-Azure-OpenAI-endpoint> dotnet user-secrets set AZURE_OPENAI_GPT_NAME gpt-4o dotnet user-secrets set AZURE_TENANT_ID <your-tenant-ID>Nota
Bergantung pada lingkungan Anda, ID penyewa mungkin tidak diperlukan. Dalam hal ini, hapusnya dari kode yang menginisiasi DefaultAzureCredential.
Buka aplikasi baru di editor pilihan Anda.
Menambahkan kode
Tentukan enumerasi yang menjelaskan berbagai sentimen.
public enum Sentiment { Positive, Negative, Neutral }Buat IChatClient yang akan berkomunikasi dengan model.
IConfigurationRoot config = new ConfigurationBuilder() .AddUserSecrets<Program>() .Build(); string endpoint = config["AZURE_OPENAI_ENDPOINT"]; string model = config["AZURE_OPENAI_GPT_NAME"]; string tenantId = config["AZURE_TENANT_ID"]; // 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();Nota
DefaultAzureCredential mencari kredensial autentikasi dari lingkungan atau alat lokal Anda. Anda harus menetapkan peran
Azure AI Developerkepada akun yang Anda gunakan untuk masuk ke Visual Studio atau Azure CLI. Untuk informasi selengkapnya, lihat Mengautentikasi ke Foundry Tools dengan .NET.Kirim permintaan ke model dengan satu ulasan produk, lalu cetak sentimen yang dianalisis ke konsol. Anda menyatakan jenis output terstruktur yang diminta dengan meneruskannya sebagai argumen jenis ke ChatClientStructuredOutputExtensions.GetResponseAsync<T>(IChatClient, String, ChatOptions, Nullable<Boolean>, CancellationToken) metode ekstensi.
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}");Kode ini menghasilkan output yang mirip dengan:
Sentiment: PositiveAlih-alih hanya menganalisis satu ulasan, Anda dapat menganalisis kumpulan ulasan.
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}"); }Kode ini menghasilkan output yang mirip dengan:
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: NeutralDan alih-alih hanya meminta nilai enumerasi yang dianalisis, Anda dapat meminta respons teks bersama dengan nilai yang dianalisis.
Tentukan jenis catatan untuk berisi respons teks dan sentimen yang dianalisis:
record SentimentRecord(string ResponseText, Sentiment ReviewSentiment);(Jenis rekaman ini didefinisikan menggunakan sintaks konstruktor utama . Konstruktor utama menggabungkan definisi jenis dengan parameter yang diperlukan untuk membuat instans kelas apa pun. Pengkompilasi C# menghasilkan properti publik untuk parameter konstruktor utama.)
Kirim permintaan menggunakan jenis catatan sebagai argumen jenis ke
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}");Kode ini menghasilkan output yang mirip dengan:
Response text: Certainly, I have analyzed the sentiment of the review you provided. Sentiment: Neutral
Membersihkan sumber daya
Jika Anda tidak lagi membutuhkannya, hapus sumber daya Azure OpenAI dan penyebaran model GPT-4.
- Di portal Microsoft Azure, navigasikan ke sumber daya Azure OpenAI.
- Pilih sumber daya Azure OpenAI, lalu pilih Hapus.