🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 5.2 意图处理 >本节主要介绍了如何扩展机器人的对话能力。我们通过意图配置处理,例如必须词典参数的配置和必须词条的勾选,来满足一些特定场景对话需求。本节列举了买咖啡和报名信息收集两个实用案例来讲解意图处理的作用。 意图处理,是对话能力拓展的重要部分。通过意图处理,一是可以丰富当前问答;二是可以对当前意图涉及的部分信息,进行存储、更新、甚至删除等操作;三是意图处理在一些情况下,意图处理slotfilling可以代替暗号的功能。下面将逐一介绍。 ### 5.2.1 案例讲解:买咖啡 这将用到意图处理存储对话关键信息 任务:做一个咖啡定点单机器人,完成顾客点单、机器人记录给工作人员备餐和收银的任务。 首先,我们在意图中配置用户说,如“我要买(几)杯(什么)”,括号内容使用系统词典代替:我要买@sys.number:num 杯@sys.any:coffee ![](https://box.kancloud.cn/4dfd24260b5e75316e33fbb6a8a72523_691x136.png) 机器人要与用户确认订单,就必须重复一遍用户的指令,如何在机器人答中引用呢?这里就需要使用意图处理了:在意图处理中,系统会自动根据您引用的词典生成意图配置,请核对名称、值、类型(引用的词典名)是否与用户说引用的一致。 这里表示杯数名称和值都是num,属于sys.number类型(系统词典); 这里表示咖啡的名称和值都是coffee,属于sys.any类型(系统词典)。 ![](https://box.kancloud.cn/6de7b2508fd0e7d236fae65cfe6cdf0e_681x207.png) 配置好意图处理后,就可以在机器人答中引用用户说的内容啦。使用:“&”+“名称”+"一个空格",表示引用这部分内容: ![](https://box.kancloud.cn/12d875bcf3c87ce48c5afcc8367e3432_666x251.png) 保存后,我们来试一试: ![](https://box.kancloud.cn/28000577ababfd63e74c3cc3d0ceea8d_1054x463.png) 此时的JSON中,“两杯”“美式”被识别为:“2”、“美式”,记录并引用到机器人答里。 ![](https://box.kancloud.cn/6d80cc1e63a60621af33fc4fb192fdf2_1055x463.png) “五杯”“卡布奇诺”被识别为:“5”、“卡布奇诺”,记录并引用到机器人答中。 ### 5.2.2 案例讲解:收集报名信息 这里将运用意图处理的slotfilling功能 任务:做一个活动报名机器人,完成接受用户报名、收集参赛者信息,供活动工作人员审核等的任务。 流程为:我要报名——>提供姓名——>提供年龄——>提供城市——>提供电话——>完成报名 首先,建立意图: ![](https://box.kancloud.cn/944b8fe48e50737ce5827fd7c5afa7f5_689x203.png) 第二步,在意图处理中配置报名需要的四项信息:姓名、年龄、城市、电话,分别命名为:name、age、city、phone: ![](https://box.kancloud.cn/ddc66031d8cceb1612235ff36d152050_683x277.png) 在每条信息添加相应的提示语: ![](https://box.kancloud.cn/9723ea61ad6bbcdfeef206a6494e25b3_848x428.png) 最后,在机器人答编写一句“总结”: ![](https://box.kancloud.cn/152bb594164f0763c3dcf96834f631ab_680x254.png) 这里的“\n” 是换行符,不会在结果中显示,在硬件端使用各类字符时请谨慎,防止tts将字符读出。 整个流程的效果是这样的: ![](https://box.kancloud.cn/8f8f068beba814f68394ea8e2da1f0b9_512x410.png) ![](https://box.kancloud.cn/b9a88357cba1eddb987d613ba8751fd9_508x258.png) 最后一步收集完全部信息,JSON内容为: ![](https://box.kancloud.cn/65597b850bc3b3b73c18d693e7cacd82_513x438.png) 可以看到我们已经把报名者的全部信息记录下来了。 * * * * * Slotfilling:必须词条,他的作用在于针对一些特殊场景,我们需要拿到重要的信息才会将流程进行下去,我们勾选这个参数配置,则会按顺序执行,每个必须词条的默认周期是三。