文档简介:
相关名词解释
- 实体:实体是对一类对象的抽象,每个对象作为实体值添加到一个实体中,从而可以在对话过程中被识别。例如在身份验证中,通过使用“身份证号实体”、“手机号码实体”、“手机验证码实体”,可以识别到用户表达的相关信息。
- 用户实体:用户实体为用户在系统中的自建实体。
- 系统实体:系统实体为系统中自带的通用实体。
- 实体值:某实体集合所包含的元素,如定义一个信用卡实体所对应的实体值可能包括白金卡、黑金卡、钻石卡等。
- 意图:用户明确表示的想要办理的业务和意愿可通过意图进行创建。例如在银行业务中,创建“信用卡账单查询意图”、“理财方式询问意图”。
- 用户意图:用户意图为用户在系统中的自建意图。
- 系统意图:系统意图为系统中的通用意图。
- 意图示例:能够触发某意图对问法。如信用卡账单询问意图,意图示例:上个月花了多少钱、我账单是多少、我花了多少钱等。
- 意图关键词/规则:用户表述中包含意图的对应关键词或匹配到模板表达式时,即回答此意图下答案。在项目初期语料不足和长难句难以识别的情况下,添加关键词和模板规则有利于识别用户意图并做出回复。
- 流程片段:为实现某一任务按照一定逻辑组织起来的节点集合,流程片段内的节点会有默认的前后顺序,以虚线连接,可手动调整。流程片段只能有一个根节点。
- 流程片段池:所有流程片段的集合。
- 接口:接口是系统对接业务系统配置流程时的第三方服务地址。
- 指令:指令是系统对接业务系统配置流程时的协议指令。
实体
实体包括用户实体和系统实体,用户实体支持增加、删除、修改,系统实体仅支持启用、禁用和实体值的增加。
用户实体
新建实体
在“任务式会话”中点击“实体”,在“用户实体”下点击“新建实体”,填写实体名称、实体ID、实体描述后点击“保存”即可。
编辑实体
- 在需要编辑的实体右侧操作下,选择“详情”,进入实体编辑页面。
- 可对实体名称、实体ID、实体描述进行修改。
- 可对实体值进行增删改查。
- 实体值可添加同义词,在需要添加同义词的实体值右侧点击“编辑”,在右侧输入框中可添加同义词。
删除实体
点击右侧的“删除”,可删除实体及其所包含的所有实体值。
系统实体
系统预设了一些实体,如日期、年、月、人名、地点等。
启用/禁用系统实体
如需使用仅需在“实体-系统实体“下点击“启用”,点击“禁用”可停止使用。
系统实体维护
点击实体名称,可进入系统实体详情,进行系统实体的维护,主要是对实体值的增删改操作(仅部分系统实体允许编辑实体值)。
系统实体:地点实体的高级使用
该实体内置了一套地点关联词表,在进行实体识别时会自动对词表内包括的省市区进行关联填充,填充的值会存放在属性中,供用户通过高级模式使用。例如用户表达海淀区,系统可自动为其补充国家(country):中国和省/市(province):北京。 在高级模式中使用的语法是:&city=@sys_location.extra['city'],其中&city代表一个变量,而方括号中的city代表属性值,可以替换为country、province、area、location
规则实体与复合实体
详细的使用请参考文档:https://cloud.baidu.com/doc/ICS/s/Ak9inbod6
导入、导出实体
点击右上角导入、导出按钮,可以对实体进行导入、导出。目前导入导出时仅支持用户实体中的普通实体和规则实体,以及部分系统实体的枚举值。
意图
意图包括:用户意图,系统意图。用户意图支持增加、删除、修改,系统意图仅支持启用、禁用和意图示例的增加。
用户意图
新建意图
点击左上角“新建意图按钮”,填写意图名称、意图ID、意图别名和意图描述。
编辑意图
- 对于已经添加的意图,点击“详情”进入意图详情界面。
- 可对意图名称、意图ID、意图别名、意图描述进行修改。
- 可对意图示例进行增删改查。
- 添加字符、@实体ID或模板表达式作为意图关键词或模板,当语句中包含所对应字符、实体值或模板时,此意图即被命中。此方法可大幅提高意图识别率,有利于长难句的意图识别。
可对关键词或模板进行增删改查。
删除意图
点击所选意图右侧操作下的“删除”,即可删除意图及其包含的所有意图示例、意图模板等信息。
系统意图
除用户自建意图外,系统还提供一些自带意图方便用户直接调用。
启用/禁用系统意图
点击任务式会话中的意图,左上角转化到系统意图。通过“点击启用”、“点击禁用”实现开启或关闭系统意图。禁用后,触发此意图的问题不会被回复。
系统意图维护
点击意图名称,可进入系统意图详情,进行系统意图的维护,包括对意图示例和意图关键词/模板的增删改操作。
行业意图
选择Agent时,可选择不同的行业,选择行业之后,意图中随即出现系统内置的行业意图。行业意图目前支持银行和航空两个行业。下面以银行行业的Agent举例:
1、选择好行业并创建Agent:
2、进入意图模块:
3、使用行业意图:
点击添加至用户意图即可将此行业意图添加至用户意图,但内置的意图示例数据不可见也不可修改。
添加成功后,可以对此意图进行添加示例、删除示例的操作;删除此意图视作对对应行业意图的禁用;同一行业意图一次只能添加一个至用户意图列表。
意图模板
意图的规则模板使用详细说明请参考文档:https://cloud.baidu.com/doc/ICS/s/gk9i8ntap
导入导出意图
可通过右上角导入、导出功能将本地意图导入系统,或将已经创建好的意图导出到本地,实现多账号间意图的转移。
意图不响应问题
当某问题被设置为意图不响应问题时,用户的提问不会触发任何意图下的回复,相当于问题被加入了意图的黑名单。
- 可通过右上角意图不响应问题,为某些意图设置黑名单,使系统不响应该意图。
- 进入意图不响应问题详情页,可对不响应问题进行增删改查操作。
会话流程
通过创建流程片段,实现针对某项任务的会话流程配置,配置完成后系统可与用户开展任务式对话,在会话流程中涉及几个关键名词:
- 节点:是会话流程中的最小模块,以一个触发区域和多个条件执行跳转组合模块为整体。节点可以具有父子关系,如果不满足父节点的触发条件,则子节点也会被跳过。
- 根节点:一段流程的起始节点,如果不满足根节点的触发条件,则整个流程片段被跳过。
- 流程片段的引用:可以在一个流程片段内引用其他的流程片段,引用不产生新的副本,仅仅是指向流程片段池中已有片段。对于引用的流程片段,可以跳转到其内部的非根节点。
新建流程片段
新建会话可以通过新建会话流程与导入流程两种方式,在“任务式会话-会话流程”中,鼠标移动到“流程片段”,选择“导入流程片段”上传文件,或选择“新建流程片段”,填写名称和描述。
管理流程片段
点击"管理"按钮,可进入到流程片段的画布页面,并对会话树进行编辑。
编辑节点的触发条件决定是否执行节点内部配置的信息。
节点中的执行模块决定此流程片段的此节点如何回复用户。 高级模式语法规则文档
使用会话测试功能进行流程片段测试并确定编辑无误。之后点击"确认生效",此流程片段的会话树内容才能生效并被bot引用。
填写对应的版本名称以及相关的版本描述,即可提交生效。当开启流程片段画布审核时,提交生效之后需审核通过才能生效。
用户点击"查看历史版本",可以查看最近生效的10个流程片段历史版本。
点击弹窗中"查看",可以查看对应版本的流程片段画布信息。
点击弹窗中"恢复至画布",将对应版本的流程片段画布信息恢复至流程片段画布。
复制流程片段
- 点击每条会话右侧向下按钮中的“复制”,可复制已经存在的流程片段。
- 填写复制后流程片段的名称和描述。
编辑流程片段
- 点击每条会话右侧向下按钮中的“编辑”,进行编辑操作。
- 编辑内容为对话名称和描述。
删除流程片段
点击每条会话右侧向下按钮中的“删除”,可删除会话及其包含的所有信息。
流程画布详细说明
在配置一个会话流程时,最核心的工作就是利用流程画布绘制流程,设计对应的条件分支和处理节点,这项工作就需要使用到流程画布。本节具体介绍流程画布的功能和使用方式。
画布典型功能布局
流程画布的基本元素及关系
流程画布最核心的元素就是节点,图中每一个独立的小卡片就是一个节点
除了默认的树型的遍历顺序以外,产品也支持手动指定跳转到某个节点以改变条件触发时遍历顺序
- 一个流程由一个根节点(即处于最顶部无兄弟节点的那个节点)和若干子节点组成
- 每一层节点为其有连线的下方节点的父亲节点,下方节点成为其子节点,每次遍历时都会从某个节点的第1个子节点(最左边的)开始进行进入条件触发判断
- 节点本身存在“节点进入条件”和“节点执行模块”两个部分,满足节点进入条件才会进入节点执行模块
- 节点进入条件若空置即代表无任何条件可触发进入该节点(但仍然可以通过指定跳转到执行来跳过节点进入条件的判断,节点内容详细解读见下一部分)
- 在执行流程时,节点有一个默认遍历顺序(即树的前序遍历),由根节点触发,自上而下自左至右进行条件触发判断的遍历,一旦满足某个节点条件则进入该节点,从而可以根据节点执行的配置来进行相应处理
- 一个节点可以有多个执行模块,会自第一个模块开始判断条件,若满足执行模块的条件就执行该模块,执行完成后就直接结束节点,等待用户再次输入或跳转到其他节点(即在一轮对话中,即使进入了一个多执行模块的节点,也至多只有一个执行模块会被执行)
- 与节点条件不同的是,若执行模块不配置条件,则代表该执行模块无条件执行
节点的基本内容
双击一个节点的进入条件,可以配置其进入条件的内容
双击一个节点卡片可以对一个节点的内容进行配置
-
节点级操作
- 启用webhook,启用后会通过webhook配置的地址进行指令的传输
- 清除上下文,当此节点执行完成后会清空遍历到此节点位置所有的变量赋值和系统状态
- 完成节点,用于节点完成率统计,如果认为某个节点输出可视为节点完成则勾选该标记
-
执行模块
- 执行模块条件,可为空,为空代表任何情况下都执行
- 变量赋值,可以设置多个变量存储用户输入或者系统返回或者采集到的实体等;需要先在变量管理中注册才可以在节点中使用
- 指令,用来标记需要业务系统或其他系统执行的命令;需要先在指令管理中注册才可在节点中使用
- 回复内容,执行该模块后机器人会对用户输出的内容,如果是多个节点连续跳转则回复内容会拼接到一起;回复内容中可以以'{%&变量名%}'的形式拼接变量内容。
-
节点跳转
- 不跳转,执行完该执行模块后不跳转,等待用户输入后继续遍历当前节点下的子节点
- 跳转到触发,执行完该执行模块后跳转到指定节点的进入条件,如果符合则进入指定节点,如果不符合则继续遍历指定节点的兄弟节点
- 跳转到执行,执行完该执行模块后跳转到指定节点的执行模块,无需判断该节点的进入条件;按顺序判断执行模块的条件,如果有满足条件的则执行该模块,如果没有则停留在该节点等待用户再次输入
流程画布的节点菜单
在一个节点上右键或者点击节点卡片右侧的更多按钮,可以进行节点菜单操作
- 查看节点,查看节点详细内容
- 显示/隐藏节点跳转管理,可以同时查看某个节点的跳转关系
- 添加子节点,在该节点所有子节点前创建一个子节点
- 添加兄弟节点,在节点后创建一个兄弟节点
- 添加实体采集模板,填写一个表单后自动创建采集实体的流程
- 复制节点,在该节点后复制出一个与该节点内容相同的兄弟节点
- 复制节点分支,在该节点后复制出一个与该节点分支(所选节点及其所有子节点)相同的兄弟节点分支,其中分支内部的跳转关系会保留,跳转到分支外部的跳转关系也会保留,跳转到分支内部的跳转关系会忽略
- 编辑进入条件,即编辑节点的进入条件
- 编辑节点,即编辑节点的内容,包括执行模块
- 删除节点,删除该节点及其所有子节点
除菜单操作外,画布还提供几个全局功能
- 节点拖动
- 画布缩放
自动跳回类型流程片段
平台还提供了一种自动跳回类型流程片段,在创建时可以选择。此功能有两个作用:第一,设置自动跳回节点;第二,屏蔽意图切换功能。
创建完成后可以在流程中对某个节点设置自动跳回。
自动跳回功能是指:若进入此流程片段是由外部节点(即其他流程片段的节点)跳转而来的,且此时流程执行到设置了自动跳回的节点,当该节点执行完成后会自动返回跳转到该流程片段的外部节点上。
接口指令
在任务式会话中点击“接口指令”,进入接口指令编辑页面。
新建指令
点击指令左上角“新建指令”,填写指令名称、标识、描述。
使用指令
在流程片段中配置指令,流程片段会将指令标志一并传入上游,由上游解析,使用。
编辑指令
可对指令进行增删改查操作。
配置接口
点击接口,进入接口页面,点击右上角“编辑”按钮,进行接口配置
操作步骤:
- 点击“启用”启动webhook。
- 填写基础信息:URL地址、用户认证。
- 填写headers,headers支持增删改。
任务式会话配置示例
相关名称解释
- 满足条件:在“普通模式”下,可选择意图、实体、变量作为执行必须满足的条件,可选择满足“以下全部条件”或“其中任何条件”时方可执行动作。在“高级模式”下,可自主编辑代码,具体可参考“表达式说明”。
- 执行模块:条件满足后,可以进行的操作,包括:指令、回复内容、变量赋值、节点跳转,节点跳转下可选择不跳转、节点触发或节点执行。 在同一节点下可添加多个满足条件和执行模块。
点击每条会话右侧“管理”,进入流程画布编辑会话流程。
以“信用卡账单查询”为例,先来梳理逻辑。用户发起意图“我要查询信用卡账单”时,开始进行身份验证,若身份验证成功,则向用户收集银行卡号,然后向用户通报账单金额;若身份验证失败,则不会进入收集银行卡号和通报账单流程。身份验证是通过身份证号码和手机号进行验证。
此时需要配置两个流程片段,一个是完成“查询账单”这一主业务流程片段,一个是完成“身份验证”的流程片段。
身份验证
配置根节点条件
选择“添加触发条件”,选择意图-身份验证。
配置根节点信息
配置节点名称,并“新建执行模块”,按需配置执行条件和动作。
在子节点中收集需要的信息
以收集身份证号为例
- 建立子节点。添加节点名称为“身份证号收集”。
- 配置子节点条件。先来梳理一下逻辑,若用户已经提供身份信息则不需要收集,若用户未提供身份信息,此时需要收集其身份id。选择“添加触发条件”,选择变量-身份id不存在。
- 配置子节点信息。“新建执行模块”,在执行模块中配置回复话术“请输入身份证号”。
- 身份证号收集存在“成功”和“失败”两种情况,两种情况下回复话术和动作不同。若成功则进行下一个动作“收集手机号码”,若失败则需跳回根结点重新收集身份证信息。
配置成功收集节点。条件为“身份证实体存在”,节点跳转配置下一个收集节点。
配置失败收集节点。条件为“其他不为空的输入”,节点信息中,回复话术配置会拼在“身份证号收集”节点回复内容前。节点跳转配置触发身份证号收集节点。
- 据此配置“手机号收集”和“验证码收集”。
- 身份证号、手机号、验证码收集成功后,进入“身份验证完成节点”,身份验证完成。
- 配置变量。这里的变量用于跳转回原流程片段,“身份验证”这一流程片段的结果有两种,“成功”和“失败”,若成功,则需要跳转回原片段的“验证成功”节点,若失败,则需要跳转回原片段的“验证失败”节点。
在成功时,配置执行内容:变量“&IDcheck=1”,在原流程片段的验证成功节点配置条件“&IDcheck=1”。
在失败时,配置执行内容:变量“&IDcheck=0”,在原流程片段的验证失败节点配置条件“&IDcheck=0”。
查询账单
先来梳理逻辑,用户进行“查询账单”任务时,需要先触发“查询账单”意图,进入“查询账单”会话流程。进入流程后,首先进行身份验证,如果验证成功是本人,则进行接下来的“银行卡号收集”和“账单指令查询”,若不是本人,则无法进行下面的流程。
进行身份验证通过跳转至上面配置的“身份验证”流程片段实现。
- 配置根节点。配置欢迎语话术和跳转至身份验证,并且配置变量用于由身份验证跳转回来。
- 配置身份验证成功和失败节点。根据身份验证返回的变量信息,进行条件配置。
- 配置身份验证成功后收集银行卡号的节点。
- 配置余额查询节点,调用webhook获取余额信息。
- 配置结束节点。