fix(map): 类目筛选撑破时间窗——条件块缺外层括号致 AND/OR 优先级错乱
现象:智能体按类目查询时(如「伊朗最近有哪些军事事件」),回答/事件列表 12 条, 而地图只命中 1 条,其余 11 个是前端 _backfillMissing 补画的”幽灵点”。
根因:_build_where 拼类目条件时,第 2 组(类目名称回退)用 “ OR “ 直接追加, 整块没有外层括号:
cond = f"(e.category IN (...) OR e.sub_category IN (...))" # code 组 cond += f" OR (e.category IN (...) OR e.sub_category IN (...))" # 名称组 where.append(cond) # ← 缺 f"({cond})"而最终是 “ AND “.join(where),拼出:
... AND 时间条件 AND (code组) OR (名称组) AND 国家条件AND 优先级高于 OR,SQL 实际解析为:
(... AND 时间条件 AND code组) OR (名称组 AND 国家条件) ↑ 这一支完全脱离时间过滤与国家条件表现为「带上类目筛选后结果反而变多、混入大量过期事件」。 sub_categories 分支(同文件 :115-122)是同一写法,同样中招。
修复:两处各加一层外层括号 where.append(f”({cond})”),并写明原因防回改。
实测(修复前 → 修复后):
- API day30 + 伊朗 + cat-military : 13 条 → 1 条
- API day30 + sub=deployment : 3 条 → 0 条
- API all + 伊朗 + cat-military : 12 → 12(all 无时间约束,不受影响,无回归)
- 端到端(清对话记忆后重问) : tool_result 命中 12 条 → 1 条; 回答文案「共命中12条」→「查询到1条」;事件列表 12 → 1;地图高亮 12 → 1,三者一致
该 bug 由 b5d9cc5(2026-08-25 智能体查询可靠性)引入,已存在于 1.3.3,与前端改动无关。 纯代码无 DDL。
Co-Authored-By: Claude Code noreply@anthropic.com
版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9
京公网安备 11010802047560号
huishi · 事件处理中心(HuishiEvents)
项目现状(2026-08-07,master):系统已全链路跑通并部署 1.0.5,含 9 个已上线工作台 + 14 个后台引擎 + Docker 离线交付包。本文档描述当前现状;历史骨架/契约交付记录见文末「历史存档」。
技术栈
系统架构
uvicorn main:app(端口 8001):main.py自动扫描plugins/注册插件,挂载后端路由 + 前端静态资源,业务代码零改内核。run_worker.py --engine all --concurrency 4:14 个后台引擎并行消费队列/定时扫描。docker-entrypoint.sh按角色app|worker启动),共享 MySQL;任一容器退出由 compose 自动拉起。REDIS_ENABLED=false。后台引擎(14 个,
plugins/events/backend/workers/engines/)folder_watchwatch_inbox/,新文件自动入抽取队列extractcanonicalcooccurcorrelatenormalizertaggeralertingdetect/fusion/inference/attachment_sync/remote_poll/task_reconcile工作台(前端
frontend/tabs/)已上线(9 个):
P1 预留(置灰):融合复核台 / 推理审核台 / 流水线监控台 / 本体配置台。
核心业务数据流
目录结构
启动方式
开发机(Python 3.11 虚拟环境
.venv311/)Docker 离线部署(目标机,见
README_DEPLOY.md全文)开发机跑一次
build_pipeline.ps1 版本号生成dist/,拷到目标机(仅需 Docker):http://<本机IP>:8001/(根地址自动进登录门户)admin / admin123456build_pipeline.ps1 1.0.6→ 拷新dist/→ 目标机重跑 deploy → 业务数据卷保留相关文档索引
README_DEPLOY.md打包流程.md已解决Bug清单.md插件开发手册.md/plugins/events/事件插件开发手册_v1.1.md契约包/说明/软件设计说明2.0.md历史存档(v1.2 骨架交付,仅作契约参考)
早期 README 记录的「events 插件骨架与契约包 v1.2」为多团队并行开发时的地基交付(骨架 + 契约包 + 红线检查),P0 五组交付后已逐步演进为上述完整系统。契约类文档与现状有出入的,以代码为准。