5/29 今天开始把希悦查询功能完善上线,虽然很早就搞好了api的对接,但是要真正的实现客户的查询意图还是很麻烦。向云端上传了一些语料,完善了意图识别功能。识别了意图,再写queryClass和reportClass方法,把数据变成人话返回给用户,然后还需要一个数据表来对应source_id和希悦uid之间的关系,source_id可以理解为微信号的一个加密。建表的同时我还建了一个用户反馈的表,用来存储用户的反馈信息。为了对接SQL表,我又写了几个insert,view,del数据记录的方法。但是测试的时候出了问题,查了一下,发现数据表的主键是不能重复的,由于我是自学的mySQL,之前以为主键就是重要的键,后来删除了主键,就好了。
5/30 今天开始写自定事件处理,我管它叫SUB。说白了就是XiaoHu可以通过一些连问来获取信息,做出操作,当然操作的代码还是要在本地先写出来。作为晚上洗澡时拍脑袋想出来的东西,自定事件的亮点是在查询场景下扔去了死板的用户界面,使用语言交互来获取信息。现在用来实现希悦学号绑定,顺便还可以实现意见反馈。先写了SUB的唤醒trigger和每个事件的详细信息如id,name,steps(一共的总提问数)等, 然后记录当前有几个用户处在SUB状态下,在SUB状态下,任何信息除了“取消”都被视为对于XiaoHu提问的回应。写这种东西一般需要搞一个总体规划,当时我懒得想流程图,于是就写几个大块就停下来脑子里过过流程。然后就是大量的代码实现,由于处理SUB的函数的返回值实在多,我开始为函数的返回值写注释。之前我一直以为注释是写给别人的,其实注释也更能让自己读懂自己的代码。在写希悦用户绑定的时候出现了一些小插曲,原本我的设想是获取用户名和密码,用过selenium来模拟希悦登陆看是否成功,结果网站的加载速度太长,超过了微信后台对于公众号回复的最大时间限制,我又是优化又是设超时,结果发现加载出第一个表单页面就已经超时了,我只能先作出让步,取消了密码,反正现阶段查希悦课也没有什么隐私。下午放学后去南楼,接着修了一些bug,让SUB可以使用。我往讯飞平台上添加了自己的课表查询技能,不过讯飞AIUI好像还没有及时同步,在控制台上可以解析出json,在本地就不行。