youpaishidifu
|
7e3b3141b4
|
修复 Task #1516:移除 stage 级 bot 菜单过滤器,避免误杀用户消息
|
2026-08-12 09:45:10 +08:00 |
|
youpaishidifu
|
9080a4db0c
|
fix: OCR捕获bot自身回复菜单触发重复查库(Task #1515)
_is_noise_text(stage级)+逐行过滤新增bot回复菜单模式检测:
- 版本标签:(稳定版)(最新开发版)(官方版)等
- checkbox标记:[√][⚠][✗]
- md链接格式:[text](url)
防止OCR把屏幕上的bot回复菜单重新识别为新消息触发KB搜索。
|
2026-08-11 22:07:15 +08:00 |
|
youpaishidifu
|
92568c249f
|
fix: OCR病句乱码检测——数字混杂中文间(如游0由)触发_is_noise_text拦截
Task #1514: 在_is_noise_text中新增规则,检测CJK+单个数字+CJK模式
(如'游0由去哪下载登陆插件啊'),排除合法组合(序号/数量/版本号等)。
|
2026-08-11 17:02:46 +08:00 |
|
youpaishidifu
|
0a7b330532
|
fix: 自动回复清理Markdown格式,防止返回MD格式内容
新增_clean_markdown函数,清理答案中的Markdown格式(标题、链接、列表、加粗等),
返回纯文本。修复KB搜索返回Markdown格式内容(如下载地址链接)的问题。
同步dist副本。
|
2026-08-11 16:27:52 +08:00 |
|
youpaishidifu
|
95d1514324
|
fix: 增强过滤器拦截纯@username消息触发查库回复
新增规则6:匹配中文前缀+@+用户名+空格+用户名的纯@提及消息,
排除含疑问词的消息(如请问、怎么等)。长度限制放宽至50字符。
修复单独@username消息(如'有人@拜 youpaishidifu')无实质内容
触发知识库搜索回复的问题。同步dist副本。
|
2026-08-11 15:23:35 +08:00 |
|
youpaishidifu
|
41e5ee83c8
|
恢复_is_markdown_document的@staticmethod装饰器,修复OCR处理链崩溃
|
2026-08-11 14:52:56 +08:00 |
|
youpaishidifu
|
80ebe8e642
|
新增 _strip_markdown_tail: md 尾巴切掉保留用户提问, md 大头整段丢弃; stage/逐行/入库前 4 处接入
|
2026-08-11 14:20:51 +08:00 |
|
youpaishidifu
|
1752c055e0
|
修复 _is_markdown_document 中 #\s*# 规则误用 re.search 导致 QQ 标签触发 md 文档丢弃
|
2026-08-11 13:17:14 +08:00 |
|
youpaishidifu
|
290daf2d9e
|
修复回复片段过滤器双阈值误杀:用户消息带昵称时被当bot旧回复跳过
- 11:14:39日志:'youpaishidifu关于我们,[潜水] BXZYAE'(用户youpaishidifu消息'关于我们'+群状态侧栏UI拼成一行)被'回复内容片段'丢弃,1 raw 0 filtered
- 根因:_process_ocr_output逐行过滤处的回复片段检测用size>=6无条件匹配,而stage级filter4已用'大部分才算'(lm>=15或lm>=8且>=60%)——历史回复含'youpaishidifu'(@提及旧回复)时与用户消息共享13字符公共子串(占比仅45%),filter4正确放行后被宽松阈值抓回
- 修复1:3648行逐行检测阈值对齐filter4标准(大部分才算)
- 修复2:问句豁免——短问句与bot旧回复共享长短语时(如'登录插件下载地址是啥啊'vs下载地址回复共享8字占80%)60%标准仍会误杀;line含疑问词且非任何replied的完全子串→视为用户提问放行。真回声(line整段≈bot回复)仍拦
- filter4同步加问句豁免,两处标准统一
- 验证7/7:本次bug放行、短问句变体放行、真回声整段/带@/回复前缀整段读出均拦
|
2026-08-11 11:33:27 +08:00 |
|
youpaishidifu
|
19da7e5fa5
|
放宽OCR时间戳提取:混合分隔符+独立6位裸数字,带合法性鉴权
- 混合分隔符(10;20.48):OCR把冒号读成不同符号,原正则要求同分隔符漏提最新时间戳,导致整批消息被'无新鲜时间戳'丢弃(10:21:54日志中10;14;21被提取但10;20.48丢失→454s超窗→连队列日志都没有)
- 独立6位裸数字(102048)也当HHMMSS时间戳:OCR无法保证格式但能保证读出数字,前后顾挡数字/字母/中文/下划线/分隔符/%,防版本号、日期、URL、小数串取段
- 鉴权:只收合法HH/MM/SS(hh<=23, mm<=59, ss<=59),235959上限;016060/240000/520131等非法直接扔——_is_timestamp_old对非法返回False会被误判'新鲜'整批放行
- filter1(_ocr_text_has_fresh_timestamp)与_line_has_fresh_ts两处同步放宽
- 防回归:abc0.50;57(URL残片带前缀)/版本3.2.1/3.141592/0.50;57带URL上下文仍正确拒绝
|
2026-08-11 11:04:08 +08:00 |
|
youpaishidifu
|
4173f28009
|
修复QQ UI过滤器误杀用户消息:')昵称 内容'带空格格式被当UI跳过
- _is_qq_ui_element规则4原正则^\)[\w\u4e00-\u9fff]{2,}\S有回溯bug:\S回溯吃掉username末尾字符,导致')youpaishidifu 关于我们'(用户youpaishidifu发的真实消息'关于我们',OCR把@/冒号误读为))整行被误判UI丢弃
- 规则4改为分步判断:)username后剩余为空或首字符非空白(粘连UI)→跳过;剩余首字符是空白→疑似用户消息放行
- 放行后剥离')昵称 '前缀(OCR误读的)会挡在_strip_qq_nickname裸昵称剥离前)
- 剥离的短文本('关于我们'4字)记入_ui_prefix_stripped,在短句碎片(≤8字无问词)检查处豁免——规则4放行贯穿到底,避免白修
- 验证:')C418minecraft'仍跳过(真UI),')youpaishidifu 关于我们'→'关于我们'到达消息流,'有人@拜'(UI提示)仍正确丢弃
|
2026-08-11 10:07:05 +08:00 |
|
youpaishidifu
|
b4b3da2633
|
修复OCR过滤器误杀:进程名检测撞上'服务器'子串
- 服务器近期公告有哪些?被误判为Windows进程名丢弃('服务'子串命中词表)
- 加负向前瞻(?!中文):命中词后紧跟中文字符视为普通文本,不丢弃
- 窗口标题带ASCII后缀(记事本.txt/文件资源管理器 - 此电脑)仍正常命中
- 命中日志升级为WARNING并爆出具体命中词和全文,不再装哑巴
|
2026-08-10 23:48:49 +08:00 |
|
youpaishidifu
|
dc40196ce9
|
修复知识库搜索垃圾回复:登录插件下载查询返回指令碎片
- 列表项切分保护从'全部短'放宽为'≥70%短',防止sdf1_login指令列表被切成单行碎片
- 新增match_heading字段:合并的短列表项文本参与heading匹配,恢复'注册账号'等查询的命中强度
- 下载意图查询(下载/下到/哪下/怎么下)跳过has_action重排与guide合并,修复'登录插件怎么下载'返回安装说明
- guide合并步骤统计只认###级子标题,防止##章节编号误判为教程步骤
- 下载加权/优先逻辑排除皮肤类heading,防止skin.md'下载皮肤文件'误放大
- gui.py新增DB查重,防止同一消息重复回复
|
2026-08-10 22:26:13 +08:00 |
|
youpaishidifu
|
9ab2da404f
|
修复bot多段回复与表格全文回调:强化相关性+表格只取上下文
- Fix A: auto_reply._get_answer 含表格正文不再返回整段section,改为
提取表格+紧邻上文(最多2行),丢弃表格后无关图文,截断到800字符
- Fix A: 清理答案中的HTML <br> 标签,避免原形显示
- Fix B: 强化 _has_content_relevance,要求查询与文档共享有区分度核心词
(去停用词),动作类查询额外要求正文命中,防牛头不对马嘴
- Fix B: gui._search_and_log 从 top_k 结果中选取首个通过相关性校验的文档
发送,不再永远取 results[0],保证一条消息只回复一段精准内容
|
2026-08-10 17:59:18 +08:00 |
|
youpaishidifu
|
18347a9f7d
|
修复OCR新旧消息同屏时新鲜消息被旧继承时间戳误杀(Task #1510)
三层修复:
1. 表情包碎片过滤器不再误杀纯时间戳行(15;35;38等双分号时间戳)
- 修复前:EasyOCR时间戳含两个分号被当碎片丢弃,新鲜时间戳丢失
- 修复后:纯时间戳行(\d{1,2}[:;.]\d{1,2}...)直接放行
2. _SENT_END补ASCII问号(?),问句行不再与下一行合并
- 修复前:'游戏专用PHP有哪两种登录模式?'以半角?结尾被合并
- 修复后:问句行独立,多条用户消息不会被,黏成一行
3. stage splitting新增_stage_fresh_hint前向peek
- QQ时间戳渲染在消息下方,消息行继承的是上一行(可能陈旧)时间戳
- 本行或下一行含新鲜时间戳(≤300s)时,继承时间戳较老不丢弃,交过滤器+DB查重
- 新增_line_has_fresh_ts辅助方法
|
2026-08-10 16:13:56 +08:00 |
|
youpaishidifu
|
efdbec381b
|
fix: QQ昵称剥离将正常消息吞空——污染昵称+@贪婪匹配+前导垃圾吞问号
Task #1508: 消息'@游戏专用PHP有哪两种登录模式?'被_strip_qq_nickname剥离成空串,
空消息被当作消息进expanded查库。
三层根因:
1. 自动入库逻辑把'@游戏专用PHP有哪两种登录模式'整段(昵称+正文贪婪匹配)写进
config.json qq_nicknames, 污染昵称后续先命中, 正确正文被当昵称剥掉
2. _leading_junk前导垃圾字符类含!!??, 剥离残留的'?'被吞掉→消息变空
3. 调用点无空消息守卫, 空串照样expanded.append
修复:
1. 自动入库前校验: 匹配后紧贴正文(rest非分隔符开头)或长度>12的不入库
2. _leading_junk不再吞句末标点!!??, 只清空格/逗号/句号/冒号/分号
3. _strip_qq_nickname剥离后为空回退原文(防御兜底)
4. 两处调用点加if msg守卫, 空串不进查库/回复
|
2026-08-10 14:40:29 +08:00 |
|
youpaishidifu
|
f298944cf6
|
修复URL残片(0.50;57)被误转时间戳0:50:57导致真实消息被过滤
QQ群聊转发消息的链接残片被EasyOCR读成0.50;57,旧宽松正则
(\d{1,2})[.;](\d{2})(?:[.;](\d{2}))? 将其转为假时间戳0:50:57,
被过滤1与stage继承判为凌晨旧消息(>300s),连带丢弃相邻的真实新
消息(如'登录插件。在哪儿可以下载? @游戏专用',实际时间12:13:54)。
修复: 时间戳转换正则增加双重保护:
1. 同分隔符要求 (?:\2(\d{2})) 反向引用,混合分隔符不转换
2. 前后URL字符边界 (?<![;.0-9A-Za-z%]) 与 (?![;.0-9A-Za-z%]),
防止嵌在URL/文件名中的数字段被转换
两处应用: stage splitting(3164)与过滤器1(4669)
|
2026-08-10 13:09:06 +08:00 |
|
youpaishidifu
|
daa575931c
|
fix: _log_queue在OCR管理器之前初始化
线程Thread-1启动时_log_queue尚未创建导致AttributeError
|
2026-08-10 11:20:10 +08:00 |
|
youpaishidifu
|
df42eb361b
|
修复OCR引擎GPU/CPU选择逻辑:复用monitor.py内存检查
- 新增_check_memory_for_gpu():检查CUDA可用性+物理内存+页面文件+提交量
- 可用<2GB/page>95%/commit>95% → CPU兜底
- GPU初始化失败自动降级CPU重试
- get_status()新增gpu_mode字段
|
2026-08-10 11:10:53 +08:00 |
|
youpaishidifu
|
90d6fb6ed4
|
重构OCR引擎管理器:双引擎并发+1分钟超时释放
1. 新增OCREngineManager类:
- 预初始化EasyOCR(GPU=False) + Windows OCR两套引擎
- 双引擎并发识别,取得分最高者结果
- 1分钟超时自动释放内存(消息监控运行中不释放)
- 支持监控激活时重置计时器
2. 修复截屏API:
- GetSystemMetrics改用ctypes.windll.user32,兼容性更好
3. GUI集成:
- 启动时后台预初始化OCR引擎
- 监控开关时通知OCR管理器激活/停止状态
- 移除旧_win_ocr方法(已由管理器统一处理)
|
2026-08-10 10:59:40 +08:00 |
|
youpaishidifu
|
16c6986bca
|
新增截图OCR识别昵称功能
- GUI新增「从截图识别」按钮
- 截屏后用EasyOCR识别文字(GPU=False)
- 提取QQ昵称模式:[头衔]用户名、@用户名、行首用户名
- 自动去重并入库config.json的qq_nicknames
- Windows OCR作为后备方案
|
2026-08-10 10:34:12 +08:00 |
|
youpaishidifu
|
d8734021bb
|
强化QQ昵称剥离+群聊消息拆分+KB搜索去噪+GUI昵称管理
1. 群聊多消息拆分:_strip_qq_nickname新增中间段分割逻辑
- 找到最后一个[头衔]用户名或裸昵称分隔符,截取最新消息
- 解决群聊多条消息打包导致关键词被压住的问题
2. KB搜索去噪:gui.py新增_clean_query_for_kb
- 移除用户名/头衔/@提及/时间戳等噪音
- _search_and_log调用前自动清理查询文本
3. GUI昵称管理:
- 昵称列表展示+手动输入添加
- 删除选中昵称功能
- @提及新用户自动入库(monitor.py)
|
2026-08-10 10:21:03 +08:00 |
|
youpaishidifu
|
a11741fa69
|
fix: 忽略OCR末尾不完整括号噪声,避免误判为括号不匹配
|
2026-08-10 00:56:18 +08:00 |
|
youpaishidifu
|
88d0db1aec
|
修复重复回复查重逻辑:添加5分钟时间窗口过滤;修复表情包误判markdown内容(调整检测顺序)
|
2026-08-10 00:39:02 +08:00 |
|
youpaishidifu
|
8de03180ee
|
fix: 表格内容动态截断长度,多退少补
表格内容不再固定截断到1000字符,而是动态计算实际长度:
- 表格长度≤4000字符:不截断,保留完整表格
- 表格长度>4000字符:截断到4000字符(QQ单条约4500字符限制)
- 普通文本保持300字符截断
解决长表格回复截断问题,同时避免base64等长字符超出限制
|
2026-08-09 22:26:02 +08:00 |
|
youpaishidifu
|
438ba08365
|
fix: 修复历史消息二次处理和回复截断问题
1. 历史消息二次处理 (Task #1490):
- 启动时从消息历史数据库加载最近50条bot回复到_replied_texts
- 降低查库过滤器重合率阈值0.9→0.7
- 防止重启后旧回复被OCR重新识别处理
2. 回复截断 (Task #1491):
- 表格内容截断长度300→1000字符
- 普通文本保持300字符
- 避免长表格回复被截断
|
2026-08-09 22:20:27 +08:00 |
|
youpaishidifu
|
59d0bb8a87
|
fix: knowledge_base.py 核心名词匹配使用未定义变量 full_text → full_text_check
- NameError: name 'full_text' is not defined at line 581
- 修复: 改为 full_text_check (heading_clean + body)
|
2026-08-09 21:16:00 +08:00 |
|
youpaishidifu
|
a3cc61bd7d
|
feat: 添加调试日志追踪KB匹配和OCR连续性问题
- gui.py: _search_and_log() 添加KB搜索输入/结果/相关性检查详细日志
- monitor.py: _has_user_colors() 添加像素检测初始化/统计/绿色检测日志
- monitor.py: QQ OCR路径添加截图信息日志
- 目的: 诊断牛头不对马嘴和连续消息OCR中断问题
|
2026-08-09 21:11:52 +08:00 |
|
youpaishidifu
|
417568f6fa
|
优化QQ像素检测:降低白色像素阈值(245→230)、增加采样密度(15→30)、放宽邻域要求;添加昵称剥离调试日志
|
2026-08-09 18:38:45 +08:00 |
|
youpaishidifu
|
1ea458dd51
|
fix: 放宽QQ像素检测阈值,修复群聊纯文本消息无法被捕捉的问题
|
2026-08-09 17:53:02 +08:00 |
|
youpaishidifu
|
3473913299
|
修复[监控]:昵称剥离主循环重构,彻底解决@提及残留
- 问题:草原探险服务器备用号被剥后,@游戏专用残留在消息开头,导致查库关键词被压住
- 根因:原设计@检测只在昵称循环前执行一次,昵称循环剥离前缀后暴露的@无法被二次检测
- 修复:重构为主循环结构,每轮按优先级检查(箭头→头衔→排名标记→@提及→裸昵称),
每轮开头清理前导标点,确保@检查在任何昵称剥离后仍能触发
- 新增:_rank_pattern剥离QQ排名标记(旅馆老板);未知@user按格式剥离
- 测试:13个用例全部通过,覆盖嵌套昵称+@+头衔+排名标记组合
|
2026-08-09 17:41:12 +08:00 |
|
youpaishidifu
|
cdfa44ae07
|
修复[监控]:增强QQ昵称剥离和UI元素识别
- 问题:用户消息被回复不相关内容,昵称剥离未处理@提及格式
- 根因:_strip_qq_nickname函数未处理@前缀,_is_qq_ui_element仅匹配格式
- 修复:1. _strip_qq_nickname新增@提及处理逻辑,剥离@昵称部分;2. _is_qq_ui_element新增独立@username行识别
- 测试:验证@游戏专用在哪儿能下载登录插件?正确剥离为在哪儿能下载登录插件?
|
2026-08-09 16:58:30 +08:00 |
|
youpaishidifu
|
3cd760699d
|
feat: QQ昵称剥离功能增强,支持【头衔】用户名格式
- 新增QQ群头衔+用户名格式剥离:【头衔】用户名 或 [头衔] 用户名
- 处理OCR将【识别为[、】识别为]的情况
- 保持原有纯文本昵称剥离功能
- 测试用例全部通过
|
2026-08-09 16:34:54 +08:00 |
|
youpaishidifu
|
eef12a2694
|
修复QQ系统消息时间戳污染问题
1. 添加QQ系统消息过滤规则:邀请加入、退出、撤回等
2. 时间戳分割时跳过系统消息,防止旧时间戳继承到后续真实消息
3. QQ系统消息不更新继承时间戳,防止旧时间戳污染
|
2026-08-09 16:05:45 +08:00 |
|
youpaishidifu
|
9682ba4112
|
fix: 修复bot回复一次后不再回复——filter4误杀混合消息
- 新增_strip_bot_reply_fragments:在_process_ocr_output的filter4(回复残片)判定前,
先剥离OCR拼接到一起的bot旧回复片段,保留用户真实提问(OCR噪声鲁棒:归一化标点/空格)
- 修复根因:bot回复后,后续截图把'用户新消息+bot旧回复'拼成一行,filter4检测到bot旧
回复文本即把整段(含用户新消息)误判为残片丢弃,导致bot永远不再回复
- _is_reply_fragment改分数阈值:原Latin>=6/CJK>=5过于敏感,用户昵称含'Minecraft'或
问句含服务器名'草原探险服务器'即被误杀;改为需公共子串>=15或(>=8且占较短文本>=60%),
仅当文本'大部分'是bot回复时才判为残片,保留正常用户问句
- 同步修复_group聊天慢于私聊:消息不再被误杀→不再陷入同帧反复OCR死循环,回复延迟回归15~20s
|
2026-08-09 14:20:36 +08:00 |
|
youpaishidifu
|
9c16d6da0d
|
fix: 像素检测失败不再设_ocr_unchanged,防止消息永久不入库
- QQ/微信像素检测失败时移除 _ocr_unchanged=True
- 像素检测失败≠截图没变化,不应阻止fallback路径
- 修复bot回复后用户新消息永远无法入库的问题
|
2026-08-09 12:29:52 +08:00 |
|
youpaishidifu
|
1b899b9219
|
Task #1476: QQ群聊非消息文本过滤 - 图片引用剥离/表情包碎片检测/UI元素跳过
行切割阶段增加3层过滤:
1. 行内图片引用清理: !0(img/xxx.png) 剥离后保留用户消息
2. 表情包文字碎片: CJK<=6且分隔符>=2判定为贴纸OCR残留
3. QQ UI元素跳过: 【头衔】Username / ## @标签 / )username / 纯图片后缀
新增_is_qq_ui_element()静态方法检测5种QQ特有非消息模式。
|
2026-08-09 10:58:54 +08:00 |
|
youpaishidifu
|
cf59ff4c4d
|
fix: md行跳过改为单行模式,移除块延续避免误杀用户消息
|
2026-08-09 01:50:13 +08:00 |
|
youpaishidifu
|
d54fbe493f
|
fix: 群聊消息被混合乱码检测器误杀导致不回复
|
2026-08-09 01:21:40 +08:00 |
|
youpaishidifu
|
17f071471f
|
修复EasyOCR超时和内存泄漏问题
|
2026-08-09 01:07:23 +08:00 |
|
youpaishidifu
|
87c78dd1e0
|
fix: OCR文本尾巴垃圾清理,句子结束标点后截断未闭合括号/逗号+短碎片
|
2026-08-09 00:47:18 +08:00 |
|
youpaishidifu
|
a40be1eccb
|
fix: 两个消息过滤问题修复
1. 添加QQ的'正在加载页面,请稍后'到UI黑名单
2. 无时间戳消息统一放行交给DB查重处理
- 避免连续聊天时时间戳被覆盖误杀用户消息
- 无论消息长短,只要包含中文字符且非噪声,都放行
- DB查重会自动过滤掉已经回复过的消息
|
2026-08-09 00:23:58 +08:00 |
|
youpaishidifu
|
d793d1c992
|
fix: 增强噪声压制 - 检测混合文字乱码(Latin+CJK交错)
- 在_is_noise_text中新增混合文字乱码检测
- 检测Latin大写字母被CJK分割成多个不连续块的模式
- 如'HHWH尸端自哪内柙登录槟J!'这类OCR垃圾现在会被过滤
- 修复unicode_radicals.md末尾格式错误(缺少补充字符列)
- 从git追踪中移除easyocr_worker_state.json(运行时状态文件)
|
2026-08-08 22:50:05 +08:00 |
|
youpaishidifu
|
09ea05fc79
|
fix: EasyOCR启动异常+超时保护+消息搅和隔离
1. 修复负冷却时间bug:启动失败时若未设置冷却,现在设置30s冷却
2. EasyOCR worker添加超时保护:readtext()使用concurrent.futures包装,30s超时
3. Windows OCR消息搅和隔离:EasyOCR超时+Windows OCR多时间戳→返回空结果
4. 添加easyocr_worker_state.json到.gitignore
|
2026-08-08 22:14:02 +08:00 |
|
youpaishidifu
|
c300a1fd18
|
chore: 添加easyocr_worker_state.json到.gitignore
- 状态文件不应提交到仓库
- 避免每次运行时的无意义提交
|
2026-08-08 20:46:11 +08:00 |
|
youpaishidifu
|
2ac422235b
|
security: 增强代码签名脚本安全选项
- 添加签名描述:WindowMsgBot
- 添加签名URL:https://github.com/ypshidifu/windowmsgbot
- 添加详细输出选项(/v)
- 使用更安全的签名选项
|
2026-08-08 20:45:42 +08:00 |
|
youpaishidifu
|
86edb4577d
|
security: 延长自签名证书有效期至10年,添加完整证书信息
- 证书有效期从5年延长至10年
- 添加完整证书信息:组织、部门、邮箱
- 增加证书可信度
|
2026-08-08 20:45:05 +08:00 |
|
youpaishidifu
|
e88a2ec49c
|
fix: 加强用户协议内容过滤和停止信号优先级
- 修复_is_noise_text函数:改用re.search替代re.match,新增_AGREEMENT_KEYWORDS多关键词检测
- 短文本(<80字)中匹配>=2个协议特征词才拦截,提高准确率
- 加强停止信号优先级:在OCR处理各阶段添加_running检查点
- 预分割后、stage splitting循环内、逐行过滤前均检查_running
- OCR返回后立即检查_running,确保急停/手动停止响应时间≤单行处理时间
|
2026-08-08 20:44:30 +08:00 |
|
youpaishidifu
|
cbc4a9266a
|
fix: 知识库搜索返回不相干结果
1. DOC_TOPIC_TOKENS添加php映射,修复'PHP登录模式'查询不匹配php.md
2. parent-child逻辑增加条件2:parent body是表格+任何child heading含查询词
3. heading token计算改用heading_no_links,防止链接文字误匹配
4. 查询含'登录插件'时,protect文档降权从0.5改为0.2
5. 新增php登录模式查询boost:php文档section额外x10加分
6. 新增下载意图优先:查询含'下载'时优先返回heading含下载的section
|
2026-08-08 18:30:02 +08:00 |
|
youpaishidifu
|
bc59f0f5ab
|
@
fix: 牛头不对马嘴 + 时间戳过滤强化
问题1 - 牛头不对马嘴:
OCR截屏同时捕获聊天窗口+用户协议文档,协议中的正式法律用语
("玩家应尊重他人的合法权益")被误当成用户消息触发自动回复。
修复: _is_noise_text新增用户协议/服务条款文档内容检测:
- "玩家/用户 应/必须/须/不得 + 尊重/遵守/履行..."
- "运营方/服务提供方 + 有权/有义务/保留"
- "本协议/条款/规定"开头
- 同时含"权利"+"义务"的陈述句(排除疑问句)
问题2 - 时间戳过滤强化:
10:59的消息在12:22仍被处理。非过去日期路径所有时间戳>300s时
仍返回True("放行给DB去重"),导致历史消息重新处理。
修复: _ocr_text_has_fresh_timestamp非过去日期路径改为严格5分钟窗口:
所有时间戳>300s → return False(丢弃),不再放行给DB去重。
@
|
2026-08-08 12:33:41 +08:00 |
|
youpaishidifu
|
2a2161820f
|
修复启动卡顿:线程分批启动避免GIL竞争+病句过滤增强
|
2026-08-08 10:33:48 +08:00 |
|
youpaishidifu
|
7fc737d80f
|
fix: #1448 相关性短查询放行 + #1449 严格300s报废
#1448 auto_reply: _has_content_relevance() 不再对≤2token短查询无条件放行
- 短查询必须整个query作为子串出现在文档中才放行
- 修复下载→前置依赖误匹配(无任何共同token/token交集)
#1449 monitor: 严格300s报废策略
- stage splitting: 继承时间戳>300s一律丢弃,移除新鲜内容/提问豁免
- 区块级: 硬截止从1800s→300s,移除CJK内容/新鲜特征bypass
- 修复16:07消息在21:08仍被处理的问题
|
2026-08-07 22:42:14 +08:00 |
|
youpaishidifu
|
5c4a17043a
|
fix: 修复两个OCR问题
1. 修复_clean_ocr_prefix误删登录关键词导致答非所问
- 噪声前缀后必须跟标点/空格或字符串结束,不能紧跟中文字符
- 登录插件,哪里可以下载到?不再被清理为插件,哪里可以下载到?
2. 修复EasyOCR静默原生崩溃检测
- 父进程:空stderr+空crash log也计入CUDA崩溃计数,2次后强制CPU
- Worker:添加CUDA驱动DLL预检,加载失败时强制CPU模式
|
2026-08-07 14:50:29 +08:00 |
|
youpaishidifu
|
5627a2b88a
|
修复三个OCR过滤问题:
1. Task #1440: 时间戳过滤器加强到5分钟窗口
- 继承时间戳超过5分钟(300s)的消息直接丢弃
- 修复:12:09的消息能通过13:49的过滤器(差100分钟)
2. Task #1441: bot自身消息查库过滤
- 新增get_recent_bot_replies方法查询数据库
- 检查OCR读到的内容与数据库中bot回复重合率≥90%则丢弃
- 修复:bot回复的消息被OCR读到后直接回复用户的问题
3. Task #1442: 数据库时间戳混乱修复
- 修改record_bot_reply和record_user_message使用本地时间
- SQLite的CURRENT_TIMESTAMP返回UTC时间导致时间戳混乱
- 修复:部分消息created_at在凌晨但实际测试不在凌晨
同时包含Task #1436的链接文本清理修复
|
2026-08-07 14:09:29 +08:00 |
|
youpaishidifu
|
ad091561fe
|
修复3个OCR过滤问题:
1. 时间戳过滤误判:昨天前缀剥离后裸时间戳被当未来时间拦截,添加skip_future_check传递
2. 纯时间戳触发查库:_on_new_message入口检查中文字符,无中文跳过查库
3. 偏旁库补全:添加U+4E28(丨),启用U+4E3F(丿)过滤
|
2026-08-07 12:43:36 +08:00 |
|
youpaishidifu
|
4635e2c366
|
修复OCR混合消息导致知识库答非所问:新增反向包含剥离逻辑
问题:OCR截屏把用户新消息和bot旧回复拼成一行,如
登录插件在哪下载?,从未注册过草原,使用全新的邮箱
原剥离逻辑(r in ts)因OCR截断导致精确子串匹配失效,
混合文本传入知识库搜索匹配到invite.md的新用户定义而非正确文档。
修复:在poll过滤阶段新增反向包含剥离——将消息按逗号分段,
检查每段是否为已知bot回复(r)的子串,剥离匹配的bot片段,
保留用户真正提问部分。支持中文逗号和ASCII逗号分隔。
|
2026-08-07 11:26:39 +08:00 |
|
youpaishidifu
|
87c0bd9f62
|
fix: 修复时间戳提问豁免无上限+知识库链接文字误匹配
Bug1: 提问豁免(_is_question_message)让继承极老时间戳的消息绕过过滤,
如22:07的消息在次日10:43仍通过stage splitting放行。
修复:给提问豁免加24h硬上限,继承时间戳>24h不再豁免。
Bug2: protect.md heading含[sdf1_login登录插件](...)链接,
heading_no_link_text保留链接文字,导致phrase_in_text匹配触发5x加分。
修复:新增full_text_phrase(移除整个链接含文字),
所有短语匹配改为用full_text_phrase,链接文字不再参与评分。
|
2026-08-07 10:54:47 +08:00 |
|
youpaishidifu
|
9944d74798
|
fix(easyocr): 顶层崩溃全程留痕,消除"一声不吭"结束进程
- easyocr_worker.py: 新增 worker 状态文件 easyocr_worker_state.json
(pid/mode/status/last_img_len/ts/error),就绪/忙碌/空闲实时落盘;
强化 sys.excepthook / _flush_exit / _signal_handler 崩溃写状态+crash.log
- monitor.py: _kill_easyocr_proc 杀前诊断三路
(状态文件 + 残留stderr + crash.log尾),以 warning 汇总进主日志;
_read_easyocr_crash_tail 新增 ignore_age 跳过60s时间窗用于诊断路径
- unicode_radicals.md: 丿(U+4E3F)行改 - 不参与偏旁过滤,修复OCR碎片误杀儿下载等
|
2026-08-06 22:55:29 +08:00 |
|
youpaishidifu
|
3df59c53ad
|
修复时间戳过期过滤器和hash跳过逻辑
1. 时间戳过期过滤器:移除无条件放行逻辑,时间戳过期超过600s的消息必须丢弃
- 原逻辑:只要块内有中文消息内容就放行,导致过期消息仍被批准
- 新逻辑:时间戳过期超过600s且无新鲜特征的消息直接丢弃
2. hash跳过逻辑:消息必须已被回复才能跳过
- 原逻辑:只要上一帧已入队就跳过,导致消息从未处理过但hash相同时被静默跳过
- 新逻辑:必须确认消息已被回复(_last_hash_replied),才能跳过
- 新增_last_hash_replied标志跟踪消息是否已被回复
|
2026-08-06 21:19:35 +08:00 |
|
youpaishidifu
|
1c16970871
|
修复知识库搜索答非所问:heading链接文本误触发短语匹配
- 问题:查询"登录插件在哪儿下载?"返回protect文档的"操作方式|是否支持"表格
- 根因:heading_clean保留链接文本(如[sdf1_login登录插件]),导致phrase_in_text误判为True,避免惩罚
- 修复:phrase_in_text检查改用full_text_clean(排除链接文本),确保精确短语匹配准确
- 效果:protect文档因链接文本误匹配的惩罚避免被纠正,sdf1_login文档应优先返回
|
2026-08-06 20:48:16 +08:00 |
|
youpaishidifu
|
ef422ef776
|
修复急停冻结/消息hash跳过/正常调度冷却误触三处问题
1. 急停冻结: gui.py 将 monitor.stop() 移到后台线程执行,避免 terminate+wait 阻塞 GUI 主线程 6~8s 触发 Windows 冻结弹窗;窗口关闭同样后台 stop。
2. 消息丢失: 仅当上一帧 OCR 已成功入队才允许相同 hash 帧跳过;新增 _is_question_message 提问豁免,使继承极老时间戳的明确提问(如'资源包是强制的,还是可选的?')不再被误判为远古历史永久丢弃。
3. 正常调度冷却: 正常资源释放(每N次调用杀进程)清除残留 30s 冷却并重置失败计数器;正常重启握手阶段的初始化超时/崩溃/协议/握手错误不再施加 30s 冷静期,交由系统自行调度启停。
|
2026-08-06 20:32:50 +08:00 |
|
youpaishidifu
|
59505fdafd
|
修复知识库搜索两个bug:
1. 否定式查询惩罚: 查询'是否X'时不含核心名词section×0.3,在reranking后执行
2. 子串回退: token交集失败时用2-6字子串匹配(解决jieba碎片token问题)
|
2026-08-06 18:59:36 +08:00 |
|
youpaishidifu
|
f84ea56311
|
修复知识库搜索粒度:parent section是表格时优先返回child sections
- 添加_build_parent_child_map方法构建section层级关系
- 当parent section有heading命中但body是表格时,优先返回child sections
- 最终结果按分数排序确保最高分排第一
- 修复'安装说明'查询返回插件表格而非下载链接的问题
|
2026-08-06 17:17:20 +08:00 |
|
youpaishidifu
|
1291a402de
|
修复三个问题:消息搅和打包、QQ系统消息过滤、OCR噪声残片过滤
1. 消息搅和打包修复(#1414):
- 将'同poll多条取最后'逻辑改为遍历处理所有消息
- 每条消息独立处理,不再丢弃旧消息
- 基线轮只处理一次,后续消息正常处理
2. QQ系统消息残片过滤(#1415):
- 添加'你撤回了, 条消息'模式匹配
- 添加'撤回了一条消息'模式匹配
- 在_is_system_message函数中实现
3. OCR噪声残片过滤:
- 添加'留, C'等逗号+字母组合噪声模式
- 添加纯逗号+字母噪声模式
- 在_is_noise_text函数中实现
|
2026-08-06 16:56:28 +08:00 |
|
youpaishidifu
|
4c044c6e7c
|
fix: 时间戳过滤器1漏消息——疑问句特征正则过严
_looks_fresh_content 原正则 (疑问词)\s*[??] 只匹配空白不匹配汉字,
导致'如何配置的?'/'在哪可以下载?'等正常疑问句(疑问词与问号间隔文字)匹配失败,
整块OCR文本被静默丢弃('登录插件在哪可以下载?'丢失)。
修复:
1. _looks_fresh_content 改为允许疑问词与问号间 ≤30 字非句末标点(同句内)
2. 最新时间戳≤600s 分支增加 _block_has_cjk_message 兜底放行,与硬截止分支一致
经诊断脚本复现确认:修复前返回False(丢弃),修复后返回True(放行)
|
2026-08-06 16:34:24 +08:00 |
|
youpaishidifu
|
41436cbe27
|
fix: 进程名正则空备选项导致所有文本被误杀
墨刀|) → 墨刀),去掉多余的|形成空备选项
此前^(?:...|墨刀|)匹配所有文本(空字符串开头=任何文本)
|
2026-08-06 16:12:00 +08:00 |
|
youpaishidifu
|
1169487dda
|
fix: EasyOCR崩溃日志残留+锁竞争误杀
1. 新增_truncate_easyocr_crash_log():worker成功启动后截断崩溃日志,清除旧条目防止混淆用户
2. 锁竞争超时(15s)不再计入consecutive_failures:worker在忙处理大图是正常行为,不触发杀进程
3. 锁超时仅重置call_count防止'正常释放'误触发
|
2026-08-06 16:02:33 +08:00 |
|
youpaishidifu
|
88593898be
|
强化EasyOCR超时计数:锁竞争超时/内层超时/外层超时/BrokenPipe均计入consecutive_failures+重置call_count,防'3次超时却正常释放'误触发
|
2026-08-06 14:28:33 +08:00 |
|
youpaishidifu
|
37ce6a0916
|
修复消息静默丢失+微信唤醒不稳定:_is_noise_text进程名正则缺失闭合括号导致异常返回空列表(QQ/微信均受影响);_ensure_foreground增加keybd_event骗取前台权限+SetWindowPos强置顶兜底
|
2026-08-06 10:43:21 +08:00 |
|
youpaishidifu
|
8575b5141b
|
修复语法错误:内存检查逻辑移回try块内,修复空行缩进问题
|
2026-08-06 10:03:50 +08:00 |
|
youpaishidifu
|
4ef261bfe7
|
修复语法错误:内存检查逻辑移回try块内
|
2026-08-06 09:54:15 +08:00 |
|
youpaishidifu
|
53175f57eb
|
修复EasyOCR三个问题:正常调度误判、内存检测误判、消息hash漏消息
|
2026-08-05 23:20:00 +08:00 |
|
youpaishidifu
|
4418a46460
|
修复三个问题:时间戳过滤放宽、系统进程名过滤、EasyOCR CUDA崩溃修复
1. 放宽时间戳过滤:窗口30s→60s,消息长度4字→20字,包含中文即放行
2. 添加系统进程名过滤:200+个Windows/第三方进程名模式,防止混入OCR文本
3. EasyOCR崩溃修复:检测内存不足时设置CUDA_VISIBLE_DEVICES=''禁用CUDA,避免import torch加载CUDA库导致崩溃
|
2026-08-05 21:57:53 +08:00 |
|
youpaishidifu
|
f50eeb28da
|
fix: 消除 sklearn TfidfVectorizer token_pattern 警告
|
2026-08-05 21:23:22 +08:00 |
|
youpaishidifu
|
5d9214526b
|
fix: Bug F 修复回复混合和缺失步骤问题
- 修改guide query合并逻辑,按parent guide分组sections
- 根据查询关键词选择最相关的guide(url/图床→非正版guide,正版/官网→正版guide)
- 避免混合不同guide的内容,确保第一步不被遗漏
- 测试验证:url查询返回URL操作方式,官网查询返回正版玩家操作方式
|
2026-08-05 20:14:23 +08:00 |
|
youpaishidifu
|
fd5d2ee73a
|
修复内存泄漏和回复截断问题
1. 内存泄漏修复(Bug D):
- 在 easyocr_worker.py 中添加 GPU 清理函数和信号处理器
- 在 monitor.py 中创建 _kill_easyocr_proc() 辅助方法
- 使用 terminate→wait→kill→gc.collect() 安全终止序列替换所有直接 kill()
- 确保 CUDA 上下文在子进程退出时正确清理
2. 回复截断修复(Bug E):
- 在 knowledge_base.py 的 search() 方法中检测指南类查询
- 对于步骤类查询(如何/怎么/教程等),合并同一文档的所有步骤 section
- 确保用户获得完整的操作指南而非单个步骤
|
2026-08-05 17:56:07 +08:00 |
|
youpaishidifu
|
5b20037052
|
fix: 修复提交量阈值过严导致CUDA误拒绝(Bug C)
- 提交量检查从绝对阈值(物理内存×1.5)改为百分比阈值(提交量/总量>90%)
- 页面文件百分比阈值从85%提高到95%
- 解决系统有大页面文件时提交量被误判为过高的问题
|
2026-08-05 15:49:17 +08:00 |
|
youpaishidifu
|
4aeb03d869
|
fix: 内存误判(psutil→GlobalMemoryStatusEx) + 时间戳硬截止(>30min丢弃)
- easyocr_worker.py: 删除psutil物理内存检查,统一使用GlobalMemoryStatusEx
(Windows上psutil可比Task Manager少报~1.7GB,导致4.2GB可用误判为2.5GB)
- monitor.py: _ocr_text_has_fresh_timestamp()加硬截止——最新时间戳>1800s(30min)
无论是否含CJK均丢弃,修复15:09看到13:34消息(90min前)被误回复
- 新增_timestamp_age_seconds()辅助方法
|
2026-08-05 15:25:33 +08:00 |
|
youpaishidifu
|
d8c0e62a2d
|
修复跨平台答案混用: 表格优先策略必须检查heading语义相关性
- 表格优先策略: 不再盲目优先含'操作'的表格, 只优先heading与查询有交集的表格
- 表格兜底策略: 同上, 只兜底与查询语义相关的操作/支持表格
- 表格内容奖励: 同上, 3.0x加权只给与查询相关的表格
- 根因: '操作方式'表(交互模式)含'操作'被盲目优先, 覆盖了'权限级别'表
- 测试: '权限级别'→权限级别表格(20.51), '操作方式'→操作方式表格(49.54)
|
2026-08-05 15:01:00 +08:00 |
|
youpaishidifu
|
49a95fb808
|
修复commit charge阈值判断和OCR乱码字符检测
|
2026-08-05 14:47:44 +08:00 |
|
youpaishidifu
|
cd2e1f5e36
|
fix: .gitignore 补全无下划线前缀的调试/测试脚本规则 - 曾有 debug_kb.py/test_kb.py 因命名绕过 _debug_*/_test_* 规则待被误入库
|
2026-08-05 14:30:50 +08:00 |
|
youpaishidifu
|
a181c18c79
|
移除不应入库的文件:数据库、调试脚本、测试脚本;更新.gitignore
|
2026-08-05 13:36:57 +08:00 |
|
youpaishidifu
|
4d7017be6a
|
修复知识库搜索:表格内容不再被切分,表格section优先返回
- knowledge_base.py: _split_body_by_list_items检测表格区域,不切分表格行
- knowledge_base.py: 添加独立表格section,确保表格内容可被搜索匹配
- knowledge_base.py: 表格兜底策略:最佳文档含操作/支持表格时强制加入并置顶
- knowledge_base.py: reranking后无条件优先返回含操作/支持的表格section
- .gitignore: 添加msg_history.db和诊断脚本到忽略列表
|
2026-08-05 13:22:27 +08:00 |
|
youpaishidifu
|
271ea21489
|
fix: 偏旁过滤失效 - Unicode列改为真实码点+常用字同形写-防误杀 (windowmsgbot)
|
2026-08-05 10:43:26 +08:00 |
|
youpaishidifu
|
3bae125392
|
修复漏消息:gate整块丢弃+行合并黏时间戳+stage尾部连坐 (windowmsgbot)
- 新增 _block_has_cjk_message:整屏时间戳全过期但含中文消息内容时放行给下游去重
- gate 两个全过期分支改为含中文消息内容即放行,不再整块丢弃连坐新消息
- stage splitting 中段/尾部不再按继承旧时间戳丢弃,仅>2h且非新鲜才丢远古历史
- 行合并增加 _TS_START 正则,禁止独立时间戳行被黏进消息
- 新增 _normalize_timestamps 规整 OCR 逐字空格/全角冒号时间戳,修复孤儿空格导致漏消息
- 内存泄漏修复保持不动(锁超时/句柄释放/启动失败计数/双重内存预检/看门狗)
|
2026-08-04 21:31:35 +08:00 |
|
youpaishidifu
|
7d3c73a3bf
|
fix: OCR噪声检测 - 用户消息与bot回复相似度≥90%时跳过
问题:OCR把bot回复内容误识别为用户消息,导致重复回复
根因:EasyOCR读取屏幕时,把右侧bot回复区域的文本也读取为用户消息
修复:
- 新增_last_bot_reply_content变量存储最近bot回复内容
- record_bot_reply方法更新该变量
- 消息处理前检查相似度,≥90%则跳过
- 添加SequenceMatcher导入
|
2026-08-04 15:44:25 +08:00 |
|
youpaishidifu
|
7e6d105b73
|
fix: EasyOCR超时也计入连续失败计数 - 防止超时跳过绕过杀进程逻辑
问题:连续3次EasyOCR超时未触发杀进程,因为'超时跳过'日志未增加失败计数器
根因:只在_q.get()返回None时增加计数器,线程超时is_alive()检查未增加计数器
修复:EasyOCR线程超时时也增加_easyocr_consecutive_failures,达到阈值触发杀进程
|
2026-08-04 15:27:06 +08:00 |
|
youpaishidifu
|
33848de623
|
fix: 修复cleaned_item未定义错误 - 调整清理顺序
问题:QQ轮询时cleaned_item变量未定义
根因:OCR清理函数调用顺序错误,在使用变量后才定义变量
修复:将cleaned_item = self._clean_ocr_prefix(item)移到使用前
|
2026-08-04 15:14:40 +08:00 |
|
youpaishidifu
|
597ed7d2fd
|
fix: 微信窗口被覆盖时无法唤醒 - 保留PID快速EnumWindows + 冷却缩短到10s
问题根因:
1. UIA (auto.WindowControl) 在窗口被其他程序覆盖时搜索不稳定
2. 缓存HWND验证失败时,PID也被清空,导致每次都要从psutil全进程扫描重新找PID
3. 搜索失败后30s冷却太长
修复:
- 仅清HWND,保留PID供后续EnumWindows快速复用(毫秒级,跳过psutil扫描)
- 新增PID快速路径:验证失败后先用缓存PID直接EnumWindows,再走UIA和psutil兜底
- 冷却时间从30s缩短到10s,加快恢复轮询
|
2026-08-04 14:03:19 +08:00 |
|
youpaishidifu
|
a3b0e35581
|
fix: EasyOCR内存不足时强制CPU模式,避免CUDA加载导致系统冻结
- monitor.py: 内存阈值从2GB提高到3GB,CUDA加载torch需要大量内存
- easyocr_worker.py: 新增物理内存预检(3GB阈值),不足时强制CPU模式
- easyocr_worker.py: _init_reader()再次检查物理内存,双重保障
- 改进错误日志:记录内存详细信息(总量、使用率)
- 解决:内存不足时仍加载CUDA导致电脑冻结的问题
|
2026-08-04 12:18:54 +08:00 |
|
youpaishidifu
|
7d8d39f7b6
|
fix: 修复OCR日期提取错误导致时间戳误判为未来的问题
- OCR常把日期和时间连在一起:2026/8/319:45:20 → 匹配到2026/8/31(未来/非法)
- 改进日期解析:从d向下截断,找到第一个合法且≤今天的日期
- 处理:2026/8/31(未来8月31日)→ 2026/8/3(过去8月3日)
- 处理:2026/8/32(非法日期)→ 2026/8/3(过去8月3日)
- 这样has_past_date=True,时间戳19:44/21:13等不会被误判为未来时间
|
2026-08-04 09:47:57 +08:00 |
|
youpaishidifu
|
161d2dd95b
|
修复基线抑制后截图 hash 导致消息被跳过的问题:
- 基线抑制时清除截图 hash(_last_screenshot_hash.pop)
- 防止下次轮询时 hash 相同直接跳过 OCR,导致消息永远等不到回复
- 更新注释:从'三项关键处置'改为'四项关键处置'
|
2026-08-03 23:07:01 +08:00 |
|
youpaishidifu
|
d6691f6037
|
修复 EasyOCR 连续启动失败不触发重启的问题:
- 新增 _easyocr_consecutive_startup_failures 计数器,跟踪子进程无法启动的次数
- 当连续3次启动失败时,清除冷却时间并重置状态,强制重试启动
- 前2次保留冷却(预留初始化时间),第3次强制清除冷却
- 在所有重置 _easyocr_consecutive_failures 的地方同步重置启动失败计数
- 解决 EasyOCR 全程未启动但从未触发杀进程重启的问题
|
2026-08-03 22:34:22 +08:00 |
|
youpaishidifu
|
795a245de7
|
修复两个bug:
1. 问题3:OCR逗号断行 - 在_process_ocr_output中添加连续行合并逻辑,防止EasyOCR将中文逗号视为行边界导致消息前半段丢失
2. 问题4:回复重试逻辑失效 - 为_paste_and_send添加force_retry参数,_execute_reply重试时跳过60秒冷却检查,实现真正的5秒间隔重试机制
|
2026-08-03 21:31:14 +08:00 |
|
youpaishidifu
|
d87e482e1e
|
修复微信端知识库答非所问 + QQ OCR 漏消息(双 bug 修复)
knowledge_base.py(问题2:微信端答非所问):
- 文档级标题语义匹配改为 token 级(原仅字面子串匹配),OCR 丢失"php"只剩"管理员端默认"也能正确命中 phpadmin
- 新增"管理员+默认"组合强偏好:无"领地"时 phpadmin ×3.0、protect ×0.4,避免退化查询误选 protect/全局配置
- section 级重排新增 bonus +30:查询含"管理员+默认"时,偏好正文真正含"密码/登录/ypshidifu"的 section,压过"## 目录"目录项
monitor.py(问题1 + 问题2 上游):
- 新增 _split_and_denoise_segments:按消息边界预分割 + 分段噪声隔离,修复 Windows OCR 大杂烩把用户消息当噪声整段丢弃(QQ 漏消息)
- 候选行剥离 bot 自身旧回复文本:OCR 把用户新提问与屏上 bot 旧回复拼成一行时,先剥离旧回复再走过滤,消除答非所问的上游拼接根因
测试:新增 debug_kb.py 复现退化查询、test_kb.py 回归;跨主题回归全部正确,py_compile 通过
|
2026-08-03 20:52:08 +08:00 |
|
youpaishidifu
|
8ed93382e0
|
修复两个bug:1. EasyOCR线程崩溃(_OCR_TIMEOUT未定义) 2. 知识库搜索优化(核心名词匹配奖励+文档标题语义匹配)
|
2026-08-03 18:17:43 +08:00 |
|
youpaishidifu
|
47996cd1b8
|
微信窗口验证修复:支持国内版weixin.exe进程名
|
2026-08-03 17:44:43 +08:00 |
|
youpaishidifu
|
f95a711c8c
|
搜索结果显示增强,展示更多匹配详情
|
2026-08-03 17:32:18 +08:00 |
|
youpaishidifu
|
c51a585bb9
|
微信窗口验证增强日志,诊断窗口无效原因
|
2026-08-03 17:32:04 +08:00 |
|
youpaishidifu
|
c3a210efef
|
知识库搜索优化:列表项二次切分,提升细粒度匹配精度
|
2026-08-03 17:31:45 +08:00 |
|