gjm
|
81d8c3d2ca
|
fix(review): 批注去重 + 删除残留调试截图
- annotator.annotate:同一 handle 只批注一次(修复 created 无去重的既有 gap,
同 handle 出现两次不再产生重复引线)
- 删除 test_screenshot.png(已删除脚本 test_autoagent.py 的残留产物)
|
2026-10-14 19:53:41 +08:00 |
|
gjm
|
f7fa8f14d9
|
feat(review): 审查结论改为结构化 JSON,移除二次 LLM 抽取
- checklist.py:系统提示加入结构化输出契约(只输出 {summary, issues[]},
引用 handle 必须真实存在、不得编造)
- review.py:review_frame 返回 {summary, issues, raw};仅在「不再请求工具」的回合
解析结论,中间工具回合的 content 永不解析;强制收口那次 chat 不传 tools
- report.py:删除 extract_issues 与 _EXTRACT_SYSTEM(不再需要第二次 LLM 调用);
新增 format_finding(用 .get,顺带修复缺 frame 键 KeyError);save_report 的
issues 省略时从 findings 拍平
- __main__.py:主流程改为 确定性检查 → review_frame → build_finding(合并+校验),
issues 由 flatten_issues 派生
顺带修复既有 gap:summarize 硬下标 KeyError、extract_issues 单行围栏解析失败。
|
2026-10-14 19:53:41 +08:00 |
|
gjm
|
f6d61f8d07
|
feat(review): 新增确定性检查前置与结论结构化内核
- checks.py:确定性检查(find_zero_length / find_duplicate_entities 传 window
+ 纯 Python 派生空文字、未闭合多段线)。问题带 source=deterministic,handle 来自
工具/数据本身,不依赖 LLM 回忆
- findings.py:解析 LLM 的 JSON 结论 + handle 交叉校验(引用未知 handle 时保留问题、
剥掉 handle、verified=False)+ findings 装配
- config.py:新增 DETERMINISTIC_CHECKS / VALIDATE_HANDLES / CHECK_UNCLOSED_POLYLINES
开关与 ZERO_LENGTH_TOLERANCE / DUP_TOLERANCE / DUP_GROUP_LIMIT
实机验证:find_zero_length / find_duplicate_entities 的 window 参数在基座上生效
(schema 未声明,C++ 侧 parseCommonQuery 实际支持)。
|
2026-10-14 19:53:31 +08:00 |
|
gjm
|
daccc734bf
|
test(review): 把 5 处既有瑕疵锁成 *_known_gap 用例
让既有瑕疵可见,而不是被当成正确行为;改 1~3(确定性检查前置/结论结构化/
证据交叉校验)时可据此判断行为是否被改变。
- bbox_to_window 含非数值 → ValueError(上游只判长度)
- summarize / extract_issues 硬下标 f['frame'] → KeyError
- annotate 的 created 无去重(同 handle 产生重复批注)
- extract_issues 单行 ```json[...]``` 围栏剥离失败 → []
- result_json 文本 'null' → None(与「无 text 返回 default」语义易混)
|
2026-10-14 19:09:56 +08:00 |
|
gjm
|
0656397a68
|
test(review): 新增 pytest 离线回归网,锁定 dwg_review 既有行为
在改动审查流水线(确定性检查前置 / 结论结构化 / 证据交叉校验)之前,
先立一张离线、确定性、秒级的回归网。
- tests/fakes.py:假 LLM + 假 MCP 基座 + 响应构造器(ok_text/ok_image/err)
+ make_ctx/make_evidence,绝不触网、不读密钥
- 10 个模块共 134 用例:
mcp_client / llm_client / cad_tools / checklist / config /
planning / evidence / review / report / annotator
- pytest.ini(testpaths=tests)+ requirements-dev.txt + 根 conftest.py
(sys.path + RENDER_WAIT=0 / REPORT_DIR=tmp fixture)
|
2026-10-14 19:07:27 +08:00 |
|