youpaishidifu fd147862c7 修复关键词打分器自拦截:时间比较排除刚插入的自身记录
根因:
should_skip_message 先 record_message_score 落库(时间=now),
再 _should_skip_by_time 按 message_hash 反查最后一条 → 命中的是
刚插入的自己 → db_time=now → '当前<=DB+5分' 永远拦截。
新消息首次出现即被拦,5分钟窗口永远走不完。

例:'那服务器有哪些基本信息,L ~' score=2(命中共用词'服务'/'务器')
时间比较命中自己 id=54(14:40:15) → 拦截,消息丢失。

修复:
record_message_score 返回 lastrowid,
_should_skip_by_time 增加 exclude_id 参数,查询排除自身。

验证:
- 新消息首次出现 → 放行(不再自拦截)
- 同文本5分内重现 → 拦截(去重仍生效)
- 同文本5分后重现 → 放行(时间超窗)
- 真实库下游测3/3 全部符合预期
2026-08-19 14:50:23 +08:00
@
2026-08-03 10:12:07 +08:00

消息问答助手 (Message Bot)

Windows 桌面工具,监控微信/QQ 新消息 → 在本地知识库中搜索答案。

功能

  • 消息监控:通过 Windows UI Automation 监听微信/QQ 聊天新消息
  • 本地知识库:支持 Markdown (.md) / 文本 (.txt) 文件,自动建索引
  • 智能问答:jieba 分词 + TF-IDF 余弦相似度搜索
  • GUI 控制:开关、知识库路径、平台选择、轮询间隔

快速开始

# 1. 安装依赖
pip install -r requirements.txt

# 2. 准备知识库
#    在某个文件夹放 .md / .txt 文件

# 3. 启动
python main.py

在 GUI 中选择知识库文件夹 → 开启监控 → 微信/QQ 收到新消息时自动搜索并展示答案。

技术栈

  • customtkinter — 现代化桌面 GUI
  • uiautomation — Windows UI 自动化(消息读取)
  • jieba — 中文分词
  • scikit-learn — TF-IDF 向量化 + 余弦相似度
S
Description
No description provided
Readme
75 MiB
Languages
Python 99%
Batchfile 0.6%
PowerShell 0.4%