Files

201 lines
16 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: dqb-xuanxing
description: 成套报价软件选型页断路器筛选修正与替换技能。当用户要求"检查/筛选选型页异常的断路器规格""把异常型号修正/替换成规范型号""用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` 同国标码位语义;壳架在型号尾部(XT4N**250**,引擎通用兜底已认);TMA/TMD=热磁脱扣单元 |
| 施耐德 NSX/Compact、iC65/EA9 | `NSX100F TMD 100A 3P3D`、`iC65N B16 1P` | 壳架 NSX**100**F;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。
## 阶段①:筛选异常断路器行(秒级)
```bash
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 推断行;多配置价差自动取"无附件/标准"档并标注):
```bash
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 方案表**(要素解读与表价是否合理)→ 给用户看 → 用户说"执行"后:
```bash
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`(每次批量替换有一行汇总)。