Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu hızlı başlangıçta, yapılandırılmış çıkışla yanıt isteyen bir sohbet uygulaması oluşturacaksınız. Yapılandırılmış çıkış yanıtı, yalnızca düz metin yerine belirttiğiniz türde bir sohbet yanıtıdır. Bu hızlı başlangıçta oluşturduğunuz sohbet uygulaması, çeşitli ürün incelemelerinin yaklaşımını analiz eder ve her gözden geçirmeyi özel bir sabit listesinin değerlerine göre kategorilere ayırır.
Önkoşullar
- .NET 8 veya sonraki bir sürümü
- Visual Studio Code (isteğe bağlı)
Yapay zeka hizmetini yapılandırma
Azure portalını kullanarak bir Azure OpenAI hizmeti ve modeli sağlamak için Azure OpenAI Hizmeti kaynağı oluşturma ve dağıtma makalesindeki adımları tamamlayın. "Model dağıtma" adımında gpt-4o modeli seçin.
Sohbet uygulamasını oluşturma
Yapay zeka modeline bağlanan bir konsol uygulaması oluşturmak için gpt-4o aşağıdaki adımları tamamlayın.
Terminal penceresinde, uygulamanızı oluşturmak istediğiniz dizine gidin ve komutuyla
dotnet newyeni bir konsol uygulaması oluşturun:dotnet new console -o SOChatSOChatdizinine gidin ve gerekli paketleri uygulamanıza ekleyin: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.UserSecretsAzure OpenAI uç noktanız, model adınız ve kiracı kimliğiniz için uygulama gizli dizilerini eklemek amacıyla aşağıdaki komutları çalıştırın.
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>Uyarı
Ortamınıza bağlı olarak kiracı kimliği gerekli olmayabilir. Bu durumda, DefaultAzureCredential örneğini oluşturan koddan kaldırın.
Yeni uygulamayı kendi seçtiğiniz düzenleyicide açın.
Kodu ekle
Farklı yaklaşımları açıklayan numaralandırmayı tanımlayın.
public enum Sentiment { Positive, Negative, Neutral }IChatClient Modelle iletişim kuracak olan öğesini oluşturun.
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();Uyarı
DefaultAzureCredential ortamınızdan veya yerel araçlardan kimlik doğrulama bilgilerini arar. Rolü Visual Studio'da veya Azure CLI'da oturum açmak için kullandığınız hesaba atamanız
Azure AI Developergerekir. Daha fazla bilgi için bkz. .NETile Azure AI hizmetlerinde kimlik doğrulaması. Tek bir ürün incelemesi ile modele bir istek gönderin ve ardından analiz edilen duygusal tonu konsola yazdırın. İstenen yapılandırılmış çıkış türünü, ChatClientStructuredOutputExtensions.GetResponseAsync<T>(IChatClient, String, ChatOptions, Nullable<Boolean>, CancellationToken) uzantı metoduna tür bağımsız değişkeni olarak geçirerek belirtirsiniz.
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}");Bu kod şuna benzer bir çıkış oluşturur:
Sentiment: PositiveTek bir gözden geçirmeyi analiz etmek yerine, bir gözden geçirme koleksiyonunu analiz edebilirsiniz.
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}"); }Bu kod şuna benzer bir çıkış oluşturur:
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: NeutralAyrıca yalnızca analiz edilen sabit listesi değerini istemek yerine, çözümlenen değerle birlikte metin yanıtını da isteyebilirsiniz.
Metin yanıtını ve analiz edilen yaklaşımı içerecek bir kayıt türü tanımlayın:
record SentimentRecord(string ResponseText, Sentiment ReviewSentiment);(Bu kayıt türü birincil oluşturucu söz dizimi kullanılarak tanımlanır. Birincil oluşturucular, tür tanımını sınıfın herhangi bir örneğini oluşturmak için gereken parametrelerle birleştirir. C# derleyicisi birincil oluşturucu parametreleri için genel özellikler oluşturur.)
kayıt türünü türü bağımsız değişkeni olarak kullanarak isteği adresine
GetResponseAsync<T>gönderin: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}");Bu kod şuna benzer bir çıkış oluşturur:
Response text: Certainly, I have analyzed the sentiment of the review you provided. Sentiment: Neutral
Kaynakları temizle
Artık bunlara ihtiyacınız yoksa Azure OpenAI kaynağını ve GPT-4 model dağıtımını silin.
- Azure Portalüzerinde Azure OpenAI kaynağına gidin.
- Azure OpenAI kaynağını seçin ve ardından Silöğesini seçin.