基于SmartQQ协议的QQ聊天机器人-7

本节的主题是:记录遇到的错误:

1. SQLite报错

  1. 很奇葩的错误:
    当时在main里面测试OK,但是把它封装成一个包,外部调用它,就报下面的错误:
SQL logic error or missing database no such table: t_answers

原因是:SQLite如果不是Main中执行,必须用绝对路径,不可以相对路径
参考:https://blog.csdn.net/friendan/article/details/52598395

2. 想到后期改善交互的一个方式:

  1. 目前的困境:小薇项目依托的SmartQQ组件本身只支持文字,图片、链接及其他任何带有交互性的方式

  2. 我想到一个比较好的交互方式:今天使用滴滴的提问工单模块,它会把问题分级分层次,等价于人工导引用户对“提问进行分级,打标签”,这就大大降低了“分词识别关键字的压力”。我后面机器人的设想如下:

    1. 用户发送一个问题
    2. QQ机器人识别出其中的关键字集合,返回一个提问模板:
        您想问是哪些问题?:A类、B类、C类 {三个链接}
    
    3. 用户点击一个A类的链接
    
    4. 机器人继续返回一堆提问的模板,您是想问A.1,A.2,A.3,等
    
    5. 用户继续交互。
    
    依次问答,就能逐步细化“问题的答案”,也能提高精确度。
    
  3. 警醒:后面真正接入QQ群,用户多了,一定有并发,就要考虑并发地为每个用户提供服务,防止相互间的干扰。

  4. 修改一个遗留问题:之前处理跑【QQ机器人死循环:自问自答引起的】的bug时,把小薇机器人的QQ号写死了,现在改成配置文件。见QQService.java下面的onQQGroupMessage这个函数。把s_botId的input改成从配置文件中读。

原文地址:https://www.cnblogs.com/LS1314/p/9042230.html