Files
ctbjrj/ai助手/zcode预置/skills/dqb-xuanxing/SKILL.md
T

16 KiB
Raw Blame History

name, description
name description
dqb-xuanxing 成套报价软件选型页断路器筛选修正与替换技能。当用户要求"检查/筛选选型页异常的断路器规格""把异常型号修正/替换成规范型号""用XX系列替换断路器""帮我选型"等时使用。工作方式=一次拉清单+一次 LLM 批量判断→**确定性引擎(xuanxing.js)按《规格完全解析知识库》全维度匹配定价**→一次批量接口替换。只处理塑壳断路器和微型断路器;数量列绝对不许改动;**匹配不上就不替换**。

成套报价选型页断路器筛选修正(解析走知识库、匹配定价走确定性脚本)

★★塑壳断路器规格完全解析知识库(解析/纠错/匹配前必须逐位读懂)

型号语法总图(以 NXM-63S/33002 63A 板后接线 为例,从左到右)

段 实例 含义 说明
系列前缀 NXM 系列 与品牌共同定位目标系列
壳架 -63 壳架等级电流 标准档 16/20/32/63/100/125/140/160/250/400/630/800/1250/1600
分断代号 S 分断能力等级字母 S/H/J/C…(紧贴壳架数字后),基准价主要决定项
附件码 /33002 极数+脱扣+附件+用途 逐位见下表,位数因系列而异
额定电流 63A 整定电流 必须 ≤ 壳架
接线后缀 板后接线 接线方式 板前=无后缀(默认);价差大,见接线附件表

附件码逐位语义表(★用户 2026-09-25 确认:第 5 位是用途代号,不是脱扣方式)

位数 名称 取值域 含义
第1位 极数 2/3/4 2P/3P/4P(进码不打印"P"字)
第2位 脱扣器方式 2=电磁式 / 3=热磁(NM1B 叫复式脱扣器) 电子式不进码=独立系列名(NXMS/NXMSF 等电子式塑壳)
第3位 附件·十位 0无 / 1分励脱扣器 / 2辅助触头 / 3欠压脱扣器 / 4分励+辅助 / 5分励+欠压 / 6二组辅助触头 / 7辅助+欠压 附件代号主体
第4位 附件·个位 0无 / 8=叠报警触头 Y=预付费电表专用变体(10Y/48Y…)
第5位 用途代号 空(不写)=配电保护 / 2=电动机保护——仅此两种,不加价 ★第5位出现 0/1/3~9 均为不存在的型号

各系列附件码位数制(先判系列再用对应制解读)

位数制 代表系列 结构
4 位(主流) NXM/NM1/CDM/DZ20 极数+脱扣+附件十位+附件个位(3300/2300/3200/3320/3308/4300…)
5 位 同上带用途 4 位+用途代号(实证存在:33002/23002=…电动机保护)
1 位 老 NM10/NM1 0~8 附件码(极数脱扣另见规格他处)
3 位 NM2 300/308/320/328 = 极数+附件十位+附件个位
字母码 NM8/NM3DC/NM3FC/NXA AX辅助 AL报警 AXL辅助报警 SHT分励 SHTA分励+辅助 SHTB分励+辅助报警 UVT欠压 UVTD助吸欠压延时 ASUVT自吸欠压瞬时 MO电操机构 OF辅助 CC闭合电磁铁 KL钥匙锁——整串比对,不拆位

操作附件 / 接线附件 / 电压类附件(都在价格维度里,必须核对)

  • 操作附件:手柄直接操作=无后缀(默认)|Z=转动手柄操作|P=电动操作(另有"电操电压"独立维度,选 P 才有意义)。
  • 接线附件:板前接线=无后缀(默认)|板后接线(后缀"板后接线")|插入式(后缀"插入式")。价差大:NXM-63S/3300 63A 板前322 / 板后555 / 插入式821。
  • 电压类附件:分励电压/欠压电压/分励欠压电压=独立选型维度,影响组合价格但不进型号串(附件码含 1/3/5/7 分励欠压时才有意义)。
  • 附件变价实例:3300→3320(辅助触头)+41元;3300→3308(报警触头)+41元;用途位不加价(3300 与 33002 同价)。

实例判读库(正反例,匹配时就照这样判)

码 判读 结论
33002 3P+热磁+无附件+电动机保护 ✓ 真实型号
32008 第5位=8,用途代号仅可为空/2 ✗ 型号不存在
3300 3P+热磁+无附件(配电保护) ✓
3320 3P+热磁+辅助触头 ✓
3308 3P+热磁+报警触头 ✓
3200 3P+电磁式脱扣 ✓
23002 2P+热磁+无附件+电动机保护 ✓

各品牌型号语法速查(纠错识别通吃塑壳+微型,不局限于德力西/正泰)

品牌系 型号形态 识别要点
国标码系(正泰 NM/NXM/NM8、德力西 CDM/CDK、常熟 CM、人民 RMM、良信 NDM、天正 TGM、环宇 HUM、DZ20) NM8-125S/33002 100A 数字附件码 1~5 位;壳架在 - 后;引擎原生支持
ABB Tmax XT XT4N250/3340 200A、XT2N160 TMA 160 3p /3340 同国标码位语义;壳架在型号尾部(XT4N250,引擎通用兜底已认);TMA/TMD=热磁脱扣单元
施耐德 NSX/Compact、iC65/EA9 NSX100F TMD 100A 3P3D、iC65N B16 1P 壳架 NSX100F;TMD/MP=热磁、ETU/EtP=电子;3P3D=3极3保护(中性线带保护);微型曲线 B/C/D(B=照明防护)
西门子 3VA/3VL、5SU 3VA1113-4EE32-0AA0 订单号式:3VA1+框架规格码+-+结构码(极数/附件)+-+电压码——纠错时按西门样本翻译成 极数/电流/附件 再喂引擎
微型全系(DZ47 家族/NB/NXB/SH/iC65/5SJ/TXB…) DZ47sLE 1P+N C16 30mA 极数(含1P+N/3P+N)、曲线 C/D(施耐德系加 B)、电流、漏电 mA——引擎 v3 原生全维度匹配

纠错翻译规则(阶段① LLM 把非国标格式译成标准形再喂 --fix):

  • TMD/TMA/TM/D→热磁脱扣;ETU/EtP/E/Micrologic/电子→电子式脱扣(电子式≠附件码,进系列名)
  • 3P3D/4P4D=极数+中性线带保护→译成 3P/4P(若目标系列有 N 极可开闭选项,译 3P+N 由用户确认)
  • 订单号(西门子/ABB 老式)→查样本取 极数/In/附件,译成 系列-壳架/码 电流 形式;译不出把握的项留空不要编
  • OCR 噪声(D747s/e30mA/*/斜杠粘连)→按特征还原(引擎已内建噪声容忍,--fix 仅需处理品牌级错误)

★多型号批量编排(快速替换的通用形态,不局限一两种)

一键/批量任务的标准编排(AI 负责,引擎逐组跑):

  1. 拉清单 → 按行的品牌+类型分组(ABB 塑壳一组、德力西漏电微型一组、正泰普通微型一组…)
  2. 每组选目标系列:同品牌优先(元件库 get_data_search2 搜系列名,德力西=factId 1/正泰=2);库里没有的品牌组 → 默认问用户替换成哪家(会话里已指定则直接用)
  3. 逐组 node xuanxing.js <品牌> <系列> --dry(几秒一组)→ 合并各组方案表给用户(含组名=目标系列)
  4. 用户确认后逐组 --exec;跨品牌替换(ABB→德力西等)按知识库映射分断等级(N 36kA≈S 35kA 同级),映射不确定的行标注请用户确认
  5. 库里搜不到的系列/未定价系列:该组列"未定价"跳过,不阻塞其他组

粘连串拆分(CAD 扒图常见:码与电流无空格粘连)

规则:/ 后整段数字,枚举全部切分,电流段必须 ∈ 标准档位表 且 ≤ 壳架,码段必须通过上表语法域——切分不唯一或全部非法都按跳过处理:

粘连串 切分枚举 唯一解
/3300200A(壳架250) 3300+200A✓|33002+00A✗(00A非法电流) 3300 200A
/3200863A(壳架63) 3200+863A✗(863超壳架非档位)|32008+63A 切分合法但码32008非法 无有效解→整行跳过"型号不存在"
/3300140A(壳架160) 3300+140A✓(140∈档位) 3300 140A
/33002500A(壳架630) 3300+2500A✗(超壳架)|33002+500A✓ 33002 500A

★匹配判定铁律(用户 2026-09-25 要求,违反即事故)

  1. 匹配=全维度一致:壳架/分断代号/极数/脱扣方式/附件码(含用途位)/额定电流/接线方式,逐一命中才算匹配;表价必须取全维度命中行的价格。
  2. 码必须能被目标系列选项字典解释(spe_opt 选项标签是"码【含义】"双写格式,如 2【电磁式】、20【辅助触头】)——字典里没有该码=该系列无此型号→跳过不替换,禁止就近改成相近码(如 32008 改成 3300 去匹配)。
  3. 禁止硬选:不许电流上取一档、不许壳架升档、不许换到别的有价系列凑数。
  4. 匹配不上就不替换:跳过行必须在汇报里列明原因(如"32008 型号不存在""附件码 3320 不在 CDM3S 系列选项表")。
  5. 解析不出唯一合法解的行(粘连多解且都合法、乱码)→ 跳过并报告,不提交猜测。

★一键入口(AI助手面板的 ⚡ 按钮)

聊天面板右下角有"⚡ 读取选型规格并替换"按钮,点击会发送固定指令:

读取当前选型界面的规格并且帮我替换这些规格

收到这句(或用户手动输入同义语)= 直接执行下面完整三阶段流程,并遵守默认范围:

  • 默认只替换 塑壳断路器 和 微型断路器;
  • 其他任何类型一律不替换(隔离开关/万能式/接触器/熔断器/互感器/浪涌/风机等非断路器,仅识别后列进跳过汇报);
  • 打错/OCR 错的型号必须先按上方知识库识别纠正——纠错后确认属于塑壳/微断才替换;纠错后仍认不出归属的同样不替换;
  • 替换前仍按铁律 4 给《方案表》等用户说"执行"。

阶段① 一次拉清单 + 一次 LLM 批量判断(禁逐行问模型) 阶段②③ 跑确定性引擎 node xuanxing.js <品牌> <系列> --dry 出《方案表》(引擎内部按本知识库全维度匹配,结果稳定不随机)→ 用户确认 → --exec 真跑

★替换规则速查表(与元件库页面"替换"按钮逐条一致)

列 取值规则
元件名称 xin_pinming = 该系列树节点的 DustryName(同一系列所有规格共用)。★禁止把完整型号当品名传;实在拿不到 DustryName 可省略——软件自动按系列名去"XX系列"前缀补
规格 xin_guige = 规范完整型号(壳架数字+分断字母+/附件码 电流[ 接线后缀],如 CDM3S-250S/33002 200A、NXM-63S/3300 63A 板后接线)——附件码绝不可丢
表价 xin_biaojia = 全维度命中行的价格(引擎已按铁律匹配;手工路径也必须逐维度核对,禁止只对三元组)
采购系数 xin_xishu = 该系列在元件库页面已保存的本体折扣÷100(localStorage 键 __dqb折扣@<系列名> 的 bt 字段;无存档=100→系数1)。★每次任务现读,禁止沿用上次/记忆里的折扣
品牌 xin_pinpai = 系列(树/搜索)返回的厂家名
系列 xin_xilie = 树节点 SeriesName 原文(如 CDM3S系列塑壳断路器)
数量 ★绝不传、绝不改——接口会直接拒绝

★铁律

  1. 只处理 fenlei 为 "塑壳"/"微型" 的行;隔离开关 HGL/万能式/接触器/熔断器/fenlei=null 一律跳过并汇报(fenlei=null 但确是打错的断路器型号→按知识库纠错后再验,认出即放行)。
  2. 数量绝对不许动。
  3. 不执行任何直接 SQL;替换一律走 /api/replacebatch(或回落 /api/replace)。
  4. 修改前先给用户看《方案表》,用户说"执行/替换"再跑阶段②③。
  5. 解析与定价一律交给确定性引擎 xuanxing.js(v3,塑壳+微型都支持);接口层已接入附件码校验/表价>0/0行显式失败防线。每行只需:node xuanxing.js 品牌 系列 --dry → 核对 → --exec,禁止手工拼平表/逆向页面 JS。

前置

  • 成套报价软件运行中且已进项目(引擎/接口随软件自动起)。
  • 开始前自检(第一步必做):curl -s "http://127.0.0.1:18790/api/xuanxing?token=$TOKEN"——若返回 ok:false 且含"没有打开项目",先请用户在软件项目列表双击进入项目再继续,不要自己重试或绕过。
  • 若 2c 读折扣时 /api/page 返回"元件库页面未就绪"——请用户先点开软件的「元件库」页签(页面加载一次即可),再重试。
  • 令牌:cat ~/.zcode/chengtao/token.txt(主程序启动时自动生成,无需解析配置)
  • 主程序接口 http://127.0.0.1:18790(全部 ?token=);元件库数据 http://127.0.0.1:8080。

阶段①:筛选异常断路器行(秒级)

curl -s "http://127.0.0.1:18790/api/xuanxing?token=$TOKEN"

1a. 正则快筛可疑特征(缩小范围,不用逐行思考):

  • 电流粘连:/3300 或 /4300 后紧跟数字无空格(如 CDM3S-400F/3300400A)
  • 壳架≥2000 或非标准档
  • 极数缺失或写法混乱(无 P 也无 /3xxx /4xxx)
  • 前缀大小写混乱(CDM3s/CDM3S)、多余中文后缀、空格异常、乱字符(DZ4/PLE、e30mA)
  • fenlei=null 但含断路器特征(DZ/NM/NB/CM/NS 碎段、[1-4]P、C/D+数字、数字A、30mA 漏电标识)

1b. LLM 批量理解判断+纠错(按知识库逐位解读,禁逐行问模型): 对每个可疑行回答:①是不是塑壳/微型断路器 ②异常类型 ③纠错出规范完整型号(按语法总图+逐位语义表拆:极数/脱扣/附件/用途逐位写清,如 DZ4/PLE 1P+N C16A e30mA→德力西漏电微型 DZ47sLE 1P+N C16 30mA)④壳架/极数/电流。 ★附件码按"粘连串拆分"节枚举切分,切不出唯一合法解就标记跳过,不许猜。 纠错后的规范型号必须能被软件分类表认出——认不出说明纠错了,别提交。 产出方案给用户确认:

| 原规格 | 判断 | 异常 | 纠错后型号(逐位解读) |

阶段②③:确定性引擎匹配定价 + 批量替换(主路径)

先跑 dry 出《方案表》(引擎 v3 原生支持塑壳+微型断路器:塑壳按附件码全维度;微型按 极数(含1P+N/N极可开闭)/脱扣曲线(C·D)/额定电流/漏电mA 全维度,规范型号串按元件库页面 nameStr 规则自动拼装,含 OCR 噪声(e/*/斜杠)行与 fenlei=null 推断行;多配置价差自动取"无附件/标准"档并标注):

node "<本技能目录>/xuanxing.js" <品牌关键词> <系列关键词> --dry
# 例:node ~/.zcode/skills/../.zcode/skills/dqb-xuanxing/xuanxing.js 德力西 CDM3S --dry
# 微型(漏电/普通)系列同样直接跑:… 德力西 DZ47PLE --dry / … 德力西 DZ47s --dry
# 可选:--only "CDM3S-250F/3300200A" 只看一行;--fix 修正.json({"旧规格":"纠错后规格",...})

引擎输出:| 旧规格 | 要素解读 | 新型号 | 表价 | 系数 | 匹配明细 | + 跳过清单(含逐条原因:型号不存在/无全维度匹配行/多价歧义/未定价)。 AI 逐行核对 dry 方案表(要素解读与表价是否合理)→ 给用户看 → 用户说"执行"后:

node "<本技能目录>/xuanxing.js" <品牌关键词> <系列关键词> --exec

引擎 --exec 内部走一次 POST /api/replacebatch(单事务、折扣现读、失败项回落逐行 /api/replace)。不要再手工拼字典/逆向页面 JS——微型与塑壳都由引擎一条命令完成,手工路径已废弃。 提交仍走 /api/replacebatch(xin_pinming 必传=DustryName,协议同速查表)。

可视化模式(可选,仅当用户要求"看着一行行替换"):逐行 POST /api/selectselection + POST /api/editselection——慢一个量级,默认不用。

汇报格式

✅ 已批量修正 N 项(影响 M 个库行):
| 原规格(异常) | 新型号 | 码位解读 | 品名 | 表价 | 系数 | 影响 |
⏭️ 跳过/失败 K 项:| 规格 | 原因(型号不存在(码非法)/系列选项表无此码/无全维度匹配行/多解歧义/未定价系列/非断路器/接口拒绝原因) |

软件侧日志:<软件目录>/logs/ai助手_gateway.log(每次批量替换有一行汇总)。