上节课当中,我们已经定义好了操作缓存文件的方法,接下来就是找合适的位置,去调用对应的方法就可以了。

代码示例

1、添加uuid参数

上节课讲到,一次会话对应一个缓存文件,所以在查询的时候,都要带上一个标识,方便程序去找历史缓存信息。

内容不可见,请联系管理员开通权限。

2、缓存意图和实体

主要缓存问诊环节的,意图识别结果,和实体识别结果即可。

内容不可见,请联系管理员开通权限。

3、加载缓存内容,替换词槽

填充模板,就可以用缓存里面的数据,去填充模板了。

内容不可见,请联系管理员开通权限。

4、初始意图

最后一项,就是在初始意图判断里面,用户回复是或者不是,也要做对应的修改。用户回复是,就要承接上一次的意图和词槽,给用户返回查询结果,如果回复不是,说明之前的意图判断就错了,就把缓存删了,让用户重新描述问题。

需要注意的是,accept大体是查询流程,但略有差别,没有查到数据时,也要给确定的回复,不能让程序进入问诊流程。

内容不可见,请联系管理员开通权限。

5、调用示例

内容不可见,请联系管理员开通权限。

做到这里,这个项目的核心功能,就全部开发完了。当然,因为有两个深度学习的模型,肯定会有一些误判,比如说意图识别不准,或者是实体抽取的不对,这类问题都是难免的。解决方案,就是发现问题,就阶段性的回去调整语料,重新训练模型,项目肯定是需要持续迭代更新的。

好的,接下来最后一个部分,就是封装前后端,让用户可以通过网页,进行在线问诊。前端布局这块比较简单,准备复用电影知识问答的三节课,大家不要觉得奇怪。基础的布局知识学完之后,还是会回到这个项目当中,带大家收个尾。

本文链接:http://www.ichenhua.cn/edu/note/645

版权声明:本文为「陈华编程」原创课程讲义,请给与知识创作者起码的尊重,未经许可不得传播或转售!