[本文是预发行文档,可能会有所更改。]
您的客户服务代表(服务代表或代表)依赖于来自各种系统的数据和信息。 使用插件,您可以直接与非 Microsoft CRM 数据进行交互。 此直接交互有助于减少服务代表切换到其他选项卡和工具来完成工作的需要,并提高解决问题的速度和客户满意度。
先决条件
- 在 Copilot Studio 中,如果要在嵌入式 AI 代理中使用提示插件,请创建 prompt 插件。
- 在 Copilot Studio 中,如果要在嵌入式 AI 代理中使用连接器插件,请创建 custom 连接器插件。
配置插件
若要在 Copilot Studio 中创建插件后在嵌入式 AI 代理中使用提示插件或连接器插件,必须在管理中心启用该插件。 以下部分介绍如何启用和配置插件。
- 在 Copilot 服务管理中心中,选择 Productivity。
- 在生产力页面上,选择管理以管理生成式 AI 的插件(预览版)。 将显示生成式 AI 插件(预览版)页面,其中包含为环境生成的所有插件提示。
- 选择要启用的提示插件,然后在命令栏上选择打开。
- 在选择访问类型中,选择以下类型之一:
- 具有 Copilot 的所有智能体:通过代理体验配置文件为其启用 Copilot 的智能体。
- 特定用户角色:选择列表中的角色。
- 定义输入(可选) 屏幕随即显示。 此步骤是可选的,可用于提供Copilot可以自动生成答案的上下文。 如果不添加输入,则服务代表必须在运行插件时手动指定上下文。 若要配置输入并了解有关此功能工作原理的详细信息,请执行定义输入部分中的步骤。
- 选择下一步,然后在插件数据屏幕上,选择存储此插件的数据。 数据作为服务代表与 Copilot 互动的聊天记录,存储在您的 Dataverse 数据库中。 更多信息请参阅Copilot文稿和交互数据。
- 选择启用插件。
- 在页面顶部的警报消息中选择发布更改,然后在出现的确认对话框中选择确认。 发布更改可能需要 15 分钟。
定义提示的输入
在定义输入(可选) 屏幕上添加输入时,可以通过自动合并相关数据使提示具有上下文感知功能。 此输入允许Copilot直接访问指定的字段,而无需客户服务代表手动输入系统中已存在的信息。
如果不配置输入,则提示将保持静态,并且无法访问上下文。 然后,该插件会提示服务代表输入他们必须手动输入的其他信息。
例如,您有一个提示,该提示根据客户的名称和案例 ID 检索客户的订单详细信息。 您可以将客户名称和案例 ID 字段添加为定义输入(可选) 中的输入。
当服务代表打开案例并触发提示时,Copilot会自动从案例记录中选取客户名称和案例 ID,并将其用作提示的输入。
对于嵌入式 AI 代理,您需要生成参数键。 参数键是 JavaScript 文件中用于从非 Microsoft CRM 检索所需上下文的唯一标识符。
设置参数键
若要在定义输入页面上设置参数,请执行以下步骤:
指定记录类型和数据字段。 您需要指定此信息以生成参数键。
选择复制以复制参数键中的值。 参数键值是系统在 JavaScript 中使用的变量,用于存储系统作为输入传递给插件的值。
选择“保存”。
选择 下一步 转到 Dynamics 365 中的 Save 插件数据,然后完成插件配置的步骤。
请在 JavaScript 文件中使用您在步骤 2 中复制的参数键。 在将参数键作为输入传递给插件中了解详细信息。
将参数键作为输入传递给插件
创建一个 JavaScript 文件,该文件使用在设置参数键的步骤 2中复制的Parameter Key变量,并订阅 Microsoft CCaaS Embed SDK 中的Microsoft.CCaaS.EmbedSDK.Copilot.onGetPluginData函数。 以下操作适用:
- 该函数侦听获取插件数据的请求。
- 它从系统中检索所需的数据,并将值分配到参数键变量。 此参数键变量是在设置参数键部分的步骤 2 中复制的值。
- 它将参数键变量的值返回到插件。 插件使用此值作为提示的输入。
例如,您在定义输入(可选) 页面中生成了两个incident____customerid_account____accountid,customerid_account____accountid 和 。 下面是函数的示例代码,该函数针对 incident____customerid_account____accountid 返回值 1 并针对 customerid_account____accountid 返回值 2,这些值随后作为输入传递到插件。
Microsoft.CCaaS.EmbedSDK.Copilot.onGetPluginData((request) => {
return new Promise((resolve, reject) => {
// 7 get plugin data
const { objectData } = request;
const pluginContext = objectData || {};
const { entityId, entityName, parameters, parameterValues } = pluginContext;
let responseData = null;
console.log("External adapter plugin invoked...");
if (entityName === "incident" && // sample entity name (case == incident)
parameters.length > 0) {
// copy parameter values
const values = parameterValues;
// override parameter values for 1P or 3P scenario
parameters.forEach((param) => {
if (param === "incident____customerid_account____accountid") {
values[param] = "1";
}
if (param === "customerid_account____accountid") {
values[param] = "2";
}
});
// return the updated parameter values
responseData = {
entityId,
entityName,
parameters,
parameterValues: values,
};
}
const dataResponse = {
objectId: request.objectId,
objectType: request.objectType,
data: responseData,
};
console.log("External adapter sending data from plugin:",responseData);
resolve(dataResponse);
});
});
备注
请确保将此文件托管在 Web 服务器上,并使其可公开访问,以避免出现身份验证问题。
在非 Microsoft CRM 中配置 URL
您可以将 JavaScript 文件的 URL 追加到 Copilot 可嵌入小组件 URL 中,用于通过将 "&copilotExtensionUrl=<URL to customer hosted .js file>" 添加到现有嵌入 URL 来在非 Microsoft CRM 中嵌入 Copilot 小组件。
例如,如果 JavaScript 文件的 URL 是 https://embedcopilotnonprod.blob.core.windows.net/embedcopilotnonprodcontainer/demopromptplugin.js,则您需要在非 Microsoft CRM 中添加的 URL 如下所示:
https://copilotforservice-prod.azureedge.net/widget/index.html?dynamicsUrl=https://X<your_org_URL>&copilotExtensionUrl=https://embedcopilotnonprod.blob.core.windows.net/embedcopilotnonprodcontainer/demopromptplugin.js
管理插件
使用命令菜单上的选项来管理插件。 编辑按钮可让您更新插件设置并发布更改。 在发布过程中,您无法更改任何设置。
注意事项
- 您只能添加一个插件操作。
- 如果更新插件,建议在 Copilot Studio 中保存并重新发布插件。 然后,可以在 Copilot Service 管理中心的生成式 AI 插件(预览)上选择刷新,以查看更改。