Commit Graph
8 Commits
Author SHA1 Message Date
youpaishidifu ec06e48926 修复:KB同义词(权力→权利) + 微信"关闭"按钮过滤(NFKC标准化+行尾跳过) 2026-07-27 15:36:14 +08:00
youpaishidifu 8894124b0a fix(kb): section级搜索+意图排序+分词级匹配修复短查询与跨section排序
1. knowledge_base.py:
   - 文档按 ## 标题切分为独立 section 后索引,每个 section 独立 TF-IDF
   - 分词级匹配(避免"定义"子串匹配"自定义"的假阳性)
   - 文档级优先排序:先按文档聚合,取最高 section 分决定最佳文档
   - 定义类查询(版号/版本号/定义):自动降权无定义类 section 的文档
   - 动作类查询(怎么/如何/用法):按优先级找"参数/指令/使用"→"方法"→"安装" heading
   - 预计算 heading/body 分词集合,避免每次搜索重复 jieba
   - 修复 SYNONYMS 重复 key

2. auto_reply.py:
   - 精简答案提取:section 级搜索后 doc['content'] 即最相关片段
   - 移除冗余的 _extract_relevant_snippet(重复 jieba 分词+section 切分)

3. monitor.py:
   - 增加微信/QQ UI 噪声过滤(通讯录、发现、朋友圈等)
2026-07-27 14:17:51 +08:00
youpaishidifu 1441278082 fix(kb): 混合评分策略修复短查询匹配失败
TF-IDF 余弦相似度单独使用对短中文查询过于严格(3-5 个词 vs 数百个词的长文档)。
改为混合评分:0.4×TF-IDF + 0.6×关键词命中率,让短查询只要命中关键词就能返回结果。

同时降低 auto_reply_min_score 从 0.35→0.30,适配混合评分的数值范围。
2026-07-27 12:30:31 +08:00
youpaishidifu 7bdc7ad637 修复2问题: KB误匹配+返回全文 / Ctrl+C无法停止
1. KB匹配与返回全文
   - _poll中过滤纯时间/日期格式文本(OCR时间戳分割残留)->不入KB搜索
   - knowledge_base.py子串fallback要求query>=4字符,避免"19:15"等短时间戳误匹配
   - auto_reply._get_answer: 非Q&A文档只返回content前500字符,不返回整篇文件
   - 时间戳文本不进入KB + 短query不子串匹配 + 非Q&A截取 = 三层兜底

2. Ctrl+C无法停止
   - ThreadPoolExecutor创建非daemon线程->进程无法退出->必须杀CMD
     改用daemon thread + Event.wait(timeout): daemon线程不阻塞进程退出
   - main.py注册signal.signal(SIGINT) handler: 收到Ctrl+C后stop监控+quit窗口
   - 移除from concurrent.futures导入,替换为import signal
2026-07-26 15:30:55 +08:00
youpaishidifu e9d9551e3d 修复2个问题:退回裁剪+知识库只回复匹配句\n\n1. 裁剪退回c9acd7e版(cap_left=0.25)\n 0.35只截到时间戳,用户消息被切;0.25覆盖消息文字区域\n\n2. 知识库返回全文→只返回匹配问答段\n 原问题:名字.txt含2个Q&A,TF-IDF整文件匹配后返回全文\n 该方案:knowledge_base._parse_qa_segments解析文件为独立问答段\n 每段作为独立doc,auto_reply._get_answer优先返回doc.answer\n 用户问一句话,只回复对应答句,不塞全部内容 2026-07-26 13:38:04 +08:00
youpaishidifu cb170d1160 修复知识库短查询不匹配+QQ消息抓不到
问题1: 你叫啥名字→分词["你","叫","啥","名字"]
  → len(t)>=2过滤只剩["名字"]→len(tokens)<=1直接返回空
  修复: 放宽过滤 len(tokens)<=1→len(tokens)==0且len>=2
  添加子串匹配回退: TF-IDF无结果时检查查询是否包含在文档中

问题2: QQ消息抓不到
  _read_via_clipboard 加重试机制(首次空自动重试1次)
  _read_win32_texts 降低文本长度过滤 4→2 字
  QQ路径加 _click_message_area 确保焦点在消息区
2026-07-25 13:56:09 +08:00
youpaishidifu c8c2f2ccc6 fix: 1)微信QQ统一优先读消息列表(当前对话) 2)知识库min_score=0.30+短文本过滤 2026-07-24 22:39:09 +08:00
youpaishidifu bdfc24a4c7 init: 消息问答助手 — 微信/QQ监控 + 本地知识库搜索 + GUI 2026-07-24 19:36:14 +08:00