跳到主要内容
版本:1.11.0

词槽

本章节将讲解:什么是词槽,以及如何在平台创建和使用词槽。

词槽的定义

在意图中,机器人往往需要保存对话上文的各类核心信息,利用这些信息去推动后文发展。

词槽 就是存储意图所需关键信息的变量,它可以在对话中被继承,机器人根据词槽中的值给出后续的操作与反馈。

譬如,机器人需要完成一个“订机票”的任务。

为此,需要收集的信息包括“出发地”、“目的地”、“舱位”、“出发时间”等等。

存放这些数据的变量,就是词槽。

机器人从其他地方获取“值”,然后将“值”赋给词槽。这个过程称为“填充词槽”,简称 填槽

机器人的填槽来源有:

  • 对话填槽:从用户会话中获取信息来填槽
    • 用词汇填槽
    • 用句子填槽
  • 接口填槽:从外部接口中接收数据来填槽

对话填槽

对话填槽有四种类型:整句填槽、意图填槽、实体填槽和角色填槽

一个词槽可以同时配置多个填槽方式,优先级从高到低为:角色填槽 > 实体填槽 = 意图填槽 > 整句填槽

用词汇填槽

用实体填槽

举例来说,词槽“目的地”引用了实体“车站”;实体“车站”中,有“上海”这个实体值; “上海”这个实体值的多种说法中有“上海虹桥”。

当发生下面的对话时:

用户:帮我定明天到上海的火车票

机器人:好的

当用户说“帮我定明天到上海的火车票”时,机器人根据“上海”这个多种说法,进行以下判断和行动:

  • 用户信息中包含“上海虹桥”
  • “上海虹桥”是实体值“上海”的一个多种说法,因此抽取出实体值“上海”
  • 将“上海”填入词槽“目的地”中

用角色填槽

当流程中有两个相同的实体,必须通过角色来对他们进行区分时,就需要用到角色填槽了。角色名称在意图中进行定义。

更多操作,请参考句式-相似说法的进阶配置

用句子填槽

用意图填槽

用户整句话匹配到意图时,将意图归一化值填槽。一般用于表述多样的选择性分支,如“那也行”、“还是算了”等。

机器人:您最近身体感觉如何,伤口还有严重不适吗

用户:好多了,基本上不疼了。

  • 词槽[患者症状]=健康

机器人:那太好了,请继续保持。

  • 用户同一个意思的表达相对随意,通过意图匹配来继续后续的分支流程。

用整句填槽

将用户整句话作为词槽值。一般用于收集用户的其他建议、或者作为当其他填槽方式未能获取到值时的兜底。

机器人:请留一下您的手机号,便于我们联系您

用户:我不想留手机号

  • 如果未配整句填槽,机器人无法抽取到符合实体规则的11位数字填入槽中,导致流程停滞。

  • 如果用了整句填槽做兜底,机器人会将“我不想留手机号”填入词槽“手机号”,继续流程。

机器人:还有其他需要补充的嘛?

用户:对了,我过两天出差可能不会及时回复。

  • 补充环节用户的话术不好预知,通过整句填槽可以直接留下完整内容。

接口填槽

从第三方接口中查询信息,详细配置方法请见多槽接口单元

<订机票意图>

机器人经过一系列询问,获得了用户的出发地、到达地、出发时间。

机器人将出发地、到达地、出发时间传入第三方接口。接口根据信息查找航班,再将结果发送给用户。

在最后一个步骤中,就需要把从第三方接口中的信息填入词槽中,然后才能在后续流程中发送给用户。