gjm
|
cba05b0c65
|
feat(tiling): 自适应瓦片规划器 + VLM 分辨率离线标定
背景:逐图框审查固定「整体 + 2x2 象限」截图,大图幅(A0/A1)读不清细节。
改为按**实体分布**自适应决定截几张、截哪里。
- 新增 dwg_review/tiling.py(纯函数):
SHEET_SIZES_MM / frame_world_size / frame_scale(sheet_scale>0 用之,否则由
bbox/纸张反算,否则 default)/ effective_px(与 downsample 同规则)/
world_per_px / is_text_type(标准名 + 自定义类名含 TEXT/LABEL/DIM/NOTE/TAG/
ANNO/TITLE)/ cluster_text_flags / tiles_for_box / subdivide / plan_regions
(文字簇优先、空白区不出图、max_tiles 截断、窗口夹到图框范围)
- 新增 verify_vlm_resolution_offline.py:PIL 合成类图纸图(精确像素字高 +
可控线间距/线宽/虚线)→ 问 VLM 强约束 JSON → 定 R_text / R_line。
实测:R_text=12px(黑底;白底 10px);R_line=6px。
另:实测该模型**无法可靠计数**(6 条线在 2~10px 间距下答 4/10/4/5/4/4),
故线条判据改用「1 条 vs 2 条」二选一。
- config 新增 TILING_ENABLED / TEXT_HEIGHT_MM / TEXT_READABLE_PX=12 /
LINE_READABLE_PX=6 / TILE_MAX_COUNT / TILE_OVERLAP / HEATMAP_CELL_DIV /
HEATMAP_CLUSTER_DILATE / HEATMAP_MAX_AREA_FRAC;EVIDENCE_DETAIL_TILES 与
EVIDENCE_MAX_IMAGES 保留作回退路径参数
- llm_client 新增 image_size_b64(测量绘图区实际像素,决定单张覆盖范围)
- phases/evidence.capture_images 支持瓦片规划:先截整体图并测像素 →
plan_regions 成功用规划窗口,否则退回 sub_windows(行为零变化);
末尾始终复位整体视口。collect_frame 传实体/文字 bbox;任一信封
total>returned(截断)→ 退回固定策略,避免误删有内容的瓦片
- 测试:tests/test_tiling.py(28 项)、tests/test_evidence.py 新增规划路径与
降级用例、test_config / test_llm_client 补新常量与 image_size_b64;
全量 283 项全绿
|
2026-10-15 23:03:27 +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
|
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 |
|