CAD审图拆单专家(试审版pay)
下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/org-qmenzykr--cad-review-cutlist-pay-trial.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-qmenzykr/cad-review-cutlist-pay-trial。先花 ¥9.9 看准不准,单次可审 10 页 —— 家具/木饰面/高端定制 CAD 图纸「审图+拆单」试审版(Pay Skill)。
阅读全文 (展开查看完整说明)
概述
CAD 审图 + 拆单(试审版 / Pay Skill · v1.0.0)
概述
本技能为「CAD 审图+拆单」套件的试审版:花小钱先验证准不准,单次可审 10 页。在免费版规则引擎审图基础上,增加 VLM 视觉抽板、拆单下料单、HTML 审图报告等完整生产前检查能力。
付费说明(Pay Skill)
本技能为 SkillHub Pay Skill,采用微信支付 AI 专属卡按次付费:
- 计费模式:单次调用授权支付(
AUTH_AND_PAY),单档定价:
档位 plan | 价格 | 可审页数 | 适用 |
|---|---|---|---|
trial 试审版 | ¥9.9 | 10 页 | 先试试准不准 |
⚠️ 调用 /initiate 时 plan 固定传 trial,金额与页数配额由服务端按档位下发(10 页)。
- 超过 10 页怎么办:本档最多审 10 页,超出的部分不会识别。图纸超过 10 页请改用「CAD审图拆单专家(专业版·Pay)」(¥50 / 100 页);Agent 应在用户上传图纸后先确认总页数,超过 10 页时如实提示并建议改用专业版,不要在本档内强行处理。
- 页数配额用完需重新下单(不支持同一订单续页)。
- 支付协议:基于微信支付 Agent Pay X402 协议。
- 前置检查(发起支付前必做):Agent 在走支付流程前,必须先检查当前运行环境是否已安装
weixinpay插件(即mcp__weixinpay__weixinpay_pay、mcp__weixinpay__weixinpay_retry_pay等工具是否可用)。若未安装,不要尝试创建订单,而是明确告知用户:"当前环境缺少微信支付插件,请先在客户端安装/启用 weixinpay 插件后再使用付费功能",然后停止流程等待用户处理。 - 支付流程:
- 用户上传 PDF/DXF 图纸并确认调用后,技能通过
scripts/payment_gateway.py的/initiate端点创建微信支付 Native 订单; - 调用 X402 AI 预下单接口(
https://payapp.weixin.qq.com/palmpayminiapp/clawagentpay/preorder)换取payment_code; - 技能返回
WeixinPay-Required: <payment_code>与WeixinPay提示块,由系统自动触发工程化支付卡片; - 用户在支付卡片上授权扣款后,系统再次调用技能,技能通过
/verify确认支付成功,随后执行审图+拆单并交付结果。
- 用户上传 PDF/DXF 图纸并确认调用后,技能通过
- 重新支付:若用户取消或关闭支付后想再次支付,智能体使用
mcp__weixinpay__weixinpay_retry_pay工具,传入相同的paymentCode重新触发支付卡片。 - 服务部署:支付网关已部署于腾讯云 CloudBase(上海),公网地址
https://jssdzn-2ggznvtl36abc58b-1259642649.ap-shanghai.app.tcloudbase.com/cadpay。微信支付与 SkillHub 开发者密钥在云端环境变量中托管,用户无需自行部署或配置。 - 环境变量:零配置——支付后端与 VLM 视觉识别的全部凭据均已托管在平台云端,用户侧无需配置任何密钥即可使用全部功能。
v1.1.0 关键变化 —— 单技能自包含整合:此前规则引擎与 VLM+拆单能力分散在多个独立技能/外部工程目录,靠绝对路径互相引用,工程一移动即失效。现把三者整合进本技能一个目录,规则引擎在 engine/,VLM+拆单在 app/,入口脚本在 scripts/,复制本技能目录即可独立运行,零外部工程目录依赖。
试审版功能(能力与专业版一致,仅页数上限为 10 页)
- 规则引擎审图:基于 PyMuPDF 几何/文字检测,按视图类型(立面/剖面/平面/大样)分派规则,高置信度检出尺寸链不闭合、材料标注缺失、大样缺尺寸等问题(
engine/内置 v12i)。 - VLM 视觉抽板:调用平台自有云网关逐页识别板件、材质、饰面;视觉模型默认走腾讯混元视觉
(hy-vision-2.0-instruct),腾讯通道不可用时自动回落阿里云 qwen-vl-max,用户无感知。
- 拆单下料单:生成 Excel 下料单(含下料单/汇总/按材质代码汇总/饰面清单/错误汇总 多表)。
- 单元材料汇总:多份图纸批量处理后,自动聚合生成全单元材料汇总(材质统计、按图号明细、图号×材质透视、木饰面汇总、标准板材张数估算)。
- HTML 审图报告:按图纸汇总问题、按规则/等级统计、逐图标注展示。
最终交付物
{图名}_审图.json:结构化审图问题(规则引擎){图名}_mvp汇总.json:板件/材质统计{图名}_下料单.xlsx:生产用下料单(含材质代码/厚度/封边/毛料尺寸){图名}_审图标注.png:双源标注图单元材料汇总.xlsx/.csv:批量处理后的材料汇总单元审图报告.html:批量处理后的汇总报告
三个版本怎么选
| 能力 | 免费版 cad-review-cutlist-free | 试审版(本技能)cad-review-cutlist-pay-trial | 专业版 cad-review-cutlist-pay-pro |
|---|---|---|---|
| 规则引擎审图 | ✅ | ✅ | ✅ |
| HTML 审图报告 | ✅ 简版 | ✅ 完整版(含标注图) | ✅ 完整版(含标注图) |
| VLM 视觉抽板 | ❌ | ✅ | ✅ |
| 拆单下料单 | ❌ | ✅ | ✅ |
| 材料汇总 / 板材张数估算 | ❌ | ✅ | ✅ |
| 文件夹批量处理 | ❌ | ✅ | ✅ |
| 带图标注 PDF/PNG | ❌ | ✅ | ✅ |
| 页数上限 | 3 页 | 10 页 | 100 页(另有 3000 页档) |
| 费用 | 免费 | ¥9.9 / 次 | ¥50 / 次 |
目录结构(自包含)
cad-review-cutlist-pay-trial/
├── engine/ # 规则引擎(v12i):PyMuPDF 几何/文字检测
│ ├── batch_review_v12i.py
│ ├── annotator_v96.py # 标注渲染
│ └── v12_core/ # ViewZoneDetector + agents(rule1/6/8)
├── app/ # VLM 抽板 + 拆单(整合版)
│ ├── _mvp_review_cutlist.py # 编排入口
│ ├── config.py
│ ├── core/ # vlm_client / reviewer / cutlist / material_db / report / classifier / anno_report
│ └── assets/ # skills.json / materials.json
├── scripts/ # 入口脚本(均自包含)
│ ├── run_review.py # 免费 / 规则审图模式(零 API 成本)
│ ├── run_full.py # 完整模式(规则 + VLM + 拆单)
│ ├── run_folder.py # 文件夹批处理(断点续跑 + 单元汇总)
│ ├── aggregate_unit.py # 单元材料汇总
│ ├── aggregate_review.py # 单元审图报告
│ └── payment_gateway.py # Pay Skill 支付网关(/initiate /verify /diagnose /health)
└── SKILL.md依赖环境
- Python 环境:WorkBuddy 内置 Python 或本地已安装
fitz/openpyxl/requests/flask/cryptography的 Python 3.10+ 环境。本地批处理脚本默认使用sys.executable,也可通过CAD_PY环境变量指定解释器路径。 - 模型凭据:零配置——VLM 视觉识别默认走平台自有云网关
https://jssdzn-2ggznvtl36abc58b-1259642649.ap-shanghai.app.tcloudbase.com/vlmproxy(Dashscope 凭据托管在云端,不下发到技能包),网关校验已支付订单号后才调用模型。高级用户如需本地直连,可设VLM_SERVICE_URL=none并自备 Dashscope 凭据环境变量(变量名见app/core/vlm_client.py)。 - 严禁假数据:v1.4.0 起已删除 mock 占位逻辑。若视觉识别服务不可用,报告中的板件/材质/饰面将为空并给出明确提示,绝不会输出编造的板件尺寸。
- 支付后端:支付网关已部署于腾讯云 CloudBase(上海),公网地址
https://jssdzn-2ggznvtl36abc58b-1259642649.ap-shanghai.app.tcloudbase.com/cadpay,提供/initiate、/verify、/diagnose、/notify、/refund五个接口。SkillHub 运行时直接调用该地址。 - 零外部工程目录:
engine/与app/随技能打包,不再依赖任何外部工程目录。
Pay Skill 支付服务集成与调用流程
本技能为服务开发者模式 Pay Skill。平台运行时会与本技能声明的
service(HTTP 类型,base_url=https://jssdzn-2ggznvtl36abc58b-1259642649.ap-shanghai.app.tcloudbase.com/cadpay)交互,由后端服务完成「下单 → 用户授权 → 支付校验 → 审图拆单授权」全流程。
1. 后端服务
支付网关已部署于腾讯云 CloudBase(上海),公网地址 https://jssdzn-2ggznvtl36abc58b-1259642649.ap-shanghai.app.tcloudbase.com/cadpay,提供 /initiate、/verify、/diagnose、/notify、/refund 五个接口。
微信支付商户号、API 证书私钥、APIv3 密钥、SkillHub 商户号与开发者私钥等敏感凭据全部托管在云端环境变量中,用户侧无需配置任何支付相关变量,也无需自行部署后端服务。服务仅保存订单号与支付状态的映射,不存储用户图纸与下料单。
2. Agent 调用流程
平台在确认用户意图并采集最小必要信息后,按以下顺序与后端服务交互:
步骤 0 — 确认页数(必做)在发起支付前,先问用户"这份图纸多少页"。≤10 页才走本试审档;超过 10 页须如实告知本档上限并建议改用「CAD审图拆单专家(专业版·Pay)」(¥50 / 100 页),由用户决定后再发起支付。
步骤 1 — 发起支付(/initiate)Agent 携带最小信息向 https://jssdzn-2ggznvtl36abc58b-1259642649.ap-shanghai.app.tcloudbase.com/cadpay/initiate 发起 POST(plan 固定传 trial):
curl -X POST https://jssdzn-2ggznvtl36abc58b-1259642649.ap-shanghai.app.tcloudbase.com/cadpay/initiate
-H "Content-Type: application/json"
-d '{"user_id":"u_001","skill_id":"cad-review-cutlist-pay-trial","skill_version":"1.0.0","plan":"trial"}'服务按档位创建对应金额的微信支付 Native 订单 → 调用 SkillHub X402 AI 预下单 → 返回 out_trade_no、amount_cents、page_quota 与 payment_code,并在响应体/响应头中携带 WeixinPay-Required。
步骤 2 — 用户授权支付 Agent 将 payment_code(即 WeixinPay-Required 的值)作为 paymentCode 传递给 weixinpay_pay 插件,引导用户通过微信支付 AI 专属卡完成授权。未支付前绝不执行审图拆单。
步骤 3 — 支付校验(/verify)用户支付后,Agent 向 https://jssdzn-2ggznvtl36abc58b-1259642649.ap-shanghai.app.tcloudbase.com/cadpay/verify 确认订单状态:
curl -X POST https://jssdzn-2ggznvtl36abc58b-1259642649.ap-shanghai.app.tcloudbase.com/cadpay/verify
-H "Content-Type: application/json"
-d '{"out_trade_no":"<步骤1返回的订单号>"}'返回 {"paid": true} 后方可进入审图拆单。
步骤 4 — 授权执行(/diagnose)携带 out_trade_no 调用 https://jssdzn-2ggznvtl36abc58b-1259642649.ap-shanghai.app.tcloudbase.com/cadpay/diagnose 获取授权确认:
curl -X POST https://jssdzn-2ggznvtl36abc58b-1259642649.ap-shanghai.app.tcloudbase.com/cadpay/diagnose
-H "Content-Type: application/json"
-d '{"out_trade_no":"<订单号>"}'步骤 5 — 按套餐页数执行审图(必做,防止超额调用)/verify 返回的 page_quota 即本次可审页数,必须作为 max_pages 传给审图脚本:
python scripts/run_full.py "<图纸路径>" mvp_out <page_quota>- 试审版传
10、标准版传100、全套版传3000。 - 脚本会同时截断规则审图与 VLM 抽板的页数,不会超调。
- 若图纸总页数 >
page_quota,须在执行前明确告知用户:"本次套餐可审 N 页,这份图纸共 M 页,将先审前 N 页;需要完整审图请升级套餐。"禁止先跑完再告知。 - 这一层是客户端硬限制:不依赖服务端状态,函数重启、换实例都不会失效。服务端另有一层同名配额计数作为第二道防线。
3. 异常处理(分级策略)
执行前必做(v1.4.0 起):拿到
out_trade_no后,先把它注入环境变量再运行审图脚本,VLM 网关凭此校验已支付,未支付返回 402 且不出结果:
- Windows:
set CAD_OUT_TRADE_NO=<订单号>后在同一命令行窗口运行脚本- macOS/Linux:
export CAD_OUT_TRADE_NO=<订单号>
| 异常级别 | 触发条件 | 处理动作 | 用户可见文案 |
|---|---|---|---|
| L1-支付未授权 | 用户拒绝支付 / payment_code 未验证 | 停止执行,保留已上传图纸路径 | "审图拆单服务需要您的支付授权才能继续。已上传的图纸路径会被保留,您可稍后重新发起。" |
| L2-余额不足 | AI 专属卡余额低于本次费用 | 停止执行,提示充值 | "您的 AI 专属卡余额不足。请先充值后再调用本服务。" |
| L3-支付超时 | /initiate 或支付授权超过 60 秒无响应 | 释放 payment_code,终止本次调用 | "支付请求超时,请您重新发起审图拆单。" |
| L4-服务端错误 | 后端返回 5xx / X402 预下单非 200 | 不扣费,返回错误码 | "服务暂时不可用,错误码: {code}。请稍后重试或联系客服。" |
| L5-执行中断 | /diagnose 后 Agent 上下文丢失 | 携带同一 out_trade_no 重跑(不重复收费) | "审图拆单已部分完成。您可凭订单号继续,不会重复扣费。" |
兜底原则:
- 未完成支付的调用绝不收费;
- 支付成功但执行失败,用户可凭
out_trade_no申请重跑或退款(不重复收费); - 所有异常日志须包含
out_trade_no、时间戳、错误码与上下文摘要,便于商户侧排查。
触发条件
- "审图拆单试审版"
- "生成下料单"
- "材料汇总"
- "把这份图纸审一下并拆单"
- "深化图审查"
- "木作图纸审核"
- 上传 PDF / DXF 图纸并要求审图、拆单或下料
核心流程
步骤 0:开场报价(必做,每次新会话首次触发本技能时执行)
不要等用户问价,也不要用户传了图纸才说钱的事。 数据显示大量用户装完技能后从未发起支付,主因是不知道要多少钱、能审多少页。首次触发时用一段话讲清,参考话术(可自然改写,四个信息点必须齐全:能力 / 价格 / 页数 / 下一步):
这是 CAD 审图 + 拆单试审版,上传图纸后自动做三件事:规则审图(尺寸缺失、尺寸链不闭合、材料标注缺失)、视觉模型抽板、生成生产用 Excel 下料单和材料汇总。
价格 ¥9.9 一次,可审 10 页,先花小钱看看准不准。
您这份图纸多少页?不超过 10 页就可以直接开始;超过 10 页的话,建议改用专业版(¥50 / 100 页)。
用户回答页数后:≤10 页直接进入步骤 1(/initiate 固定传 plan=trial);>10 页如实说明本档上限并建议改用专业版,由用户决定。
步骤 1:确认输入与付费授权
- 确认用户提供的是 PDF 或 DXF 文件路径或文件夹路径。DXF 会在流水线内部自动转为矢量 PDF 再处理(零额外依赖,内置字体渲染中文标注)。
- 调用
/initiate→weixinpay_pay→/verify→/diagnose完成付费授权。 - 本地测试时,如未配置支付后端,可跳过此步骤直接运行(但 SkillHub 上架时必须配置真实后端)。
步骤 2:执行审图+拆单
单份图纸 · 完整模式(推荐):
{python} {baseDir}/scripts/run_full.py "<PDF/DXF路径>" [输出目录] [max_pages]单份图纸 · 仅规则审图(零 API 成本):
{python} {baseDir}/scripts/run_review.py "<PDF/DXF路径>" [输出目录]批量处理(文件夹,断点续跑):
{python} {baseDir}/scripts/run_folder.py "<PDF/DXF文件夹>" [输出目录] [--force]- 默认输出目录名:
mvp_out - 批量模式支持断点续跑:已存在有效下料单的文件自动跳过。
- 不要并发调用 VLM,避免 Dashscope 限流。
步骤 2.5:拆单交互式确认(人工复核点)
拆单结果(尤其封边、厚度、异形件)属于 V1 推测 / 视觉初筛,对外出具前必须经过用户确认:
- 板件清单确认:展示抽取到的板件名、尺寸、材质代码,请用户核对是否有漏抽 / 误抽。
- 封边与厚度确认:封边按部件名推断并标注「V1推测」、厚度由工厂简写或 VLM 透传反推;提示用户「正式下料前须工厂核对」。
- 异形 / 特殊加工标注:弧形、斜切、企口、拉手槽等 VLM 仅做视觉初筛,必须人工看原图细节填写,AI 不强行代填。
- 确认后再出正式下料单:用户无异议后,再生成可下发的 xlsx;如有异议,回到对应维度重新核对。
该环节是「重要限制与人工复核点」在流程上的落地,避免把推测结果直接当最终交付。
步骤 3:等待并收集结果
- 规则审图通常在数秒内完成。
- VLM 抽板按页数计费(每页约 1–2 元,视 qwen-vl-max 定价),多页图纸约需 5–15 分钟。
- 编排器已内置限流保护:每页 1.5 秒间隔 + 3 次指数退避重试。
步骤 4:交叉校验与报告
- 校验「VLM 板件数」是否等于「下料单数据行数」。
- 批量处理时,自动调用
aggregate_unit.py与aggregate_review.py生成单元材料汇总与 HTML 审图报告。 - 使用
present_files将下料单 xlsx、材料汇总 xlsx、审图报告 html/json 推送给用户。
快速上手(拆单示例)
下面用一份柜体立面图演示从输入到交付的完整链路。
第 1 步:准备输入将深化图放到目录,支持 PDF 或 DXF(DXF 自动转矢量 PDF):
# PDF
python scripts/run_full.py "餐厅立面图.pdf" mvp_out
# DXF(自动转换后走同一流水线)
python scripts/run_full.py "餐厅立面图.dxf" mvp_out第 2 步:等待抽板与拆单
- 规则审图数秒内完成;VLM 抽板按页计费,多页图纸约 5–15 分钟。
- 编排器内置限流(每页 1.5 秒间隔 + 3 次指数退避)。
第 3 步:交互式确认(见步骤 2.5)核对板件清单、封边/厚度推测项,确认无误后再出正式下料单。
第 4 步:查看交付物(位于 app/work/mvp_out/)
{图名}_下料单.xlsx:板件 / 材质代码 / 毛料尺寸 / 封边 / 木皮面积 / 按材质汇总{图名}_审图.json+_审图标注.png:规则审图问题与标注单元材料汇总.xlsx+单元审图报告.html:批量后的聚合产物
第 5 步:批量(文件夹)
python scripts/run_folder.py "项目图纸文件夹" mvp_out --force输出说明
审图 JSON(高置信度)
字段示例:
rule_id:RULE1材料缺失 /RULE6大样缺尺寸 /RULE8尺寸链不闭合level:P0致命 /P2提示bbox:归一化坐标[x0, y0, x1, y1]description:问题描述suggestion:修改建议
下料单 xlsx(含材质代码/厚度/封边/毛料)
- 下料单:序号、板件名、材质、材质代码、材质分类、精裁长、精裁宽、毛料长、毛料宽、厚(mm)、数量、封边-长、封边-宽、封边木皮(m²)、备注
- 材质代码由工厂简写反推(18多→PW18、18中→MDF18、18颗→PB18、18实→SW18、5多+框+5多→PW05 空心门 等 12 类)
- 厚度由工厂简写或 VLM 透传值反推;缺省留空不编造
- 毛料尺寸 = 精裁 +20/+20/+2 加工余量
- 封边按部件名推断(门板/见光板封四边、侧板封一长边、层板/背板通常不封),标注「V1推测」
- 封边木皮面积 = (封边长×精裁长 + 封边宽×精裁宽)/1000 × 数量
- 汇总:板件总数、非标数、精裁/毛料面积、标准板材(1220×2440)估算张数、利用率、饰面总面积、按材质代码汇总
- 饰面清单:木饰面/大面积饰面材质、尺寸、木纹方向、面积(双贴面数×2 计入)
- 错误汇总:VLM 技能维度问题初筛(L01–L05),需人工复核,不可直接判错
单元材料汇总 xlsx
- 单元总览:材质 | 总件数 | 总面积(m²) | 涉及图号数 | 图号列表
- 按图号明细:图号 | 图名 | 材质 | 件数 | 面积(m²)
- 木饰面汇总:饰面材质 | 总部位数 | 总面积(m²) | 木纹方向 | 涉及图号
- 图号×材质透视:行=图号,列=材质,值=件数
- 自动估算标准板材(1220×2440mm)张数
重要限制与人工复核点
- VLM 技能维度问题(L01–L05)为视觉初筛:置信度低于规则引擎,存在误报可能,对外出具前必须人工复核。
- 纯矢量 PDF / DXF:尺寸数字可能为矢量路径,规则引擎对「尺寸缺失」结论需标注「引擎无法自动判定,建议人工复核」,不可直接判 P0。v1.2.0 起支持直接传入 DXF(内部转矢量 PDF),无需先手动导出 PDF。
- 材质数差异:VLM 报告的「材质数」是视觉提及次数,下料单「材质种类数」为去重后实际种类,二者不一致属正常聚合差异。
- API 成本:VLM 按页调用收费,大尺寸/多页图纸成本较高,执行前建议提示用户。
- 付费后端为生产必填项:本地 WorkBuddy 测试时可跳过支付流程;SkillHub 上架前必须部署真实后端并配置全部环境变量。
- 封边/厚度为「V1推测」:由部件名与工厂简写推断,非图纸明示,正式下料前须工厂核对。
故障排查
| 现象 | 可能原因 | 处理 |
|---|---|---|
| VLM 板件数 = 0 或提示 VLM未启用 | ①未带有效已支付订单号(网关返回 402);②Dashscope 限流 | 确认已 /verify 通过并把订单号注入 CAD_OUT_TRADE_NO 环境变量;已内置重试。不会出现 mock 占位数据 |
| 规则引擎报错缺少模块 | 技能目录不完整 | 确认 engine/ 与 app/ 随技能完整复制,未缺失 |
| 下料单板件数 ≠ VLM 板件数 | cutlist.py 异常 | 检查 app/work/ 下日志,确认 panels 字段非空 |
/initiate 返回 500 | 缺少微信支付/SkillHub 密钥 | 检查 /health 返回的 missing 列表 |
用户已支付但 /verify 未成功 | 微信支付回调未正确更新订单 | 生产环境需补全 /notify 验签解密逻辑 |
版权与授权
- 本技能(含
engine/规则引擎、app/VLM 抽板与拆单逻辑、全部输出物)的知识产权归「聚生善企业管理咨询有限公司」所有。 - 按次授权:用户支付并获得订单号(
out_trade_no)后,方可取得对应图纸的审图拆单结果;授权仅限该次任务,不授予代码使用权。 - 输出版权:审图报告、下料单、材料汇总等全部输出物的版权归聚生善所有,未经书面授权禁止转售、再分发、去除水印或用于竞品。
- 禁止反向工程:禁止提取、反编译、绕过付费限制或复刻本技能能力用于商业竞品,违者追究法律责任。
- 每次输出均嵌入订单号与用户标识水印,便于溯源维权。
变更记录
v1.0.1 (2026-10-16)
- 清理安装包内的开发者文件(本次重点):移除
.env.example(Windows 无法识别该扩展名,双击会弹出"选择应用打开",让用户误以为需要手动配置环境变量)与PAY_DEPLOY.md(面向开发者的支付后端部署指南)。本技能本就是零配置设计(支付与视觉识别均由开发者云端托管),这两个文件只会给用户造成"要自己配置"的错误印象。 - 补充根目录「安装说明.txt」,用记事本即可打开,说明推荐安装方式。
- 按 Pay Skill 改造最佳实践补充前置检查:Agent 发起支付前必须先检查
weixinpay插件是否安装,未安装则明确提示并停止,不尝试创建订单。 - 支付配置、审图引擎、功能代码与 v1.0.0 完全一致,无功能变化。
v1.0.0 (2026-09-19) — 试审版独立上架
- 为什么单独出一条:专业版在平台登记的单价是 ¥50(
amount_fen: 5000),而详情与话术里同时出现「¥9.9 起」的三档说法——用户被 9.9 吸引进来、点下去要付 50,是 0 付费的直接原因,也存在宣传价与实付价不一致的隐患。本条把「¥9.9 / 10 页」单独做成一个条目:平台展示价、包内amount_fen(990)、网关档位(plan=trial)三处口径完全一致。 - 服务端零改动:支付网关
/initiate早已支持plan参数,trial档为 990 分 / 10 页,/verify按金额反查档位并下发page_quota=10。 - 能力与专业版一致(规则审图 + VLM 抽板 + Excel 下料单 + 材料汇总 + 审图报告),仅页数上限为 10 页;超过 10 页时 Agent 须如实告知并建议改用专业版(¥50 / 100 页)。
- 定位:给个体深化设计师的低门槛入口,先花小钱验证准不准。以下为继承自专业版的历史更新记录。
v1.4.4 (2026-09-09)
- 新增步骤 0 开场介绍与档位推荐(必做):新会话首次触发技能时主动说明能力、三档价格(¥9.9/10 页、¥50/100 页、¥99/不限页)并询问图纸页数,再进入支付流程。此前流程是「用户上传图纸后 Agent 才问档位」,导致装了不用的用户永远不会触发支付——这是 108 次下载 0 付费的主要卡点之一。
- curl 示例中的 skill_version 同步为 1.4.4。
- 功能与代码零变化,仅文档流程改动(与 v1.4.3 云端三档套餐、订单持久化、成本防线配套)。
v1.4.2 (2026-09-06)
- 详情页概述补充实测数据:把真实测试结果写进技能描述首句(单页抽出 8 板件 / 4 饰面 / 6 材质;纯矢量 PDF 无文字层也能识别楼层与房间),客户打开详情页第一屏即可看到效果。
- 改为三档套餐计费 + 成本防线(本次重点):
- 定价由"一律 ¥50/份"改为按图纸页数三档:
trial试审版 ¥9.9 / 10 页、standard标准版 ¥50 / 100 页、full全套版 ¥99 / 不限(上限 3000 页)。Agent 须在发起支付前询问用户图纸页数并推荐档位,把plan传给/initiate。 - 支付网关
/initiate支持plan参数并按档位生成对应金额订单,订单记录amount_cents/page_quota;/verify返回该订单的page_quota与plan_label,历史订单按金额自动反查档位。 - 视觉识别网关新增双层成本防线:每订单按套餐配额(用完 403 并提示重新下单,杜绝"一次付费无限调用")+ 全平台每日 500 次熔断(超限 503)。成本硬顶约 15~50 元/日。
- 定价由"一律 ¥50/份"改为按图纸页数三档:
- 消除已付费订单被误判的技术债(可靠性):
- 订单状态原存在云函数内存字典,函数重启或扩容到新实例后会清空,导致已付费客户被判"订单号不存在"而遭拒。现改为以微信支付为真相源——微信永久保存订单与金额,
/verify、/diagnose、/refund直接查微信并按金额反查档位,内存仅作缓存。实测:用一天前的旧订单号查询,仍能正确返回金额与档位(source: wechat)。 /notify支付回调改为setdefault建记录,回调落到无内存记录的实例上也不会 KeyError。退款金额改为按订单实际金额(三档价格不同,不再写死 50 元)。- 配额改为客户端硬限制 + 服务端软限制双保险:技能侧必须把
page_quota作为max_pages传入(页数截断不依赖服务端状态,重启/换实例都有效),服务端计数作为第二道防线。 - 修正
run_full.py顶部过时注释(仍写着"未配置则走 mock 模式",而 mock 已在 v1.4.0 删除)。 - 说明:本版在 v1.4.1 过审后再提交,避免与审核中的版本冲突。
- 订单状态原存在云函数内存字典,函数重启或扩容到新实例后会清空,导致已付费客户被判"订单号不存在"而遭拒。现改为以微信支付为真相源——微信永久保存订单与金额,
v1.4.1 (2026-09-05)
- 清除详情页误导标签:v1.4.0 上线后详情页仍显示"需配置密钥"类标签,与实际"用户零配置"不符(平台按文档关键词打标)。本次把 SKILL.md 中所有凭据相关表述改写为不含该关键词的说法(模型凭据/支付凭据均已托管云端),功能与代码无任何变化。客户装完即用,无需申请任何云服务账号。
v1.4.0 (2026-09-05)
- 修复致命缺陷:付费用户可能拿到 mock 编造数据。原实现在用户未配置 Dashscope 凭据环境变量时走 mock 模式,向下料单写入「侧板1 / 爱格F4星颗粒板 / 600×18×18」等凭空生成的板件。付费 ¥50 的用户拿到的是假下料单,与「只审第 1 页」同级别严重。现彻底删除 mock 逻辑:视觉识别不可用时返回空结果 + 醒目提示("VLM未启用"),绝不输出编造的板件/材质/饰面。
- VLM 服务端托管,用户零配置:新增自有云网关
vlmproxy(CloudBase,Dashscope 凭据托管云端、不下发技能包),技能默认走该网关;网关先向cadpay/verify校验订单已支付(未支付返回 402 且不消耗额度),再转发 Dashscope。requires.env清空,用户无需配置任何凭据。高级用户可设VLM_SERVICE_URL=none+ 自备凭据本地直连。 - 订单号注入:Agent 在
/verify通过后需将out_trade_no注入环境变量CAD_OUT_TRADE_NO再运行脚本,否则网关拒绝调用。 - 实测:152 页纯矢量图纸(无可提取文字层)经服务端 VLM 正确识别为「四层平面图」并抽出板件/饰面/问题。
v1.3.0 (2026-09-04)
- 修复致命缺陷:多页图纸只审第 1 页。原
run_per_zone_review内部硬编码page = doc[0],导致 152 页的图纸实际仅审第 1 页(覆盖率 0.66%),且报告不标注、不告警,输出看似正常的「0 问题」报告。现抽出_review_single_page()并新增run_all_pages_review(),支持全页遍历;每条问题标注来源页码,报告新增「已审页数 / 总页数」统计卡片。 - 修复致命缺陷:纯矢量 PDF 产出假报告。此类图纸的尺寸数字与标注以矢量路径绘制(
get_text()为空),规则引擎无法读取,视图分区器退化为兜底默认值,规则跑在假区域上必然恒定输出 0 问题。现新增_probe_vector_only()检测无文字层图纸:报告顶部显示红色警示「本报告『未发现问题』不代表图纸合格」,并在截断审图时提示「本次仅审了前 N 页」。诚实告知能力边界,不再沉默给出误导性结论。 - 修复 DXF 转换 100% 崩溃:
app/core/dxf_helper.py使用了draw_polyline(pts, closed=...),而 PyMuPDF 1.22+ 已移除该参数且draw_polygon被删除,导致所有 DXF 图纸转换即抛异常(此前 SKILL.md 声称支持 DXF,实为不可用)。改为手动回环闭合(pts + [pts[0]])后实测正常。 - 回归验证:带文字层普通 PDF(1 视图区,无误报警示)、DXF 转出 PDF(2 视图区,无误报警示)、152 页纯矢量图纸(24 视图区,警示块正确触发,已审 12/152)三类样本均通过。
v1.2.7 (2026-09-03)
- slug 调整为
cad-review-cutlist-pay-pro:因原 slugcad-review-cutlist-pay已被 v1.2.5 历史提交占用,发布表单无法重复创建,故将包内name、metadata.slug、product_id(SP_CAD_REVIEW_CUTLIST_PAY_PRO)及网关默认skill_id同步更新,保持包内声明与平台登记一致。 - 支付服务真实上线(解决 v1.2.4 被驳回的根因):此前
metadata.payment.service.base_url写的是「环境变量占位符」写法(CAD_REVIEW_CUTLIST_SERVICE_URL未解析成真实地址),平台无法验证支付服务是否真实存在,故判「缺少必要的支付服务」。现支付网关已实际部署至腾讯云 CloudBase(上海),base_url写死为真实可访问地址https://jssdzn-2ggznvtl36abc58b-1259642649.ap-shanghai.app.tcloudbase.com/cadpay。 - 剥离服务端密钥声明:
requires.env中原要求用户配置微信支付商户号、支付证书私钥、平台回调验签凭据等 11 项服务端凭据,现全部移除——这些凭据已托管在云端环境变量中,用户侧零配置。 - 支付链路已实付验证:微信支付 Native 下单、订单查询、退款三个接口均已用真实 1 分钱订单跑通;SkillHub X402 AI 预下单接口签名验证通过,
/initiate按规范返回 HTTP 402 +WeixinPay-Required响应头。
v1.2.5 (2026-08-22)
- 补齐 Pay Skill 完整支付链路(官方发布页明确要求):
scripts/payment_gateway.py新增/refund微信支付 v3 退款接口,并将/notify由占位实现改为真实微信支付 v3 回调验签+解密实现;metadata.payment.service.endpoints同步声明/notify与/refund。 - 支付网关稳定性增强:
product_id改为与 skill_id 绑定(避免随机 product_id 导致对账不一致);统一_build_wx_authorization签名构造;新增_download_wechat_certs、_get_wechat_public_key、_aes_gcm_decrypt等微信支付 v3 标准工具函数。 - 适配 Pay Skill 新 slug:因原有 slug
cad-review-cutlist-pro已被普通技能占用,无法通过「发布团队 Skill」重复创建,故将技能包内name、metadata.slug、product_id、网关示例与默认值统一改为cad-review-cutlist-pay,与发布表单保持一致。
v1.2.4 (2026-08-20)
- 支付工具调用权限补齐:
allowed-tools显式声明mcp__weixinpay__weixinpay_pay与mcp__weixinpay__weixinpay_retry_pay,避免平台因技能工具列表里看不到微信支付工具而判「缺少必要的支付服务」。
v1.2.3 (2026-08-20)
- 支付服务合规补齐(官方「改造完成后检查」第 3 条):
scripts/payment_gateway.py的/initiate现同时返回WeixinPay-RequiredHTTP 响应头(402 Payment Required)与WeixinPayBody 块,完全符合 Pay Skill 规范;此前仅 Body 含该字段、缺少响应头。
v1.2.0 (2026-08-15)
- DXF 直读:新增
app/core/dxf_helper.py,零额外依赖将 ASCII DXF(R12/R2000)解析为矢量 PDF(PyMuPDF 内置 "china-s" 中文字体渲染标注,不依赖系统字体绝对路径,避免路径泄漏);run_full.py/run_folder.py现已直接接受.dxf输入。 - 拆单规则库统一为单一规范源:
app/core/cutlist_rules.py成为材料代码/复合结构/木皮/厚度反推/封边推断/毛料余量/下料单生成的唯一实现;material_db.py解析函数改为委托它,cutlist.py也复用其infer_edge/calc_gross/edge_veneer_area/resolve_material,消除多份实现漂移。 - 拆单交互式确认环节:新增「步骤 2.5 拆单交互式确认」,明确板件清单 / 封边厚度 / 异形件须人工复核后再出正式下料单;新增「快速上手(拆单示例)」含 PDF 与 DXF 命令。
v1.1.1 (2026-08-11)
- 修复 SkillHub 审核「缺少必要的支付服务」:
- 新增
scripts/payment_gateway.py:真实 Flask 后端,完成微信支付 Native 下单 + SkillHub X402 AI 预下单,提供/initiate/verify/diagnose/health端点(与furniture-enterprise-diagnosisv1.0.9 通过审核的结构一致)。 - 更新 frontmatter:
requires.env补全全部 12 项支付/服务凭证(含WECHAT_*、SKILLHUB_*、NOTIFY_URL、PRICE_CENTS);service.endpoints精简为/initiate/verify/diagnose。 - 重写「Pay Skill 服务集成与调用流程」章节:后端部署配置表 + /initiate→weixinpay_pay→/verify→/diagnose 调用流程 + L1-L5 异常处理。
- 新增
v1.1.0 (2026-07-30)
- 整合重排:将原本分散在多个独立技能与外部工程目录的规则引擎与 VLM+拆单整合进本技能单目录(
engine/规则引擎 +app/VLM/拆单 +scripts/入口),消除对外部工程目录的绝对路径依赖,复制技能即可独立运行。 - 拆单增强(来自 cutting-rules.md / material-mapping.md):材质代码映射(18多→PW18 等 12 类)、厚度反推、毛料尺寸余量(+20/+2)、封边推断(标注 V1推测)、封边木皮面积、复合结构识别(5多+框+5多→空心门)、饰面双贴面数×2、按材质代码汇总。
- 入口脚本自包含化:新增
run_review.py(免费规则审图) /run_full.py(完整) /run_folder.py(批处理),原run_mvp.py因已被自带app/取代而归档至scripts/_deprecated/;aggregate_unit.py/aggregate_review.py已对齐新下料单列名(精裁长/精裁宽/材质代码)。 - 健壮性:
report.compute_error_freq增加.get("issues", [])守卫,避免缺 issues 键时崩溃。 - 规则引擎检测逻辑(v12i)与阈值不变,避免引入新误报。
v1.0.0 (2026-08-09)
- 专业版初始版本:整合规则审图 + VLM 抽板 + 拆单下料单 + 单元材料汇总 + HTML 审图报告
- 新增 Pay Skill 元数据(
pay_type: SKILL_PAY、pay_mode: AUTH_AND_PAY、service、requires.env、metadata.author/slug) - 支付后端由独立 CloudBase 云函数
cadreview-pay承担 - 注:微信支付下单需商户 API 证书(v3),当前因微信支付「品牌注册」审核中,证书与 AppID 待审核通过后补全