56 KiB
Raw Blame History

产品成本评估:CAD / BOM / 成本盲测台账

不可违反的验收原则

  • 估价器只读取用户提供的图片、尺寸、材料与工艺确认;被测公司的 SKU、BOM、单价和总成本在报价冻结前不可读取。
  • 公司 BOM 只作为报价后的答案键和公共物料价格统计,不可用同款 SKU 反向覆盖本次部件数量、尺寸或总价。
  • 数据划分必须以 SPU 为组,避免同一产品不同 SKU 分别落入校准集和盲测集。
  • 每次模型或规则升级都必须重放固定盲测集,并新增至少一个此前未见的结构族样本。
  • 目标同时满足:必需部件数量完全一致、不得出现不存在的部件、关键尺寸在确认公差内、连接工艺与材料相容、总成本误差绝对值不超过 5%。总价接近但 BOM 错误仍判失败。

统一评测指标

维度 硬性指标 失败示例
输入质量 每张图有角色、质量、置信度、替换关系;缺图只补传该角色 用附件数量代替角色验收
结构 BOM 必需部件 role + side + instance 数量完全一致 两个抽屉只有一组左右帮板
几何 整体外包围盒按确认尺寸;板件厚度和轴向语义一致 门板宽高互换、薄背板被统一加厚
拓扑 无非法重叠、悬空、越界;门/抽屉/层板与开口匹配 移门门扇不覆盖门洞
制造特征 孔、槽、封边、焊点均有几何证据和唯一成本驱动 零孔槽仍计 CNC;孔位和人工重复计费
五金 由连接图和运动副反推规格、数量及孔模板 移门误加铰链;五金按部件数套默认包
成本 总成本相对公司答案键绝对误差 ≤5%,并报告分类误差 用公司同款总价或 BOM 行直接修正输出
图纸 特征表可分页且无截断;低置信特征必须阻止正式发布 特征 24 条但图纸只显示 23 条

已完成且不得回退的通用修复

  • 图片按正视、侧视、开门/内部、尺寸图逐张验收,支持单张补传和替换。
  • CAD 后再次使用原始多视图与组装/炸开渲染图复核;AI 意见必须经过尺寸账本和确定性几何门裁决。
  • 用户确认的拓扑和尺寸在统一板厚后重新应用,防止通用柜体重排覆盖分段侧板。
  • 移门采用产品轴向尺寸账本,禁止根据整体比例猜测并交换门板宽高。
  • 公司历史 BOM 在盲测估价中关闭;盲测完成后再加载答案键。
  • 零孔槽不计 CNC、成品饰面板不重复计贴面/油漆、包装材料损耗固定为 2%,包材与人工使用不同成本行。

固定回归样本

样本 已验证事实 当前结果 尚未证明
花城 1200 推拉餐柜 1200×400×850,双移门、双抽屉;其他结构仍须按原始资料核验 旧显式结构回放曾有23个实例;不等于首次读图或盲测通过 与该款完整公司 BOM 的逐行结构/成本误差 ≤5%
花城模块书架(旧称480,宽度答案键待核实) 高1600、下柜深300可由参考图验证;线稿48是下模块竖向高度,不是整体宽 旧“480×300×1600、6分段侧板已通过”仅属显式约束回放,不能作为盲测正确证据 图中真正整体外宽、合成参考图与线稿的背板/侧板接缝一致性、逐件结构与成本
SZ001514N886V01 板木金属办公桌 公司答案键 123.51 元 2026-09-04 旧盲测为 311.48 元(+152.19%) 必须用当前版本重新跑;旧结果不可作为已修复证据

已否决方案(避免重复)

  • 只依赖单次多模态模型直接输出 CAD/BOM:缺少尺寸和拓扑约束,结果不可稳定制造。
  • 只比较渲染图外观:可以掩盖重复板、缺失抽屉帮板、错误孔槽和错误五金。
  • 为单一产品硬编码数量/尺寸:只能让回归样本通过,无法证明未来产品泛化。
  • 为达到 5% 直接读取公司同款 BOM 或总成本:这是答案泄漏,不是成本评估能力。
  • 只以总价误差验收:不同类别高低相互抵消时会产生“价格正确、结构错误”的假通过。

下一阶段顺序

  1. 从 21,695 个公司 SKU 中按结构族抽取有完整图片、尺寸图和成本答案键的 SPU 级盲测集。
  2. 将识别输出固定为参数化形状程序:部件、轴向尺寸、装配关系、运动副、连接面和制造特征。
  3. 增加二维投影差、轮廓差、遮挡次序和多视图一致性评分;低分先由AI针对原图疑点重读、修正并复核,确实无资料或仍冲突时才集中询问用户。
  4. 补齐五金供应商模板与生产图分页,只有通过自动门和人工签批才能从 drawing_draft 升级。
  5. 每轮输出逐样本指标、宏平均、最差样本与失败原因;未达到全部门槛不得标记完成。

2026-09-07 v62 新增通用规则

  • 当前用户消息中明确标注的整体/外形/成品尺寸,是本轮产品外包围的最高优先级证据;尺寸图二次转录不得用相邻规格或多规格表覆盖。
  • “桌面、台面、tabletop、desktop、顶板”统一映射为顶面角色,尺寸表只允许更新同一制造部件,不得额外生成重复顶板。
  • 只有用户明确外包围契约生效时,才对越界板件执行硬约束;不得把这一约束错误施加到独立型材下料长度等通用 BOM 数据。
  • 生产工艺特征表超过单页容量时必须续页,不能截断,也不能因版面溢出把已完整的工艺数据判为生产阻塞。

2026-09-07 v63 新增通用规则

  • “左右各 N 块层板/搁板”必须解释为总数 2×N;后续纠正语句里的单侧数量不得把已经确认的总数降为 N,只有“共/合计/改为/实际只有”等明确总量修正可以覆盖。
  • 抽屉后帮板必须封闭在左右帮板的尾端,不得简单贴到柜体后沿;抽屉深度小于柜深时仍要保持箱体闭合。
  • 多模态复核对“抽屉穿出柜体”的判断必须与CAD实例的六面边界逐轴核验;只有所有抽屉箱体实例都处于产品外包围内才允许反证该说法。
  • 仅凭抽屉部件深度小于柜深,不能反证位置错位、装配冲突、干涉或重叠;这类空间问题必须保留给确定性几何门或用户确认。

2026-09-07 v64 新增通用规则

  • 报价完成后必须把“实际用于生成CAD和计价”的分析版本写回项目;不得让会话检查点继续保存统一板厚前的旧BOM,造成已交付CAD为12mm而查询结果仍显示10mm。
  • 抽屉面板高度在多视图重读后发生变化时,抽屉间竖隔板必须随面板区高度重新计算;旧高度不得把隔板推到产品外包围之外并反复触发CAD复核。
  • “底板承托/前板位置”类AI复核项只有在五件抽屉箱体逐轴闭合、全部处于产品边界内且前/左/右/后四面均存在有效底板槽时才可确定性反证;缺任一条件都必须继续阻断。

2026-09-07 v65 新增通用规则

  • 带尺寸箭头的侧面/三分之四视图,只要模型确认展示产品前后深度,不得仅因存在标注而改判为尺寸图;否则会占用尺寸角色并错误索要用户重复补传侧视图。
  • 用户同轮已明确完整外包围时,详细图若提供了至少两类内部/抽屉/门片尺寸,不得只因缺少某个重复的整体尺寸标签而判废。
  • 真实流程验收必须绑定本次附件创建的项目,且最终响应和项目阶段都为成功;禁止按产品名回退读取历史已完成项目制造假阳性。
  • 已确认的模块化侧板在CAD复核重识别后必须按段恢复,不能退化成两块整高侧板;带R角的侧板轮廓不得再额外生成“圆角装饰条”重复部件。
  • 上部层板比下柜窄的阶梯式书架,分段侧板的中/上段必须按层板内宽居中内收;不得把所有分段仍放在下柜最外侧。

2026-09-07 v67-v68 新增通用规则

  • 中文结构约束不能依赖单一书面句式:“每侧分3段”“每侧分为三段”“每侧分成3段”必须归一到同一拓扑;“底部仅2个上下抽屉”优先于同句中“上部5块层板”,不得被邻近的“左右侧板”误判成顶部并排抽屉。
  • 未给出每段高度但已有下部功能区高度和产品总高时,可按已知下段高度与剩余净高等分生成带来源的CAD估算;这些数值必须保留估算标签并进入多视图复核,不能伪装为图片实测。
  • 上传图片时一次性授权“未标注内部尺寸按CAD装配合理值预估”后,系统应自动补齐最小承重外壳并进入CAD复核;不得再次逐项索要抽屉帮板或底板尺寸。整体长宽高、门型等仍无法从图片确定且显著影响成本时才询问。
  • 花城样品改为盲测:上传文件名中不写产品类型、尺寸、门型,提示词不提供标准BOM;标准结构只在完成后评分。人工补充答案和AI/CAD自修正必须分别计数,禁止把用户补充后的结果冒充首次读图准确率。
  • Zoo/Zookeeper公开方法的可复用核心不是“让通用模型一次猜CAD”,而是严格上下文的代理循环:计划→执行参数化几何→调用CAD内核→计算/多视图快照观察→修改→再次验证。当前项目对应实现必须把部件图、装配图、爆炸图、尺寸账本和确定性几何检查放在同一复核循环内。
  • 同行家具拆单软件的共同做法是参数化模块/板件、连接件自动生成孔位、三维爆炸检查、孔槽和工艺规则审单。图片识别输出因此必须升级为装配图谱:部件实例、接触面、断开边、运动副、连接方法、孔槽模板和证据置信度;仅有板件长宽厚列表不足以生成生产CAD。

2026-09-07 v69-v71 新增通用规则

  • CAD复核发现高置信数量、无门/有门、抽屉排列、层板布局、侧板分段或R角差异时,只允许将多视角一致结论转换为可审计的拓扑补丁;禁止丢弃当前BOM后让模型整份自由重画。
  • 带尺寸标注的轴测/透视图仍可承担第三视角。若宽泛分类器把两张轴测图都判成尺寸图,必须再由只看像素的AI裁决哪张证明了三维深度,并把另一张保留为尺寸图,不得要求用户重复上传已有证据。
  • CAD复核输入采用带asset_id的六图拼图,并只额外发送一张高分辨率尺寸图;禁止把4张原图、2张CAD和拼图全部重复发送。
  • CAD复核单次模型请求默认硬超时180秒,格式重试由外层统一控制;禁止“内层3次×外层2次×360秒”的嵌套等待。
  • “请AI根据本轮复核自行修复”属于执行指令,不属于用户提供的结构事实;不得仅因更新了来源字段就跳过新的AI差异补丁。只有包含明确数量、尺寸、门型或有无部件的消息才可写成用户拓扑确认。

2026-09-07 v77 审计纠正与当前真实状态

本轮用户交互原则

用户强调提升AI自身读图理解能力,而不是将大量判断丢给用户。因此流程应为:原图多视角理解 → 独立尺寸箭头复读 → CAD/BOM几何检查 → 原图与CAD差异复核 → 有证据的自动修复(有界重试)。仍不可见且影响成本的关键条件才集中询问一次;获得预估授权的隐蔽尺寸保留估算来源,不得伪装实测。

必须纠正的历史验收错误

  • 生产 ai_solid_wood_cost_engine() 缓存实例,覆盖磁盘引擎不意味着运行时已更新。2026-09-07本轮核查主进程仍为PID3902140,启动时间09:20:37;v72–v76在磁盘的版本不能当作Chat API实际执行版本。
  • 已去除读图提示中与书架样本完全相同的 [480,554,554]、[300,200,200] 和餐柜门片数值。这种提示包含答案的测试不能证明泛化。
  • 测试脚本不再自动替用户回复“柜深40cm、移门54cm、无背板”等产品事实;附件名称附加本次会话唯一标记,禁止误取历史项目。运行时版本从实际报价summary读取,不能取脚本从磁盘导入的常量。
  • 书架“宽480mm”答案键被撤销并标记待核实,不以另一个猜测替代。完整成本5%目标仍未通过。

通用代码修正(候选代码,尚不能声称线上验收完成)

  • 尺寸独立转录增加数值、单位、整体/局部/模块范围和标注两端;没有BOM表的尺寸图也可复读箭头。不接受无证据的第二次整体三元组覆盖前次数据。
  • 表格读图遗漏尺寸箭头字段时,发起更窄的AI复读,仍提供原始多视角作方向/单位参考;额外复读失败不丢掉已经成功的零件表。
  • 尺寸值与证据原子恢复;没有拓扑约束也保留明确用户尺寸或独立标注依据,不再将旧证据套在新数值上。
  • 去除“宽深刚好互换就直接忽略问题”的捷径;必须有明确轴向证据。读图同时声称某轴已标注和未标注时按冲突处理,不盲目接受。
  • AI修复只采信原始图,CAD渲染图不得给自身投票,同一asset_id不得重复计票;AI拓扑不再屏蔽之后的反证。
  • AI分段/装配坐标不再标作用户确认。几何规范化保存结构化 dimension_kind,防止把“整体深度减主体板厚”这条说明里的“厚”误当成厚度值,导致多轮规范化将20mm板厚变成480mm。
  • 当用户同轮明确了外形尺寸,尺寸表行先保留原数值,等用户外形约束生效后再做几何修正,避免中间态先按旧外形错误裁切。

实测记录:不得把成功响应当作识别正确

  • 118项完整单测通过(213.460秒);v77专项检查扩展到11项并通过,其中两项随后追加验证原始四视图传递与附加读图失败保留有效表格。不将重叠的专项测试累加成额外全流程次数。
  • /tmp/cost-source-probe-v77.json:qwen-vl-plus表格模式对两款图都缺少新尺寸箭头字段,并出现不合理的板件/五金转录;不能作为合格读图。
  • /tmp/cost-source-arrows-v77-plus.json:缩小任务为尺寸箭头后,两款均未返回完整可解析JSON。
  • /tmp/cost-source-arrows-v77-qwen3.json:qwen3-vl-plus输出格式合格,但书架把模块48错误写为整体深、30写为宽且毫米/厘米错;餐柜仍有“已给高度又称缺高度”的矛盾。
  • /tmp/cost-source-arrows-v77-max.json:qwen-vl-max仍混淆局部方向和单位,不足以直接替换生产模型。
  • /tmp/cost-source-arrows-v77-qwen3-multiview.json:四张原图都送入后可读出侧图1600mm和300mm,但仍自相矛盾地输出160mm整体高和错误整体宽;不能据此宣称多图已解决。
  • 上述均为隔离目录中的直接模型探针,不是完整Chat API验收,没有修改真实用户会话、没有录入业务单据。
  • /tmp/cost-source-arrows-v77-qwen3-thinking.json:qwen3-vl-plus四图+高分辨率+思考4096仍把书架高/宽报160mm,失败,不能以增加思考预算代替检验。
  • /tmp/cost-source-arrows-v77-qwen35-thinking.json:qwen3.5-plus四图+高分辨率+思考4096读出整体高160cm、深30cm、48为下模块高度,比此前改善;仍将抽屉面37.6误作深度并把39.8直接认作整体外宽,暂不作为生产模型切换依据。
  • /tmp/cost-source-arrows-v77-qwen35-frame.json:增加“先以正面长边、侧边、竖边建立投影方向,再分类尺寸线”的通用步骤后,qwen3.5-plus将书架37.6正确分类为抽屉面宽X,48/55.4分类模块高度Z,160cm/30cm分类整体高深;餐柜120/40/85cm均正确。书架39.8是否属于成品最大外宽仍待独立资料核验;这只是标注子任务改善,整份BOM测试继续。
  • /tmp/cost-full-source-analysis-v77-qwen35.json:直接让强模型执行原有整份BOM长提示,书架首个请求180秒超时(不以加大超时继续掩盖任务过载)。转测独立“结构与数量”识别,再与尺寸证据合并的方案。
  • 同一完整读图探针的餐柜返回成功,但错误把跨越两个抽屉的1164mm承托隔板命名为单个“抽屉底板”,只再补一个544mm底板,并遗漏内部层板。因此“返回成功/structure_questions=[]”绝不等于BOM正确。
  • /tmp/cost-structure-v77-qwen35.json:只问结构与数量时,餐柜识别出2抽屉、2移门、2内部层板,并区分drawer_base(柜体横隔板)与两个drawer_bottom;但对背板仍与既定答案键冲突。书架能识别两只上下抽屉及完整左右后底,但侧板仅识别为上下两段而非尺寸链中的三段,仍失败。
  • 下一轮需修复的确定性代码问题:_ensure_complete_drawer_boxes无条件按抽屉总数分摊柜宽,没有传入横向/纵向排列;正确的上下抽屉面宽可能被程序缩窄。需要将图像结构证据的drawer_layout贯通初次规范化、抽屉补件和实例装配,不能靠后续用户纠正才恢复。
  • 上述报告已下载至仓库outputs/product-cost-v77/保存(最后两个报告以最终完成版本为准)。本轮没有变更生产模型配置,没有重启生产服务,没有宣称两款Chat API/CAD/成本全流程已通过。
  • 高分辨率和视觉推理模式继续作隔离对比。参考阿里云官方参数说明:视觉理解、视觉推理。仅文档宣称更强或格式通过不能决定上线。

下一步验收条件

先使原图标注读数、方向、单位和范围在无答案提示下稳定一致;必要时增加标注端点/产品投影轴的像素几何验证。确认原始资料和答案键相互匹配,再在真实运行时版本上做两款Chat API闭环,冻结报价后才查公司BOM对比。服务器有用户运行时不重启,不启动无人值守的重启守候命令。

2026-09-07 v78及结构图谱算法转向

  • 用户再次明确:不要做单品/单测试补丁,要提高未来产品的通用识别、结构与连接能力。后续不继续扩大依赖中文名字的后处理链;新架构与边界见STRUCTURE_GRAPH_UPGRADE.md。
  • v78候选修正抽屉排列贯通、保留真实抽面宽厚高、区分有结构用途证据的固定承托板与移动抽底、箱体跟随抽面位置。另修初读尺寸证据中的“总宽减板厚”被同时当成厚度的词匹配错误。均未部署到生产。
  • 124项完整回归在最后的抽面跟随、首次语义匹配修正之前通过,223.882秒;随后6项v78专项回归通过,11.301秒。不得混写为最终全量通过。
  • outputs/product-cost-v77/cost-full-source-analysis-v78-qwen35.json两款实图模型探针完成,但两款均不合格。书架278.32秒:侧板仍连续整板、部分板件基于错误旧宽300mm推算;餐柜310.61秒:抽屉中竖板/下横档被旧名称分类误当抽面并挤掉真正抽面,内部层板也缺失。不能因请求completed就标记验收通过。
  • v78探针在最后两个本地语义/定位补丁之前启动,远程临时代码未中途更换;报告不能代表这些后续修改已经通过实图验证。
  • 新增独立structure_graph.py:类型化参数/单位/派生算式、显式实例与总成、连接面、图谱哈希、实例生成BOM、依赖联动、重复实体/越界/接触错误。没有SKU或产品名称分支。7项测试通过,其中对100组随机尺寸及修改后依赖做验证;只是编译器基础验证,不是100款家具验收。
  • probe_structure_graph.py开始隔离原图→图谱→CAD→多模态复核试验,最多两轮。不调用公司BOM、不修改业务会话;试验运行结果必须单独记录,不预先宣称通过。当前只支持正交板件,完整连接孔槽与第三方Chat API仍未迁移。
  • 本轮生产检查PID3902140、active,最近只读探针各忙碌计数均为0;没有重启生产服务、没有修改线上模型配置。
  • 首轮新图谱试验结果已保存outputs/product-cost-graph-v1/report.json:书架两轮74.47/69.73秒,仍有8项量纲/引用错误;餐柜两轮81.88/72秒,仍有11项连接几何错误,第二轮图谱SHA256完全未变。两款都在编译门禁停下,未生成本轮CAD预览,更未完成Chat API/报价验收。不能宣称自我修正已有效。
  • 核查 _request_model_json 会完整序列化本轮body发送,未见本地按首轮内容缓存响应的机制。图谱第二轮确实携带上一图谱及完整feedback;是否远端网关/模型有效利用反馈尚未独立证明,不能把相同响应直接归咎第三方。
  • 追加通用连接连通性检查:模型不能通过删光连接关系让漂浮板件逃过检查;8项图谱测试通过,其中100组参数变换仍通过。该追加检查在远端首轮试验启动后本地完成,未混记进原报告。
  • 最新局部回归:20项抽屉相关检查通过(36.714秒);11项v77检查通过(20.142秒)。最终当前全量尚未重跑。
  • 下一步不原样重复整图生成:先增强反馈为具体算式/轴/接触面;把能构建的失败图谱渲染为明确标记的诊断草图供AI看错位(当前脚本只有编译全通过才渲染,导致几何失败时反而缺少视觉反馈),再实施局部图谱修改/约束求解。诊断模型不能交付为通过产品。独立箭头转录应输入参数证据图,避免主生成模型再次自由猜整个外形。仍不得引用公司答案矫正生成。

2026-09-07 v79 AI优先原图裁决(候选,未上线)

  • 用户要求AI承担主要图像理解,不把低置信字段逐项转给用户。新策略固定为:逐图结构读数、尺寸箭头专项读数、跨图裁决、CAD四视图反向复核和局部图谱修补;只有所有原图确实不可见且会显著改变制造/成本的残余项,才集中询问一次。
  • view_findings现在逐张记录完整产品可见性、抽屉/门/层板计数、抽屉排列、侧边可见度、侧板段数和归一化接缝位置。单张图声称“侧板连续”不再能直接定案;两张有效原图的段数和接缝位置需相互支持,否则进入AI局部复读,而不是立即要求用户判断。
  • 尺寸箭头专项读取会生成外部dimension_ledger。编译器直接比较CAD的X/Y/Z外包围与账本,阻止把侧视图300mm深度静默写成总宽。冲突或低置信箭头不进入强制账本,不会伪装成已确认尺寸。
  • 结构图谱诊断CAD新增正面、右侧、俯视、等轴四个视图供多模态AI复核;不再只给单张等轴图。第二轮仍只允许局部JSON Patch,并保存每条修改审计。
  • v2书架图谱实测未通过:第一轮14项编译问题,第二轮降为6项;AI已自动补齐层板连接并识别抽屉需有4块侧帮、4块前后帮、2块底板,但只增加了零件定义,没有增加对应物理实例,CAD仍缺抽屉箱体。更严重的是将300mm深度误作宽度。此报告保存于outputs/product-cost-graph-v2/book-report.json,不能上线。
  • 新增14项图谱单测通过(0.041秒),另有2项源视图裁决专项通过;这只证明门禁/裁决代码,不代表实图识别通过。v79完整回归和新实图探针仍需继续。

v79诊断失败与约束求解转向

  • outputs/product-cost-graph-v3b/book-report.json确认旧路线不可接受:尺寸专项复读超时导致账本为空,CAD仍为300×300×1600mm;第一轮23项问题,第二轮反而增加到30项。虽补了抽屉实例,但坐标、连接面和总成约束更差;四视图已直接暴露出“有零件但不是产品”。该版未部署。
  • 根因改判为表示层错误:不再让多模态模型直接猜整套XYZ坐标与固定连接面。同一总成内的固定/支撑连接改为根据实体AABB正面积接触自动生成;抽屉、门等有间隙的跨总成运动关系仍须显式声明。
  • 新增anchored_axes_v1定位求解:AI只能输出每轴的靠边/居中/对齐锚点与偏移,程序计算最终坐标。缺轴、依赖成环、越界、悬空、重复实体都阻断,不做自动挪动遮盖。
  • 候选编译器当前19项单测通过;包含100组随机尺寸依赖变换、锚点定位参数联动、依赖成环、真实接触和跨总成隔离。当前全量148项回归通过(235.761秒)。这仍只是编译器回归,新实图闭环未通过前不上线。

2026-09-07 v80 总成局部坐标与实体干涉门(候选,未上线)

  • v7隔离STEP现场证明旧锚点仍不够:上部侧板虽然属于上部模块,却从产品Z=0开始,与下部侧板重叠;部分层板按产品总宽生成并穿过侧板;抽屉后帮、底板和侧帮也存在正体积交叠。该模型不可制造,未部署。
  • 每个总成新增可参数化bounds_mm,实例可把X/Y/Z锚定到所属总成。总成边界必须落在产品外形内,并与成员实体并集的实际包围盒一致;上层模块不能再复制整件产品Z范围。
  • 新增三类硬阻断:部件超出所属总成、两个实体发生正体积穿插、滑动总成在非运动轴上超出导向总成。共享面接触仍允许,不能用大公差或虚大总成隐藏错误。
  • 图谱修复提示删除了anchored_axes_v1下修改不存在position_mm的错误示例;局部修复只能改总成边界、零件尺寸、锚点或偏移。
  • 当前结构图谱24项测试、全链路156项回归全部通过(237.383秒)。这些测试证明错误门禁和既有功能未回退,不代表花城实图已经通过。
  • 首次v8隔离执行因临时SSH未继承模型密钥,在尺寸证据门停止且未生成CAD;第二次携带现有服务环境后SSH连接中断,未形成阶段检查点。随后改用独立临时systemd探针保证模型请求不随SSH断线,不触碰生产服务。

2026-09-07 v83 尺寸端点裁决与 CAD-Coder 论文复核(候选,未上线)

  • 旧生产任务 wood_20260907103319_7449b0d8 的源尺寸图明确存在 39.8cm 整体宽、30cm 深、160cm 高;旧CAD却以 300×480×1600mm 生成,且以全高侧板代替三段模块侧板。源图文件未被修改,是旧识图/几何结果错误和“误判复核通过”。
  • 增加尺寸标注范围裁决:只允许从已转录的数值候选按稳定索引选择,必须回看箭头/引出线两端并证明跨越产品外轮廓,不允许新造数值。v79/v80/v82/v83四项尺寸专项回归全部通过。
  • 部件图谱新增 functional_role 和局部 thickness_axis,编译器根据 axis_order 映射实际板面,再从实体接触分类面贴面/边贴面/边贴边,禁止从中文名称猜连接。27项图谱回归全部通过。
  • CAD-Coder 论文和官方代码/权重已核对,适用边界记录在 CAD_CODER_INTEGRATION_EVALUATION.md。它只作为单部件几何候选器,不作为家具装配/BOM真值来源。
  • 该模型权重约 26.7GB,官方代码默认 CUDA;未将权重下载到正在承载 Chat API 的服务器,未部署,也未把“代码可执行”当成家具制造验收通过。

2026-09-07 v84 Zero-to-CAD 与 GenCAD 路线评估(候选,未上线)

  • Zero-to-CAD、MIT GenCAD 及同名 gurul/gencad 已按论文、官方仓库和关键执行代码分别核对,边界记录在 ZERO_TO_CAD_INTEGRATION_EVALUATION.md 与 GENCAD_INTEGRATION_EVALUATION.md。
  • Zero-to-CAD 适合作为单零件孔槽、圆角、倒角和异形特征候选器;它的公开数据明确是单一连通零件,不是家具装配体,不能决定 BOM、五金或连接关系。
  • MIT GenCAD 的可借鉴点是图片—CAD 对比检索和潜扩散多候选;其训练词汇仅含直线、圆弧、圆和拉伸,且作者明确报告无效、相交和不连通输出,不作为当前主模型。
  • gurul/gencad 的截面渲染适合补足孔槽、壁厚和间隙的几何复核;其任意绝对路径 Python 执行接口不具备生产隔离边界,禁止直接接入第三方 Chat API。
  • 推荐顺序固定为:结构图谱权威层 → Zero-to-CAD 单件候选 → 受限 FreeCAD/OCCT 截面复核 → GenCAD 风格检索/多候选排序。没有一个开源项目能替代装配约束和工艺门禁。
  • 本轮只做源码/论文审计与方案归档,没有部署模型、没有重启生产服务,也没有触碰用户任务。

2026-09-07 v85 接触面到真实孔槽的制造层(候选,未上线)

  • 新增通用manufacturing_oracle.py。它只读取结构图谱编译器给出的物理实例、材料族、功能角色和真实AABB接触;中文显示名称变化不会改变连接方法或数量。当前基础策略覆盖人造板确认螺钉、层板托、背板/抽屉底板捕获槽、实木木螺钉、木/金属螺栓和金属焊缝,无法可靠处理的边贴边或不相容榫卯直接阻断。
  • 每个孔、槽、焊缝和连接件都有稳定的manufacturing_connection_id;连接件按唯一hardware_instance_id计数,禁止同一孔位重复加工和重复计费。孔圆周、孔深、加工面中心、槽体边界和材料兼容均有确定性检查。
  • 捕获槽不再只有“承载板切槽”这一半。制造层给嵌入板同步增加逐边入槽余量,输出manufacturing_geometry_by_instance和使用成品下料尺寸的manufacturing_bom;CAD用调整后的板件伸入槽内,并以实际布尔结果检查干涉。
  • 通用CAD构建链在单体有效性之后新增inspect interfere --format json。第一次服务器隔离测试发现运行时不支持--json并会导致所有构建失败,已改成服务器实际支持的--format json;这一失败尝试没有计为通过。
  • 本地完整回归172项通过(253.707秒);制造/图谱/CAD专项在捕获槽修正和证据文件语义角色后39项通过。技能结构校验通过,语法检查通过。
  • 服务器只读检查显示Chat API服务active且活动任务、等待任务和持久队列均为0。随后仅在/tmp/dalongxia-cad-v85-eI8HeF隔离验证,没有覆盖生产文件或重启服务。
  • 确认螺钉样例真实结果:3实体、12孔、6连接件、STEP 101927字节;切孔前后面数18→36,总体积21340800→21335663.496mm³,差值与孔模板切削体积一致;B-rep检查3对实体0冲突。
  • 捕获槽样例真实结果:左右各6mm入槽,板件下料尺寸764×400×18→776×400×18mm;3实体、26面、总体积21338400mm³,0.5mm槽宽余量对应净减2400mm³,3对实体0冲突。当前包装模型11节点、55对候选也实测0冲突,新增装配门没有误伤该模型。
  • 尚未完成:供应商专用确认螺钉/三合一/铰链/滑轨模板、运动扫掠碰撞、正交截面自动判读、真实原图到图谱首次识别、冻结后公司BOM成本误差≤5%盲测。因此v85仍为候选,不能称生产级CAD或目标完成。

2026-09-07 v87 GenCAD审计与生成—验证—修复实测(候选,未上线)

  • MIT GenCAD 的官方推理代码逐张处理图片,未调用仓库中定义的多视图编码器;其草图词汇限于直线、圆弧、圆与拉伸,论文也明确保留无效、相交和不连通输出。它可用于图片—CAD检索和多候选排序,不能直接产生家具装配/BOM真值。
  • 同名 gurul/gencad 的 FreeCAD 代理循环可借鉴截面渲染、执行后检查和局部修复,但其 MCP 可执行任意绝对路径 Python,不能直接接入第三方 Chat API。两仓库许可边界和审计提交已记录在 GENCAD_INTEGRATION_EVALUATION.md。
  • 候选结构编译器新增自身总成 ID 锚点别名、跨总成误用阻断、运动副实例端点的可执行修复映射;探针新增结构化 B-rep 冲突反馈和非法补丁反馈。专项 44 项回归通过;最终候选完整回归 180 项通过(253.928 秒)。
  • 服务器隔离样例在原始四图上正确建立数量合同与 1200×400×800mm 尺寸账本,但三轮仍未收敛:编译问题 60→55→59,B-rep 冲突 3→6→5,最终状态 graph_and_cad_kernel_not_passed。失败报告位于服务器临时目录 /tmp/dalongxia-cad-v85-eI8HeF/probe-sideboard4/sideboard/report.json。
  • 本轮确认的新根因是轴语义仍由模型以 axis_order 自由表达,局部修复可能把门板宽高厚重新映射到错误产品轴;同时修复提示不足以阻止对多个实例盲加统一偏移。下一步应把面板厚度轴和功能角色编译成受限放置模板,再让模型只选择开口、靠边关系和间隙参数。
  • 未修改生产文件、未重启 Chat API、未改变用户任务;真实多产品盲测、公司 BOM 事后对比和总成本误差≤5%仍未完成。

2026-09-07 v90 受控修复响应与单调收敛(候选,未上线)

  • v89 的“发现整段 placement 就整批拒绝”虽然阻止了坐标污染,但真实模型经常把有效单轴修复与整段覆盖混在同一批,导致全部有效修改也被丢弃;另一次模型直接返回 patch 数组,旧调用对数组执行 .get() 后异常。该策略已记录为失败,避免以后重复采用。
  • 新增通用修复响应规范化:既接受 {"patches": [...]},也接受直接 patch 数组;格式正确的完整 x/y/z placement 仅展开为与当前图谱不同的单轴 replace,并记录原路径与展开路径。底层 apply_graph_patch 仍禁止整段覆盖,因此规范化不能绕过安全边界。
  • 每轮候选图谱先重新编译;编译问题数高于上一已接受版本时保留旧图谱并返回结构化回归反馈,不让问题数反弹的修复继续污染后续轮次。
  • 本地最终完整回归 187 项通过(236.066 秒),其中新增列表响应、稳定 ID/数字索引、完整 placement 单轴展开、畸形与无变化响应拒绝等覆盖。
  • 服务器确认生产 Chat API 活动任务、等待任务、持久队列均为 0 后,仅在 /tmp/dalongxia-cad-v85-eI8HeF/probe-sideboard7 运行隔离原图试验;未修改生产文件、未重启服务、未读取公司 BOM。
  • 同一组四张原图仍正确固定 1200×400×800mm 和 top=1、bottom=1、side=2、door=2、shelf=1、leg=4。五轮编译问题 57→52→35→30→15,CAD B-rep 冲突 11→16→9→12→3;最终仍有门/五金总成边界、一个门把手断联、背板与层板以及左侧板与铰链穿插,状态仍为 graph_and_cad_kernel_not_passed。
  • 该结果证明修复链可消费反馈并总体收敛,但没有通过制造门禁、没有生成可交付报价,也没有完成不同公司产品盲测或冻结后总成本误差≤5%。

2026-09-07 v91-v96 五金安装语义与端到端防回退(候选,未上线)

  • v90仍把旋钮、铰链等五金当作普通长方体。它们只要伸出总成边界就会被判越界,移进板内又会被判穿插;编译器也无法区分“合法安装嵌入”和“误碰撞”。本轮为所有functional_role=hardware实例增加显式mountings,每条安装声明宿主、安装方式(表装/埋入/贯穿)、合法板面、嵌入深度和原图证据。没有安装关系、宿主不存在、选了板件窄边、切入深度不符或切向没有正面积重叠时均阻断。
  • 五金安装通过后才进入装配连通图;只有已验证的表装五金允许伸出结构件紧包围盒,只有已验证的埋入/贯穿安装允许与对应宿主发生体积交叠。其他零件碰撞仍按原规则阻断,不以“五金”身份整体豁免。
  • v91隔离试验暴露“提示模型自己猜安装面”不可行:首轮10条安装关系仅2条有效,之后编译问题50→39后反复回退。该提示路线判定失败并停止。
  • 编译反馈现按已求解几何给出compatible_mounting_values,只列宿主真实板面及对应安装方式/深度;实体冲突反馈给出按最小位移排序的compatible_separation_candidates。单成员总成的位移候选会同时给出总成bounds_mm补丁,避免只挪零件后制造新的边界错误。
  • v92隔离试验使10条五金安装全部有效,编译问题48→29→7;但第4轮虽然编译问题继续降到5,B-rep冲突却从11增到15,证明只按编译问题数选修复会接受总体更差的CAD。该“编译单指标单调”路线判定不足。
  • 修复接受条件改为编译、制造、B-rep与视觉阻塞项的端到端总数必须严格下降。新增--resume-report从历史报告选择总阻塞最少且轮次最新的检查点,并用当前编译器重新生成反馈,避免重新读图、继承旧反馈或从错误轮次继续。
  • v93因早期回归提示错误引用候选问题而停止;v94因续跑检查点沿用旧编译反馈而停止;v95因位移候选先按碰撞数排序,首选出现578mm不合理侧板平移而停止。三次均为隔离systemd单元,修正相应通用机制后才继续,没有覆盖生产文件或用户任务。
  • v96从v92第3轮检查点恢复,不重新读取原图且保持company_bom_used_in_inference=false。端到端阻塞18→12→10;后续模型试图一次改货架、4个铰链和2个旋钮,编译问题由3反弹到20,被事务门拒绝并保留第5轮图谱。报告位于/tmp/dalongxia-cad-v85-eI8HeF/probe-sideboard13/sideboard/report.json,最终仍未通过。
  • v96还暴露两个未解决的真实边界:一是表装/埋入五金在结构编译器合法后,CAD实体仍是完整盒体,B-rep层尚未生成宿主安装孔/槽;二是样例深度链存在语义歧义,门厚20mm、层板深380mm、背板厚9mm与400mm总深无法在当前“所有实体必须包含于同一外包络”的假设下同时无穿插放置。必须先增加参考外形与实际外形/覆盖门语义或尺寸可行性裁决,不能靠移动板件伪造通过。
  • 最终候选代码专项60项通过(0.063秒),完整回归196项通过(236.111秒);续跑会跳过所有带patch_error的拒绝轮次,编译早退仅在“编译问题下界已不可能优于已接受端到端总分”时触发。测试通过只证明防回退和既有功能未回退,不改变本次真实样例仍失败的结论。
  • 本轮保持候选状态:五金挂载和修复事务更可靠,但生产级连接特征、真实多产品盲测以及冻结后成本误差≤5%均未完成,禁止标记成功或部署。

2026-09-07 v97-v101 安装碰撞去噪与尺寸可行性门禁(候选,未上线)

  • v96第5轮图谱的B-rep原始复核有8个碰撞,其中6个是已经结构编译器验证的铰链/拉手埋入安装,不应指令AI把五金移离宿主。候选CAD构建现只从宿主减去这些已验证安装的诊断包围盒;其production_feature=false,不冒充真实铰杯孔、沉孔或孔位模板。
  • 服务器隔离目录mount-clearance-v97实体检验证明:6个合法安装干涉被排除后,STEP仍保留18个实体且单体有效,内核只返回层板/背板1个真实冲突,体积208800mm³。这证明去噪没有吞掉无关结构错误。
  • v97首次续跑暴露引擎封装层可能保留旧干涉结果,且相对STEP路径在切换cwd后被重复拼接。修复后对当前STEP直接执行inspect interfere --format json,优先解析stdout机器结果,现场稳定返回['shelf_inst','back_panel_inst'],不再降级为泛化内核错误。
  • v100续跑复现了往返摆动:层板向前移开背板后立即与左右门板冲突,端到端阻塞仍为4,候选被事务门禁拒绝。根因是当前图纸同时给出总深400mm、门厚20mm、层板深380mm、背板厚9mm,在单一实体外包络假设下无法仅靠前后平移无冲突放置。
  • 编译器新增精确单轴区间扣减:在所属总成/产品允许边界内,计算移动件不与所有切向相交实体碰撞的全部下坐标区间。该样例层板Y轴允许区间[0,20]被门板与背板完全覆盖;背板Y轴[0,391]也无可行子区间,因此返回minimum_separation_axis_infeasible=true,不再把局部位移候选误当成解。
  • v101从同一已审计检查点隔离续跑,刷新基线为3个编译阻塞+1个真实内核碰撞。AI一轮修复产生11个编译问题,被拒绝后立即停止;最终状态geometry_dead_end_requires_focused_source_adjudication,仅执行1轮,没有再循环。下一交互节点必须先由AI聚焦复核外形口径、覆盖/内嵌关系、零件深度或明确避让加工;仍无法消解时只问用户一个聚焦问题。
  • 最终完整回归205项全部通过(239.624秒)。以上现场运行均为/tmp隔离试验,每次启动前确认真实Chat API活动、等待、持久队列均为0;未覆盖生产文件、未重启生产服务。真实多产品盲测、生产级孔位模板和冻结后成本误差≤5%仍未完成。

2026-09-08 v102-v104 尺寸口径证据门与用户问题收敛(候选,未上线)

  • 新增实际占用包络与参考包络双层语义。原图账本仍默认核对实际占用外形;把某一轴改判为柜体/开口参考尺寸时,必须由会话事实或本轮原图独立裁决授权,不能由待修复图谱自证。参考包络越出实际占用外形会被阻断。
  • v102隔离运行正确识别尺寸源冲突,但向用户暴露过多内部技术描述并给出会扩大占用空间的错误方案;v103虽拦截内部术语,仍把问题降到层板/背板局部尺寸,遗漏更上游的“总深是否包含柜门”口径。两轮均作为失败证据保留,未交付用户。
  • v104启动前服务器只读检查为active=0 waiting=0 dewu_busy=0 dewu_queue=0 durable_inflight=0。从同一已审计v96检查点恢复,只执行一轮:基线3个编译阻塞和1个真实B-rep冲突;AI候选造成11个编译问题被拒绝;随后进入一次聚焦原图裁决,没有继续前后移动循环。
  • v104多模态模型连续2次仍因选项过长未通过输出校验,系统明确记录focused_source_adjudication_error,并使用deterministic_dead_end_question_fallback安全收口为一个问题:“尺寸图标注的总深 400mm,是否包含柜门厚度?”,选项仅为“包含柜门(成品最外尺寸)”与“不包含柜门(只算柜体/框架)”。报告位于服务器隔离目录/tmp/dalongxia-cad-v85-eI8HeF/probe-sideboard19/sideboard/report.json。
  • 本地新增参考尺寸证据门、问题优先级、焦点不匹配拒绝和确定性兜底专项检查后,结构图谱/制造层74项通过;最终候选完整回归210项通过(235.977秒)。v104仍不等于图像裁决或制造模型通过,生产服务未改、未重启。

2026-09-08 v105-v112 用户事实续跑、视觉复核净化与五金安装原子修复(候选,未上线)

  • 续跑接口新增结构化 scope_facts。用户已经回答“总深不包含柜门”后,该事实绑定到原尺寸证据的 Y 轴,程序把 400mm 柜体参考范围投影为门前沿 0mm、柜体 20–420mm、实际占用深度 420mm;只有端到端阻塞总数严格下降才接受,重复续跑保持幂等,不再重复询问同一个口径问题。
  • v105 暴露旧续跑仍会重新询问已回答问题;修复后,阻塞清空时直接进入制造编译、真实 STEP 构建和视觉复核,不再发起没有待修项的模型“修复”。
  • v106 在尺寸口径解除后收敛到 3 个问题:层板与背板的非结构接触被误生成连接,以及背板先被左右侧板加宽后,顶/底板槽仍使用旧净宽,造成两处真实 B-rep 干涉。后续发散轮次被事务门拒绝,没有覆盖较好检查点。
  • 制造规划改为只在被捕获薄板的边真正进入另一板件宽面时生成槽;层板/隔板边仅抵到背板宽面时记为 non_structural_abutment,不产生虚构螺钉、槽或成本。所有入槽余量累计完成后,再按最终嵌入板制造尺寸重算每个承载槽,消除迭代顺序导致的槽宽不足。v107 对 v106 最佳检查点重新编译后,结构、制造和 B-rep 阻塞均为 0。
  • v108 隔离进程未继承视觉模型凭据,旧逻辑把配置缺失误当几何错误并进入修复循环。现在将其分类为不可重试的 model_credentials_missing,交给运行时配置层处理,不污染图谱,也不重复请求模型。
  • v109 的视觉模型输出自相矛盾:一边声称层板、铰链、旋钮无需修改,一边把它们列为问题;还试图用透视照片估算覆盖尺寸图明确给出的 40mm 腿高。视觉复核现仅接受枚举问题码、有效原图证据、可执行修正;尺寸差异必须同时给出 expected_mm 和 actual_mm 且真实不一致。声明“无需修改”的行、超长推理文本和无数值尺寸意见全部丢弃并记录审计,精确尺寸账本优先于照片透视感受。
  • 人工查看 v109 四视图发现右门两只铰链仍位于中缝,尽管编译器把它们声明为安装在右侧板。根因是旧 actual_embed 使用硬件到安装面的无界距离,远离宿主 528mm 的铰链也能伪装成贯穿安装。现改为硬件与宿主厚度区间的真实交集并限制最大嵌入深度;只有存在实际空间接触的安装面才兼容。v110 因此稳定阻断两只错误铰链,未被 B-rep“无冲突”假通过。
  • v111 证明只给模型安装方式候选仍不足:模型只改 through/embed/face 声明而不移动实体,事务门正确拒绝。系统随后为无简单候选的五金生成原子候选集,把单轴位置、安装方式、安装面和嵌入深度绑成一组;每组必须先经完整图谱重编译并严格减少阻塞,视觉模型只能从原图支持的整组候选中选择,不能仅改声明绕过校验。
  • v112 从同一审计检查点选择右侧板候选后,结构、制造、B-rep和净化后的视觉阻塞均为 0;报告状态为 candidate_visual_pass_requires_independent_acceptance,没有自动宣告成功。人工独立查看最终正视和等轴视图后仍判定不合格:铰链虽从中缝移到左右外侧,但被画成横跨门板/侧板的长方体“贯穿件”,与家具暗铰链的铰杯、底座及孔位工艺不符。这证明几何合法不等于五金工艺语义正确。
  • 本轮明确记录的失败路线:让模型只修改五金安装元数据;用通用长方体代替具体铰链家族;把视觉模型无证据的透视估算当尺寸修正;把运行时凭据缺失交给几何重试。后续不得重复这些做法,应增加有证据的五金家族/安装模板(例如铰杯直径与深度、门板杯孔、侧板底座孔距)并用原图或用户确认选择具体模板。
  • v112 仍只是一组人工生成样例的隔离验证,未使用公司 BOM 参与推理、未修改生产服务。不同公司产品盲测、组装/零件外观独立验收、生产级五金孔位与冻结报价后总成本误差不超过 5%仍未完成,接口状态必须保持测试失败/继续优化。

2026-09-08 v113 五金家族模板与生产孔型门禁(候选,未上线)

  • v112 人工验收失败的直接原因不是铰链位置单轴偏差,而是表示层仍把暗铰链和旋钮当作任意长方体。移动长方体直到包围盒接触宿主只能让几何门变绿,不能得到铰杯、底座、连接臂、螺钉孔或可采购件数量;该路线正式停止,不再生成旧式 compatible_placement_patches 修复模板五金。
  • 新增版本化 hardware_catalog.py,首批模板为 35mm 暗铰链(TH52、系统32公开参考)与 M4 单孔旋钮。模型只能选择稳定 hardware_family / hardware_template_id,并为每个模板槽声明真实宿主、安装广面、模板规定的安装方式和嵌入深度、产品坐标孔型中心及原图证据。缺模板、模板家族不匹配、槽缺失/重复、旋钮整件贯穿、铰杯边距越界、底座不在37mm系统线均阻断。
  • 五金可视几何不再使用占位盒:暗铰链由铰杯圆柱、安装底座和两段正交连接臂组成,旋钮由表装圆柱组成;1×1×1 只保留为不可计价声明占位。模板挂载对宿主的合法相交由槽位门单独证明,未挂载的其他实体仍经过碰撞门。
  • 制造层按模板在宿主板上生成真实孔型。每只暗铰链恰好生成 1 个 35mm 铰杯孔、2 个 TH52 固定孔和 2 个系统32底座孔;每只旋钮恰好生成 1 个 4.5mm 螺钉通孔。采购五金每个物理实例只计一次,五金可视包围盒不会进入板材下料 BOM、接触推导或再次生成确认螺钉/木螺钉。
  • 公开模板保留 public_reference_draft 警告,未映射公司实际采购 SKU 前,制造结果状态只能是 manufacturing_draft_unapproved_hardware,禁止冒充公司已批准生产孔型。
  • 本地新增/改写 12 项五金专项验证并通过;最终完整回归 226 项全部通过(253.672 秒),Python 语法、git diff --check 与技能结构校验均通过。四个运行文件已同步到服务器 /tmp/dalongxia-cad-v85-eI8HeF 隔离目录,SHA-256 与本机完全一致且服务器静态编译通过。
  • 同步时服务器只读状态为 active=0 waiting=0,但另有 1 个得物1688持久任务执行中;因此本轮没有启动模型推理、没有覆盖生产文件、没有重启服务。真实 STEP/GLB 与 B-rep 五金模板构建仍须在服务器完全空闲后验证。
  • 真实多产品盲测、原图与组装/拆件独立验收、公司实际五金 SKU 批准,以及冻结估价后逐项和总成本误差不超过 5%仍未完成;候选不能部署或标记成功。

2026-09-08 v114 五金复合实体 B-rep 验收(候选,未上线)

  • 服务器等待门严格等到真实 Chat API 活动、排队、得物1688未终态批次和持久任务全为 0;两个残留浏览器 busy 标记经连续闲置检查被确认为 stale。之后只在 /tmp/dalongxia-cad-v85-eI8HeF 运行隔离验证,没有修改生产目录、重启或部署服务。
  • 第一次真实 STEP 验收失败:结构编译和单测都通过,但导出器把同一只铰链的铰杯、底座和两段连接臂作为四个独立实体;OCCT 因此将连接臂与自身底座的正常搭接报为 2 组干涉(511.9999mm³ 与 319.9999mm³)。这一失败没有被算作通过,也没有通过放宽干涉容差规避。
  • 导出器现在会先将一个采购五金模板内的几何基元布尔合并为单一实体,再与门板、侧板等家具实体做权威干涉检查。结构层同时将铰链臂放在门板 Y=18mm 和侧板 X=18mm 的安装面外侧,仅允许铰杯进入已生成的 35mm 铰杯孔。
  • 第二次服务器真实内核验收通过:铰链生成 113053 字节 STEP 和 61632 字节 GLB,孔工序数为 5;旋钮生成 30274 字节 STEP 和 21168 字节 GLB,孔工序数为 1。两个样例的 B-rep 都为零干涉,报告在服务器 hardware-template-brep-v113-fused/report.json。
  • 本地结构图谱与制造层 91 项专项回归通过;最终完整回归 227 项全部通过(233.019秒,其中 1 项真实内核用例按设计仅在服务器开关启用时执行),Python 语法和 git diff --check 通过。
  • 仍未完成公司实际五金 SKU 模板批准、原始多图到 v2 图谱的新识别、多产品冻结后 BOM/成本盲测和总成本误差不超过 5%。本版仍是未部署候选,不得用以上样例通过替代真实多产品验收。

2026-09-08 v115-v116 原图重跑与模型鉴权终止门(候选,未上线)

  • v115 启动前持续只读检查服务器真实任务状态;先等待正在执行的得物1688任务完成,确认 Chat API 活动、等待队列和持久任务均为 0 后,才在 /tmp/dalongxia-cad-v85-eI8HeF 使用四张原始产品图启动全新识别。没有复用公司 BOM、旧报告或历史模型结果,也没有修改生产目录、重启或部署服务。
  • v115 在进入 CAD 前被阿里云模型接口以 HTTP 401 invalid_api_key 拒绝。服务器密钥文件存在、权限为 600,且其内容指纹与用户最近提供的密钥完全一致;对同一接口的最小请求也稳定返回 401,证明这是远端鉴权凭据失效,不是任务缺图、缺尺寸或本地环境未加载密钥。
  • 旧异常分支把结构读图的 401 吞成普通机器重读失败,随后继续做尺寸完整性判断,最终误报为缺少 x/y/z 轴并可能引导用户补传素材。这条“鉴权失败后继续资格判断”的路线判定错误,已停止使用。
  • v116 将 401/403 单独归类为不可重试的 model_credentials_invalid。模型请求只执行一次,源资格层立即以 external_dependency_failed 终止,不再重复请求模型,也不再向用户虚构缺图、缺尺寸或 CAD 问题。服务器隔离现场耗时 3.753 秒,返回中文阻塞信息“读图模型已拒绝当前鉴权凭据”。
  • 候选完整回归 229 项通过(246.290 秒),1 项真实 CAD 内核用例按设计因本机未启用服务器依赖而跳过;新增专项测试验证 401 只请求一次、鉴权失败不进入读图/CAD循环。v115 因外部鉴权阻塞,尚未实际验证上一轮分阶段 CAD 修复门能否在这组原图上完成收敛,不能宣称原图重跑成功。
  • 当前仍需新的有效阿里云模型密钥才能继续多视图识别、CAD/BOM冻结盲测和公司成本误差不超过 5% 的目标。本轮候选未上线、未重启生产服务,接口状态必须保持测试失败/继续优化。

2026-09-08 v117 本地多模态输出上限审计与截断终止门(候选,未上线)

  • 在生产 Chat API 活动、等待、得物任务与持久队列连续为空后,服务器仅在 /tmp/dalongxia-cad-v85-eI8HeF 使用原始四图启动全新隔离试验;没有读取公司 BOM、旧图谱或旧模型响应,company_bom_used_in_inference=false,没有修改生产目录或重启服务。
  • 本地 Gemma4 多模态服务正确复读出整体宽 1200mm、深 400mm、高 800mm,三轴均有两次独立证据且置信度为 1.0;但结构专项响应在第 72 行被截断为未闭合字符串,五轮图谱请求也全部返回空或不可解析 JSON,故没有生成可验收 CAD/BOM。
  • 现场核对服务端实现后确认根因:调用方请求 3072–8192 tokens,服务却用 GEMMA_LOCAL_MAX_NEW_TOKENS=512 静默钳制输出,并且无论是否触顶都返回 finish_reason=stop。因此旧逻辑把确定的容量不足误判为偶发 JSON 格式问题,重复提交同一个过大的结构任务;这条“原样重试五轮”路线正式判定失败。
  • 通用请求层现在同时识别显式 finish_reason=length 与“未闭合 JSON + 完成 token 正好落在常见隐藏上限 + 请求量至少为其两倍”的静默截断证据。命中后立即抛出 model_output_truncated,责任层标记为 model_gateway_capacity 且不可原样重试;普通短小畸形 JSON 仍保留最多三次格式重试,不会把所有格式错误都误判成容量问题。
  • 新增测试覆盖 401 终止、512-token 假 stop 只请求一次、短畸形 JSON 仍执行有界重试,以及探针把截断归类为外部模型网关容量问题。最终完整回归 231 项通过(234.508 秒),1 项真实 CAD 内核用例按设计因本机未启用服务器依赖而跳过。
  • 该修复只根治截断后的无效循环和错误归因,不代表 Gemma4 已具备长结构图谱生成能力,更不代表原图结构、CAD、BOM或成本通过。下一步必须把高层视觉识别拆成可验证的小型结构事实,再由确定性参数/装配编译器生成 CAD;或者接入可返回完整长 JSON 的有效多模态网关。不同公司产品冻结后盲测与总成本误差不超过 5% 仍未完成。

2026-09-08 v119 阿里云新凭据与真实截断终止验收(候选,未上线)

  • 用户提供的新阿里云密钥已原子写入服务器受限密钥文件,文件权限保持 600、运行账户归属不变;未回显密钥。对阿里云兼容接口的最小 qwen-plus 请求返回 HTTP 200,证明 v115 的 invalid_api_key 阻塞已经解除。引擎按请求动态读取密钥文件,因此没有重启生产服务,也没有中断正在执行的业务任务。
  • 随后仅在 /tmp/dalongxia-cad-v85-eI8HeF 使用同一组四张原始产品图运行一轮 qwen-vl-plus 隔离资格审查;没有调用公司 BOM,company_bom_used_in_inference=false,也没有写入生产目录。
  • 真实响应在结构事实 JSON 第 193 行附近未闭合,尺寸专项响应返回 2300 tokens 后同样未闭合。候选请求层将其归类为 model_output_truncated,责任层为 model_gateway_capacity、retryable=false;报告 rounds=[],证明没有再进入图谱轮次或重复调用。
  • 该现场结果验证了“截断即终止、不循环、不误生成 CAD/BOM”的通用修复,但也证明当前大而全的结构事实提示仍超过模型有效输出边界。下一步不再提升原样重试次数,而是把多视图识别拆成装配概览、柜体板件、门抽/五金和尺寸账本等小型独立事实,再由确定性参数化编译器合并并执行跨事实一致性门禁。
  • 本次仍未生成可验收 CAD/BOM,未部署候选;不同公司产品冻结后盲测、部件/孔槽/五金完整性以及总成本误差不超过 5% 均未完成,测试状态继续保持失败。