配置对任何通用参与中心的转接
Copilot Studio 让您可以通过参与中心将代理对话根据上下文无缝地递交给人工代理。
可以经过一些自定义开发配置代理以将对话递交给任何参与中心。 本指南介绍其操作方法。
先决条件
- 需要使用 Copilot Studio 创建一个代理。
- 需要一个可以使用 API 或 SDK 以编程方式交互的参与中心。
重要提示
本部分中的部分说明要求您或您的开发人员进行软件开发。 其面向经验丰富的 IT 专业人士,如深谙开发人员工具、实用程序和集成开发环境 (IDE) 并希望将第三方参与中心与 Copilot Studio 集成的 IT 管理员或开发人员。
概述
对参与中心的完整转接采用以下模式:
客户与参与中心的聊天区域交互。
参与中心通过内置聊天传递功能将传入的聊天传递到代理。
自定义适配器将传入的聊天消息从参与中心中继到 Copilot Studio 代理。
当客户触发递交时,Copilot Studio 将开始进行包含完整对话上下文的递交。
自定义适配器截取转接消息,分析完整的对话上下文,然后根据空闲情况将升级后的对话无缝传递到技能娴熟的人工代理。
将把客户的聊天根据上下文无缝递交给可继续对话的人工代理。
若要将对话递交给人工代理,需要创建自定义转接适配器。
创建自定义转接适配器
适配器通过在客户、代理和人工代理之间中继和传输消息,与代理参与中心之间桥接对话。
大多数常用代理参与中心公开提供软件开发套件 (SDK) 或记载其 API,让您可以创建此类适配器。
涵盖自定义适配器可以包含的内容超出了本文档的讨论范围。 但是,以下示例转接信息基于 Copilot Studio 作为我们的标准转接给实时代理体验的一部分生成的内容,可以帮助您入门。
这些代码段和示例让您可以从代理对话提取上下文,以便将对话按照上下文无缝递交给任何常规参与中心。
示例转接消息有效负载
目前仅支持通过 Direct Line 进行转接。 详细了解如何 与代理互动 Direct Line。 转接后,将引发名称为 handoff.initiate
的事件活动并发送给适配器。
可以在我们的 GitHub 站点中查看完整的示例转接消息活动。
从转接消息提取上下文
若要使用对话上下文,必须分析 handoff.initiate
事件活动。
下面的代码段分析 handoff.initiate
事件活动并提取对话上下文。 请参见 GitHub 中的完整代码示例。
public void InitiateHandoff(string botresponseJson)
{
BotResponse response = JsonConvert.DeserializeObject<BotResponse>(botresponseJson);
// Look for Handoff Initiate Activity. This indicates that conversation needs to be handed off to agent
Activity handoffInitiateActivity = response.Activities.ToList().FirstOrDefault(
item => string.Equals(item.Type, ActivityTypes.Event, System.StringComparison.Ordinal)
&& string.Equals(item.Name, HandoffInitiateActivityName, System.StringComparison.Ordinal));
if (handoffInitiateActivity != null)
{
// Read transcript from attachment
if (handoffInitiateActivity.Attachments?.Any() == true)
{
Attachment transcriptAttachment = handoffInitiateActivity.Attachments.FirstOrDefault(a => string.Equals(a.Name.ToLowerInvariant(), TranscriptAttachmentName, System.StringComparison.Ordinal));
if (transcriptAttachment != null)
{
Transcript transcript = JsonConvert.DeserializeObject<Transcript>(transcriptAttachment.Content.ToString());
}
}
// Read handoff context
HandoffContext context = JsonConvert.DeserializeObject<HandoffContext>(handoffInitiateActivity.Value.ToString());
// Connect to Agent Hub
// <YOUR CUSTOM ADAPTER CODE GOES HERE>
}
}