创建提示建议
提示建议是在 Microsoft Teams 聊天中向用户显示的命令。
提示建议创建引人入胜且富有洞察力的用户体验,并通过提示对话向他们展示机器人的价值来帮助机器人获取和保留用户。 可以使用提示建议来帮助用户启动与机器人的对话,并了解如何与机器人交互。
可以使用两种类型的提示建议:
提示初学者
注意
机器人可以使用提示初学者或欢迎消息。 如果机器人使用提示初学者,请确保机器人不会发送欢迎消息。
提示初学者仅支持一对一聊天机器人。
若要启用提示初学者,请在 commands
机器人的应用清单中定义 属性。 每个命令都包含 title
和 description
。
title
是提示符,description
描述用户完成的操作。 当用户选择提示初学者时, title
系统会在撰写框中填充提示的 。 若要在应用清单中定义 commands
,可以使用 开发人员门户 或在应用清单中手动添加它们。
若要使用开发人员门户创建提示初学者,请执行以下操作:
打开 Teams,然后从左窗格中选择“应用”。 在 “应用 ”页中,搜索 “开发人员门户”,然后选择“ 打开”。
在 开发人员门户中,选择“ 应用 ”选项卡。如果没有现有应用包,可以创建或导入现有应用。 有关详细信息,请参阅 Teams 开发人员门户。
选择“ 应用 ”选项卡,在左窗格中选择“ 应用功能 ”,然后选择“ 机器人”。
在 “命令”下,选择“ 添加命令”。
输入以下字段的值:
- 命令:显示为机器人的提示。
- 说明:命令用途的简要说明。
选择个人范围,然后选择“ 添加”。 这定义了命令菜单必须显示的位置。
注意
如果从清单中删除任何命令,则必须重新部署应用以实现更改。 一般情况下,对清单所做的任何更改都需要重新部署应用。
下面演示了提示建议的示例:
对话期间,提示启动器在撰写框上方的“视图提示浮出控件中重新出现,并使用户在与机器人交互时可以查看提示。
在处理来自用户的任何消息时,必须在机器人代码中处理菜单命令。 可以通过分析消息文本的 @Mention 部分来处理机器人代码中的菜单命令。
机器人中的句柄commands
组或频道中的机器人仅在消息中响应 @mentioned 。 机器人在组或频道范围内收到的每条消息的消息文本中都包含其名称。 在处理要返回的命令之前,消息分析必须处理机器人收到的含有其名称的消息。
注意
处理代码中的命令,它们作为常规消息发送到机器人。 你必须像处理来自用户的任何其他消息那样处理这些命令。 代码中的命令会将预配置的文本插入文本框中。 然后,用户必须像发送任何其他消息一样发送该文本。
可以使用随Microsoft Bot Framework提供的静态方法分析消息文本的@Mention部分。 它是名为 RemoveRecipientMention
的Activity
类的方法。
用于分析消息文本 @Mention 部分的 C# 代码如下所示:
// Remove recipient mention text from Text property.
// Use with caution because this function is altering the text on the Activity.
var modifiedText = turnContext.Activity.RemoveRecipientMention();
建议操作
建议的操作可帮助用户根据以前的响应或对话,了解接下来要询问的内容。 机器人应向用户提供特定于上下文的建议,而不是常规建议或固定建议。 可以使用机器人的大型语言模型 (LLM) 生成最多三个建议及其响应。 然后,可以提取这些建议,并将其作为选项呈现供用户选择。
当用户选择按钮时,它在富卡上保持可见和可访问。 但是,对于建议的操作,按钮设计为在选择后消失,以防止用户选择可能不再相关的过时选项。
注意
-
SuggestedActions
仅支持具有基于文本的消息和自适应卡片的一对一聊天机器人。 -
SuggestedActions
具有任何聊天类型的附件的聊天机器人不支持。 -
imBack
是唯一受支持的操作类型,Teams 最多显示三个建议的操作。
若要向消息添加建议的操作,请指定卡操作对象的列表,这些对象表示活动对象的 属性要向用户sugestedActions
显示的按钮。
下面是实现和体验建议操作的示例:
{
"type": "message",
"from": {
"id": "12345678",
"name": "sender's name"
},
"conversation": {
"id": "abcd1234",
"name": "conversation's name"
},
"recipient": {
"id": "1234abcd",
"name": "recipient's name"
},
"text": "What are the tasks for the day.",
"inputHint": "expectingInput",
"suggestedActions": {
"actions": [
{
"type": "imBack",
"title": "Create a new query identifying overdue tasks",
"value": "Create a new query identifying overdue tasks"
},
{
"type": "imBack",
"title": "Create a new work item for this feature",
"value": "Create a new work item for this feature"
}
]
},
"replyToId": "5d5cdc723"
}
下面演示了建议的操作的示例:
代码示例
示例名称 | 说明 | .NET | Node.js |
---|---|---|---|
提示初学者机器人 | 此示例代码介绍机器人应用清单中通过 commands 属性实现机器人的提示初学者。 |
View | View |