本节的主题是:记录遇到的错误:
1. SQLite报错
- 很奇葩的错误:
当时在main里面测试OK,但是把它封装成一个包,外部调用它,就报下面的错误:
SQL logic error or missing database no such table: t_answers
原因是:SQLite如果不是Main中执行,必须用绝对路径,不可以相对路径
参考:https://blog.csdn.net/friendan/article/details/52598395
2. 想到后期改善交互的一个方式:
-
目前的困境:小薇项目依托的SmartQQ组件本身只支持文字,图片、链接及其他任何带有交互性的方式
-
我想到一个比较好的交互方式:今天使用滴滴的提问工单模块,它会把问题分级分层次,等价于人工导引用户对“提问进行分级,打标签”,这就大大降低了“分词识别关键字的压力”。我后面机器人的设想如下:
1. 用户发送一个问题 2. QQ机器人识别出其中的关键字集合,返回一个提问模板: 您想问是哪些问题?:A类、B类、C类 {三个链接} 3. 用户点击一个A类的链接 4. 机器人继续返回一堆提问的模板,您是想问A.1,A.2,A.3,等 5. 用户继续交互。 依次问答,就能逐步细化“问题的答案”,也能提高精确度。
-
警醒:后面真正接入QQ群,用户多了,一定有并发,就要考虑并发地为每个用户提供服务,防止相互间的干扰。
-
修改一个遗留问题:之前处理跑【QQ机器人死循环:自问自答引起的】的bug时,把小薇机器人的QQ号写死了,现在改成配置文件。见QQService.java下面的onQQGroupMessage这个函数。把s_botId的input改成从配置文件中读。