Dialogflow composite entities响应中实体顺序与定义不一致问题咨询
复合实体输出顺序与定义结构顺序不一致的常见原因
- 对话系统的实体检测逻辑默认按用户发言内容中属性出现的先后顺序捕获复合实体的属性值,而非遵循你在复合实体定义时填写的属性顺序。比如用户发言为「我要买杯子红色的」时,系统会先检测到
object属性值,再检测到color属性值,最终拼接$cart时就会按检测到的顺序输出。 - 直接调用
$cart整体变量时,绝大多数NLP平台、对话引擎都会默认按检测顺序拼接所有已捕获的属性值,不会主动对齐定义页的属性排序规则。如果要固定输出顺序,不要直接调用整个复合实体变量,改为分别调用对应属性即可,比如将回复配置修改为You choosen $cart.color $cart.object。 - 部分平台的复合实体内部采用无序字典(如JSON Object)结构存储属性,定义时的属性顺序仅作为编辑页的展示规则,不会被记录为输出排序依据,因此输出时顺序不固定。
内容的提问来源于stack exchange,提问作者Paulo Sousa
相关产品推荐
相关产品推荐

