基线:全量源码首提(D1 版本控制落地,含第一轮优化 B1-B4/A1/A4/缩放修复)

This commit is contained in:
dqb-dev
2026-10-01 22:15:22 +08:00
commit 1e65792b09
499 changed files with 204579 additions and 0 deletions
@@ -0,0 +1,62 @@
# 方案:AI 快筛异常断路器 + 选型页可视化替换流水线(快+准,不走 SQL)
## 一、需求拆解(按你的原话)
1. **快筛+理解判断**:AI 从选型页规格文本里筛出塑壳/微型断路器中**文本异常**的行(如 `CDM3S-400F/3300400A` 壳架电流粘连、`NM1-125/3300 100A` 脱扣码混写、疑似断路器但写法怪异),由 **LLM 理解判断**(不是死规则)它是不是断路器、异常在哪、正确型号应是什么
2. **不直接操作数据库**:替换不走 SQL UPDATE,改走**软件选型页的编辑业务链路**(与你手改选型页单元格完全同一条链)
3. **AI 点击选型界面对应行**:AI 选中选型页那行(你能看到行被选中、下方明细联动)——"页面定位"
4. **元件库负责选型取价**:元件库页面上选规格/读真实价格(页面真实渲染值),替换动作回到选型页执行
5. **元件库快速定位**:AI 在元件库页面快速定位目标系列/壳架/极数/电流(含反向:按软件选型行的规格在页面上自动选中对应选项)
## 二、总体架构(三阶段流水线)
```
阶段① AI 理解筛选(秒级,一次 LLM 调用)
GET /api/xuanxing 全量清单
→ 正则快筛可疑特征(电流粘连/3300后无空格/壳架>2000/前缀不在常见表…)缩小范围
→ GLM 批量理解判断:是断路器吗?异常类型?推断正确壳架/极数/电流
→ 产出《异常行清单+修正方案》给用户过目
阶段② 元件库取价(每行 1 次往返,~100ms)
/api/page 发一条组合 JS(在元件库页面上下文里):
fetch 页面同款接口拉目标系列价格平表(签名由技能脚本本地生成)
→ 页面内解码 → 返回 壳架×极数×电流×价格 平表
(可再发一条点击 JS 把对应选项点上——你要"看得见"就点,追求速度就跳过点击)
→ AI 按①的修正方案在平表里匹配 → 得到页面真实型号/价格/品名
阶段③ 选型页替换(走编辑链路,零 SQL,你能看到全过程)
POST /api/selectselection {name,guige} → 选型页该行被选中+滚动可见+下方明细联动(AI 的"手指"点在选型界面)
POST /api/editselection {定位键+新值} → 复刻"你在选型页手改单元格":
写 元件名称/规格/表价/采购系数/品牌/系列 → RecalcSelectionRow 行内重算
→ _selectionSummaryDirty 置脏 → SyncSelectionChangesToDb()(现有方法:按名称+规格全项目同步,
★SET 天然不含数量列)→ RefreshQuotePageAfterSelectionEdit(报价页/项目汇总刷新)
→ 选型页立即显示新值(绑定表就是显示表)
```
## 三、改动清单
**1. AI助手接口.cs 新增两接口**(零新 SQL,全部复用现有业务方法):
- `/api/selectselection`:UI Invoke 里遍历 `_selectionSummaryTable` 匹配行 → `advancedDataGridView1.CurrentCell` 选中 + `FirstDisplayedScrollingRowIndex` 滚动可见(自然触发 SelectionChanged→明细联动)
- `/api/editselection`:body={jiu_name,jiu_guige, xin_name?,xin_guige,xin_biaojia,xin_xishu,xin_pinpai,xin_xilie};定位行→逐列赋值(类型按列转换)→ `RecalcSelectionRow(i)` → 置脏 → `SyncSelectionChangesToDb()` → `RefreshQuotePageAfterSelectionEdit()`;拒绝任何数量字段(铁律);找不到定位行返回明确错误
- 新 SQL:无(SyncSelectionChangesToDb 为现有基线方法,其 UPDATE 本就全参数化且 SET 无数量列)
**2. 技能 SKILL.md 重写工作流**(dqb-xuanxing v3):
- 阶段①的快筛正则清单+LLM 判断提示词模板(一次批量判断,禁逐行问模型)
- 阶段②页面上下文取价 JS 模板(fetch+页面内解码平表,附现成片段;点选项作为可选视觉步骤)
- 阶段③ select+edit 组合节奏(每行两次 HTTP)
- 铁律不变:fenlei 只认塑壳/微型;数量绝不碰;结果对照表汇报
**3. 保留兼容**:/api/replaceall 保留(老路线备用),页面替换按钮链路不动
## 四、验证标准
1. csc 零错误;selectselection 点中行后选型页可见选中+明细联动(日志+用户目视)
2. editselection 替换一行:选型页立即变新值、库内全项目同名行同步、**数量逐位不变**、派生价正确——全走 SyncSelectionChangesToDb(diag 日志"[选型页] 已把 N 条元件修改写入数据库"为证)
3. 端到端:真实项目跑一轮"筛异常→取价→替换"(含 CDM3S-400F/3300400A 这类粘连行),修正为规范型号
4. 速度:50 行异常行全流程 ≤ 2 分钟(筛选 1 次 LLM + 每行 3 次 HTTP)
## 五、明确不做
- 不写任何新 SQL(Mimosa 参数绑定约束天然满足)
- 不动选型页现有 UI/编辑逻辑(纯复用)
- 不自动改"类型列"(保持原值,分类防线照旧)