หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
Note
บอท Copilot Studio ถูกเปลี่ยนชื่อเป็นเอเจนต์ Copilot (เอเจนต์หรือ เอเจนต์ AI) ตัวแทนที่เป็นมนุษย์เปลี่ยนชื่อเป็นเจ้าหน้าที่บริการลูกค้า (เจ้าหน้าที่บริการหรือเจ้าหน้าที่) คุณอาจพบการอ้างอิงถึงข้อกำหนดเก่าและใหม่ในขณะที่เราอัปเดต UI ของผลิตภัณฑ์ เอกสารประกอบ และเนื้อหาการฝึกอบรม
สําหรับตัวแทน Azure คุณต้องติดตั้ง SDK ตัวแทนและสร้างอินสแตนซ์ของมิดเดิลแวร์ Omnichannel ก่อนที่คุณจะกําหนดค่าบริบทของตัวแทน
ติดตั้งบอท SDK ในโครงการของคุณ
ในการเปิด ตัวจัดการแพคเกจ NuGet ให้คลิกขวาที่โครงการของคุณ จากนั้นเลือก จัดการแพคเกจ NuGet
ในตัวจัดการแพคเกจ NuGet เลือกแหล่งข้อมูลแพคเกจเป็น nuget.org และเรียกดูสําหรับ "Microsoft.Dynamics.AgentsDK.Middleware" เลือกแพคเกจ จากนั้นเลือก ติดตั้ง เรียนรู้เพิ่มเติมในหน้า Nuget
อีกวิธีหนึ่งคือ คุณสามารถใช้คําสั่งต่อไปนี้ใน NuGet CLI
Install-Package Microsoft.Dynamics.AgentsSDK.Middleware
ตอนนี้มีการติดตั้ง SDK ของตัวแทนและมิดเดิลแวร์ Omnichannel พร้อมใช้งานในโครงการของคุณ
ใช้มิดเดิลแวร์ Omnichannel ในรหัสตัวแทนของคุณ
เปิดไฟล์ AdapterWithErrorHandler.cs
เพิ่มคําสั่งนําเข้าและสร้างอินสแตนซ์มิดเดิลแวร์ Omnichannel
using Microsoft.Dynamics.AgentsSDK.Middleware.Core; Use(new OmnichannelMiddleware());using System.Globalization; using System.Text; using Microsoft.Agents.Connector; using Microsoft.Agents.Core; using Microsoft.Agents.Core.Errors; using Microsoft.Extensions.Logging; using Microsoft.Dynamics.AgentsSDK.Middleware.Core; namespace Microsoft.CCaaS.MessagingRuntime.TestAgent; public class AdapterWithErrorHandler : CloudAdapter { public AdapterWithErrorHandler( IChannelServiceClientFactory channelServiceClientFactory, IActivityTaskQueue activityTaskQueue, ILogger<CloudAdapter> logger) : base(channelServiceClientFactory, activityTaskQueue, logger) { // OmnichannelMiddleware has special handling for OC event messages Use(new OmnichannelMiddleware()); OnTurnError = async (turnContext, exception) => { var exceptionInfo = GetExceptionInfo(exception); logger.LogAppException(exceptionInfo, exception); // Send a message to the user await turnContext.SendActivityAsync($"The bot encountered an error or bug.{Environment.NewLine}{exceptionInfo}"); await turnContext.SendActivityAsync("To continue to run this bot, please fix the bot source code."); // Send a trace activity, which will be displayed in the Bot Framework Emulator await turnContext.TraceActivityAsync("OnTurnError Trace", exception.Message, "https://www.botframework.com/schemas/error", "TurnError"); }; } private static string GetExceptionInfo(Exception exception) { var sb = new StringBuilder(); // Pull some well known info from ErrorResponse.Exception if available. if (exception is ErrorResponseException responseException) { sb.AppendLine(CultureInfo.InvariantCulture, $"Error code: {responseException.Body?.Error?.Code ?? "NA"}"); sb.AppendLine(CultureInfo.InvariantCulture, $"Error message: {responseException.Body?.Error?.Message ?? "NA"}"); } sb.AppendLine(CultureInfo.InvariantCulture, $"Exception message: {exception.Message}"); sb.AppendLine(); sb.AppendLine(exception.ToString()); var exceptionInfo = sb.ToString(); return exceptionInfo; } }
ขั้นตอนถัดไป
แยกวิเคราะห์กิจกรรม JSON เพื่อรับบริบทของตัวแทน