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
|
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
|
c853b3e504
|
fix(ocr): 页面文件不足防护——双重预检+长期冷却
问题:EasyOCR worker启动报 WinError 1455(页面文件太小),
无法加载 cufft64_11.dll,物理内存充足但虚拟内存(已提交32.5/35.7GB)不足。
修复:
1. worker端:import前预检虚拟内存——剩余<2GB则直接exit(2),不进入torch/easyocr加载
2. worker端:import捕获WinError 1455时写入虚拟内存诊断信息(物理/页面/提交率)
3. 父进程端:启动worker前预检虚拟内存——<2GB直接冷却1小时,不启动worker
4. 父进程端:识别exit(2)/页面文件错误——冷却1小时而非30秒(系统级问题不反复重试)
诊断增强:
- _get_virtual_memory_info():通过Win32 API获取物理/虚拟内存/页面文件状态
- 崩溃日志包含完整虚拟内存快照,便于排查
- 日志明确提示'增大Windows页面文件'
|
2026-08-02 21:35:33 +08:00 |
|
youpaishidifu
|
a858bbb9f6
|
fix(ocr): EasyOCR CUDA崩溃防护——健康检查+冻结隔离+自动降级
问题:EasyOCR worker启动即崩溃(access violation in torch CUDA),
冻住整台电脑,用户需强制重启。
修复三层防护:
1. worker端:CUDA健康检查——启动时创建小张量测试CUDA可用性,
失败则降级CPU,避免进入VGG模型加载的崩溃路径
2. 父进程端:CUDA_LAUNCH_BLOCKING=1——CUDA操作同步化,
access violation时只杀子进程不冻整机(关键防冻结)
3. 父进程端:崩溃检测——读取崩溃日志,含access violation/torch
则增加_easyocr_cuda_oom_count,第二次崩溃后强制CPU模式
(_easyocr_cuda_oom_count>=2 → EASYOCR_FORCE_CPU=1)
|
2026-08-02 21:22:59 +08:00 |
|
youpaishidifu
|
4ae189e82f
|
修复EasyOCR CUDA OOM冻结+时间戳day=0崩溃+OCR图片分目录img/raw+processed
- 冻结根因: CUDA OOM后worker不退出, 损坏context持续占显存, 父进程不杀子进程
反复发图→线程堆积+显存耗尽→桌面冻结
- worker: readtext CUDA/kernel错误→立即退出释放显存(faulerhandler已有兜底)
- 父进程: 收到CUDA错误→立即杀子进程+30s冷却; 连续2次CUDA错误→EASYOCR_FORCE_CPU=1
强制CPU模式启动(显存不足降级防冻结)
- 时间戳day=0崩溃: _is_timestamp_old跨午夜用replace(day-1), 每月1号day=1→day=0
抛ValueError day is out of range for month→微信OCR整轮失败; 改用timedelta(days=±1)
- OCR调试图片回源码目录: img/raw(原图PNG) + img/processed(处理后JPG) 分目录存储
- 崩溃日志回源码根 easyocr_crash.log (不写%LOCALAPPDATA%)
- _clean_old_ocr_debug 默认 keep=20 (回退上一轮激进keep=6)
- .gitignore: 忽略 img/ 与 worker_stderr/stdout.txt
|
2026-08-01 22:23:55 +08:00 |
|
youpaishidifu
|
0405e42a90
|
修复OCR回复牛头不对马嘴+残留消息+EasyOCR崩溃捕获+360误报
1. knowledge_base.py: 检索排序惩罚标题-only/短正文段,降低heading bonus,奖励正文命中,避免纯标题/免责声明段排第一
2. auto_reply.py: 动作类查询要求正文命中才放行;拒绝纯标题/免责声明答案
3. monitor.py: 调试截图改存%LOCALAPPDATA%/windowmsgbot/ocr_debug避开源码目录(360); 收紧残留消息fresh gate(600s硬门); 启动即崩溃/请求崩溃时读取easyocr_crash.log写入主日志
4. easyocr_worker.py: 加faulthandler+sys.excepthook全局捕获,崩溃traceback落盘%LOCALAPPDATA%/windowmsgbot/easyocr_crash.log
|
2026-08-01 21:21:05 +08:00 |
|
youpaishidifu
|
16fdfb0620
|
EasyOCR修复: 1)worker加顶层异常捕获确保stderr可见 2)竞态保护:stdin写入前检查proc非None 3)增加处理日志 4)超时改30s
|
2026-08-01 15:58:58 +08:00 |
|
youpaishidifu
|
ba0e6e2450
|
修复3个OCR问题: easyocr子进程ready握手+60s初始化预算, 偏旁过滤改Unicode范围判断, 新旧消息按新鲜特征放行
- easyocr_worker.py: 初始化完成后输出{"ready":true}握手, 父进程不再把3-10s初始化计入10s请求超时
- monitor.py: _ensure_easyocr_subprocess重写 - 60s握手预算(daemon线程+Queue), stderr PIPE捕获崩溃原因, 崩溃/超时改30s冷却自动重试(不再永久broken)
- monitor.py: 删除markdown表格字符key偏旁库, 改U+2E80-U+2FDF码位范围判断, 修复"地图"/"太"等正常汉字被误判为偏旁丢弃
- monitor.py: _looks_fresh_content新鲜特征判断 - 旧时间戳但含疑问词/问句/句尾标点的消息放行, 不再整块丢弃
- 新增test_easyocr_handshake.py: 子进程握手+OCR往返回归测试(实测通过: 28s含初始化, 识别'你好世界测试123')
|
2026-08-01 13:00:57 +08:00 |
|
youpaishidifu
|
ef227eb7b0
|
修复2个问题: OCR拼接合并 + 微信定位冻结3-5s
问题1: OCR拼接合并 (2处改动)
- easyocr_worker.py: ' '.join→'\n'.join, 各检测区域用换行而非空格拼接
避免 '兑换码导入错误时如何处置?游戏专用小筑憩-草一' 式合并
- _process_ocr_output 尾部新增 _split_merged_ocr_text:
在中文句尾标点([。?!?])后紧跟CJK处拆分,两侧CJK>=3且非续接语气词
将合并文本分为多条消息,各自独立参与KB匹配
问题2: 微信 _fresh_window 冻结3-5s (2处改动)
- _poll: 对wechat跳过 _fresh_window(ControlFromHandle构建Electron UIA树冻结)
用 win=None 代替
- _read_messages(wechat): 接收window=None, OCR失败后惰性创建UIA控件
大多数轮次 OCR 读到消息就直接返回,不碰UIA树
|
2026-07-29 18:11:29 +08:00 |
|
youpaishidifu
|
7102821127
|
EasyOCR GPU crash隔离:子进程隔离GPU推理,崩溃只杀子进程不冻电脑;新增easyocr_worker.py常驻worker;主进程降级到Windows OCR
|
2026-07-28 19:24:33 +08:00 |
|