Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ebben a rövid útmutatóban létrehoz egy csevegőalkalmazást, amely strukturált kimenettel választ kér. A strukturált kimeneti válasz olyan csevegési válasz, amely a megadott típusú, nem csupán egyszerű szöveg. Az ebben a rövid útmutatóban létrehozott csevegőalkalmazás elemzi a különböző termékértékelések hangulatát, és kategorizálja az egyes felülvizsgálatokat az egyéni felsorolás értékei szerint.
Előfeltételek
- .NET 8 vagy újabb verzió
- Visual Studio Code (nem kötelező)
Az AI-szolgáltatás konfigurálása
Ha Azure OpenAI-szolgáltatást és modellt szeretne kiépíteni az Azure Portalon, végezze el az Azure OpenAI-szolgáltatás erőforrásának létrehozása és üzembe helyezése cikkben leírt lépéseket. A "Modell üzembe helyezése" lépésben válassza ki a gpt-5 modellt.
A csevegőalkalmazás létrehozása
Az AI-modellhez csatlakozó konzolalkalmazás létrehozásához hajtsa végre az gpt-5 alábbi lépéseket.
Egy terminálablakban lépjen arra a könyvtárra, ahol létre szeretné hozni az alkalmazást, és hozzon létre egy új konzolalkalmazást a
dotnet newkövetkező paranccsal:dotnet new console -o SOChatLépjen a
SOChatkönyvtárra, és adja hozzá a szükséges csomagokat az alkalmazáshoz: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.UserSecretsFuttassa az alábbi parancsokat az Azure OpenAI végpontjához és a bérlői azonosítóhoz tartozó alkalmazás-titkok hozzáadásához.
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>Megjegyzés:
A környezettől függően előfordulhat, hogy nincs szükség a bérlőazonosítóra. Ebben az esetben távolítsa el azt a kódból, amely a DefaultAzureCredential példányosítást végzi.
Nyissa meg az új alkalmazást a választott szerkesztőben.
A kód hozzáadása
Adja meg a különböző hangulatokat leíró enumerálást.
public enum Sentiment { Positive, Negative, Neutral }Hozza létre a IChatClient, amely kommunikálni fog a modellel.
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();Megjegyzés:
DefaultAzureCredential Hitelesítő adatokat keres a környezeti beállításokból vagy a helyi eszközkészletből. A szerepkört a Visual Studióba vagy az
Azure AI DeveloperAzure CLI-be való bejelentkezéshez használt fiókhoz kell hozzárendelnie. További információért lásd: A Foundry eszközök hitelesítése a .NET segítségével.Küldjön egy kérelmet a modellnek egyetlen termékértékeléssel, majd nyomtassa ki az elemzett hangulatot a konzolon. A kért strukturált kimeneti típust úgy deklarálhatja, hogy típusargumentumként átadja a ChatClientStructuredOutputExtensions.GetResponseAsync<T>(IChatClient, String, ChatOptions, Nullable<Boolean>, CancellationToken) bővítménymetódusnak.
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}");Ez a kód a következőhöz hasonló kimenetet hoz létre:
Sentiment: PositiveAhelyett, hogy csak egyetlen felülvizsgálatot elemez, elemezheti a felülvizsgálatok gyűjteményét.
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}"); }Ez a kód a következőhöz hasonló kimenetet hoz létre:
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: NeutralAhelyett, hogy csak az elemzett enumerálási értéket kérnél, a szöveges választ az elemzett értékkel együtt is kérheti.
Adjon meg egy rekordtípust , amely tartalmazza a szöveges választ és az elemzett hangulatot:
record SentimentRecord(string ResponseText, Sentiment ReviewSentiment);(Ez a rekordtípus elsődleges konstruktorszintaxissal van definiálva. Az elsődleges konstruktorok egyesítik a típusdefiníciót az osztály bármely példányának példányosításához szükséges paraméterekkel. A C#-fordító nyilvános tulajdonságokat hoz létre az elsődleges konstruktorparaméterekhez.)
Küldje el a kérést a rekordtípus használatával típusargumentumként a következő címre
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}");Ez a kód a következőhöz hasonló kimenetet hoz létre:
Response text: Certainly, I have analyzed the sentiment of the review you provided. Sentiment: Neutral
Erőforrások tisztítása
Ha már nincs rájuk szüksége, törölje az Azure OpenAI-erőforrást és a modell üzembe helyezését.
- Az Azure Portalon keresse meg az Azure OpenAI-erőforrást.
- Válassza ki az Azure OpenAI-erőforrást, majd válassza a Törléslehetőséget.