意图
本章节将讲解:什么是意图,以及如何在平台创建和使用意图。
意图定义
意图名称 就是用户想要完成的事情。例如:获取天气情况、获取办理事务的方法、完成事务的办理等。意图名称即意图标准触发词。
意图类型 分为自定义意图和预置意图两类
触发方式 用户想表达同一个意图时,常常会使用不同的提问话术。机器人会将用户提问与全部意图的相似说法进行相似度匹配,进而识别用户意图。意图触发方式有 关键词 和 相似说法 两大类
关键词 支持 等于 和 包含 两个触发规则:
- 等于 条件中,当用户的输入和设置严格匹配关键词时起作用;
- 包含 条件中,当用户的输入中含有关键词就会起作用。
相似说法 支持基于语义相似度,匹配相似说法的意图触发条件。除了纯文本外,还支持通过句式进行进阶配置。
note
相似说法相当于示例语句,用于告知机器人什么能够触发这个意图。
真实场景中,建议添加20个以上的泛化相似说法,会让机器人对意图有比较好的理解能力。
预置意图
除了业务相关的意图需要开发者自行搭建维护,平台预置了一些意图,帮助用户实现通用的场景。
无意图(Out of scope)
当用户消息与机器人已有意图均无关。这时机器人进入任何技能都不符合预期,因此须触发无意图。
触发无意图时,机器人直接回复兜底回复。
常见的无意图内容有辱骂性语句、无法区分含义但容易被错误触发的表达以及业务范畴外易被错误触发的表达。
退出意图(Exit)
当用户在一个对话流程中任意位置,想退出当前流程的话,可以通过触发退出意图来退出意图。
触发退出意图时,机器人会直接终止当前流程,清空流程中的缓存信息,并发送回复:“已退出”。
意图创建与管理
点击机器人菜单“搭建-资源-意图”,就可以进入到意图管理界面。
在页面上会有预置的两个系统意图,我们可以为其自定义触发方式。
点击“新建意图”按钮,编辑意图名称和触发方式,即可创建一个新的意图。
“意图触发-相似说法”下的输入框,输入相似的说法表述并点击“添加”按钮或单击回车键即可新增。
“关键词-等于/包含”下的输入框,输入符合意图含义要求的关键词并回车,即可新增。
在机器人中创建意图成功后,管理页会展示全部意图列表,其中包括意图名称、意图触发方式及意图使用情况。
意图顺序默认按创建顺序由近至远,支持按技能类型和触发方式筛选,以及按照更新记录排序。
新创建的意图还未被使用过,因此使用情况为“未被使用”,当它在技能中被使用时,这里会展示使用该意图的技能。
一般来说,平台不允许直接删除正在被技能使用的意图,你需要先清空它在各个技能中的使用情况再删除。不过对于仅在FAQ中使用的意图,平台允许用户在删除意图的同时,将这个FAQ技能也快速删除。
句式-相似说法的进阶配置
- 用实体聚合的相似说法:可以通过用实体聚合的相似说法聚合有相似的句子结构的纯文本相似说法
- 句子结构类似,但冗余的纯文本相似说法会变成这个样子:
- 我想退苹果可以吗
- 我想退桃子可以吗
- 我想退梨可以吗 - 用实体“水果”聚合的相似说法却只需要一条,“苹果”可以替换为任何水果实体。
- 我想退[苹果]{"entity": "水果"}可以吗
- 带词槽相似说法的完整格式如下:
'[示例]{"entity": "实体名"}'
- 句子结构类似,但冗余的纯文本相似说法会变成这个样子:
- 标注角色的相似说法:可以用于告知机器人如何将意图中抽取到的实体填入词槽。
- 句子结构类似,但冗余的纯文本相似说法会变成这个样子:
- 我要从北京到上海
- 我要去一趟上海 - 在上面的例子里,北京在句子中位置的角色是出发地,上海在句子中位置的角色是目的地。
- 用户说的话里,有两个实体相同但是角色不同的片段,为了告诉机器人抽取到的实体片段属于什么角色,我们需要进行说明:
- 我要从[北京]{"entity": "sys.city", "role": "出发地"}到[上海]{"entity": "sys.city", "role": "目的地"}
- 我要去一趟[上海]{"entity": "sys.city", "role": "目的地"} - 标注角色的相似说法的完整格式如下:
'[示例]{"entity": "实体名", "role": "角色名"}'
- 句子结构类似,但冗余的纯文本相似说法会变成这个样子:
预设实体引用名
- 时间:sys.time
- 日期:sys.date
- 城市:sys.city
- 任意:sys.any