16 KiB
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 负责,引擎逐组跑):
- 拉清单 → 按行的品牌+类型分组(ABB 塑壳一组、德力西漏电微型一组、正泰普通微型一组…)
- 每组选目标系列:同品牌优先(元件库
get_data_search2搜系列名,德力西=factId 1/正泰=2);库里没有的品牌组 → 默认问用户替换成哪家(会话里已指定则直接用) - 逐组
node xuanxing.js <品牌> <系列> --dry(几秒一组)→ 合并各组方案表给用户(含组名=目标系列) - 用户确认后逐组
--exec;跨品牌替换(ABB→德力西等)按知识库映射分断等级(N 36kA≈S 35kA 同级),映射不确定的行标注请用户确认 - 库里搜不到的系列/未定价系列:该组列"未定价"跳过,不阻塞其他组
粘连串拆分(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 要求,违反即事故)
- 匹配=全维度一致:壳架/分断代号/极数/脱扣方式/附件码(含用途位)/额定电流/接线方式,逐一命中才算匹配;表价必须取全维度命中行的价格。
- 码必须能被目标系列选项字典解释(spe_opt 选项标签是"码【含义】"双写格式,如
2【电磁式】、20【辅助触头】)——字典里没有该码=该系列无此型号→跳过不替换,禁止就近改成相近码(如 32008 改成 3300 去匹配)。 - 禁止硬选:不许电流上取一档、不许壳架升档、不许换到别的有价系列凑数。
- 匹配不上就不替换:跳过行必须在汇报里列明原因(如"32008 型号不存在""附件码 3320 不在 CDM3S 系列选项表")。
- 解析不出唯一合法解的行(粘连多解且都合法、乱码)→ 跳过并报告,不提交猜测。
★一键入口(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系列塑壳断路器) |
| 数量 | ★绝不传、绝不改——接口会直接拒绝 |
★铁律
- 只处理 fenlei 为 "塑壳"/"微型" 的行;隔离开关 HGL/万能式/接触器/熔断器/fenlei=null 一律跳过并汇报(fenlei=null 但确是打错的断路器型号→按知识库纠错后再验,认出即放行)。
- 数量绝对不许动。
- 不执行任何直接 SQL;替换一律走
/api/replacebatch(或回落/api/replace)。 - 修改前先给用户看《方案表》,用户说"执行/替换"再跑阶段②③。
- 解析与定价一律交给确定性引擎 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(每次批量替换有一行汇总)。