Skip to content

FA 一键诊断 — 类别 & 标签管理后台 PRD v4.0

前置阅读

版本记录

  • v1.0 (2026-06-17):初稿
  • v2.0 (2026-06-17):移除 System 编辑能力。System 改为纯只读展示,不再支持编辑/重命名。页面标题改为「系统标签配置」。Component 增删改不受影响。
  • v3.0 (2026-06-23):System 从固化转为可自定义(增删改)。新增 system_config 表(含 description / safety_tip / sort_order)、System CRUD API、前端 System 管理交互。N1 API 扩展为同时返回 systems + components。
  • v4.0 (2026-07-02):命名重构。System → 类别(Equipment Category),Component → 标签(Diagnosis Tag)。数据表 system_config 更名为 category_config。

1. 产品定位

目标用户:实施人员(项目接入时配置,日常几乎不操作)。

核心功能:管理「类别 + 标签」两级体系——类别是设备分类(如电气、暖通空调),标签是具体诊断打标对象(如 UPS、闸机)。两者均为整个诊断链路的基础数据来源,LLM 打标时 均从此获取。

设计原则

  • 极简:只有一套列表页面 + 两个弹窗表单(类别和标签),不做复杂交互
  • 可配置:实施人员按项目实际情况自定义类别(增删改)和标签(增删改)
  • 项目级:每个项目独立部署,配置仅影响本项目

2. 用户角色

角色标签权限类别权限
超级管理员可查看 + 编辑(新增/修改/删除)可查看 + 编辑(新增/修改/删除)
物业经理仅查看(按钮置灰)仅查看(按钮置灰)
运维工程师仅查看(按钮置灰)仅查看(按钮置灰)

3. 页面设计

3.1 整体布局

参考 fa-diagnosis.html 的左侧树 + 右侧工作区布局:

┌──────────────────────────────────────────────────────────────────┐
│  App Nav (顶部图标栏)                                              │
│  ┌──────────────────────────────────────────────────────────┐   │
│  │ 🧬语义  📦产品  🏢空间  💡设备  🔧诊断  ...           ⚙️ │   │
│  └──────────────────────────────────────────────────────────┘   │
├────────────┬─────────────────────────────────────────────────────┤
│  左侧树     │  右侧工作区                                          │
│            │                                                    │
│ ┌────────┐ │  ┌────────────────────────────────────────────┐   │
│ │标签配置 │ │  │ 首页 > 一键诊断 > 标签配置 > 全部          │   │
│ │        │ │  ├────────────────────────────────────────────┤   │
│ │ 全部    │ │  │ [搜索标签名称...       ]  [+ 新增标签]     │   │
│ │ 建筑结构 │ │  │                                            │   │
│ │ 电气    │ │  │ 所属类别    │ 标签名称       │ 操作        │   │
│ │ 弱电智能 │ │  │───────────┼────────────────┼──────────── │   │
│ │ 给排水  │ │  │ 电气       │ UPS            │ 编辑 删除   │   │
│ │ 暖通空调 │ │  │ 电气       │ 继电器         │ 编辑 删除   │   │
│ │ 消防安防 │ │  │ 给排水     │ 水泵           │ 编辑 删除   │   │
│ │ 专用设备 │ │  │ ...       │ ...            │ ...        │   │
│ │        │ │  ├────────────────────────────────────────────┤   │
│ │        │ │  │  共 38 个标签           上一页 1/2 下一页   │   │
│ │        │ │  └────────────────────────────────────────────┘   │
│ │        │ │                                                    │
│ │        │ │  ┌────────────────────────────────────────────┐   │
│ │        │ │  │ 📌 修改标签列表后,仅影响新提交的工单打标。   │   │
│ │        │ │  └────────────────────────────────────────────┘   │
│ └────────┘ │                                                    │
└────────────┴─────────────────────────────────────────────────────┘

顶部导航栏(App Nav)

  • 新增 🔧 诊断 图标入口,点击跳转到一键诊断管理页
  • 左侧菜单标题:「标签配置」

左侧树(Tree Sidebar)

┌──────────────┐
│ 标签配置      │
│              │
│ 全部 (38)    │  ← 默认选中,右侧显示所有标签
│ 建筑结构 (0)  │  ← hover 时右侧露出 ✏️ 🗑️ 操作按钮
│ 电气 (5)     │
│ 弱电智能化 (15)│
│ ...          │
│              │
│ [+ 新增类别]  │  ← 底部新增按钮
└──────────────┘

交互规则:

  • 「全部」始终在顶部,高亮选中态,始终无操作按钮
  • 所有类别节点从 category_config 表动态渲染(数据驱动,非硬编码)
  • 每个类别节点 hover 时右侧露出 ✏️ 编辑 / 🗑️ 删除 小图标,点击弹出对应弹窗
  • 每个类别节点右侧显示该分类下的标签数量
  • 「全部」的计数显示所有活跃标签总数
  • 底部 [+ 新增类别] 按钮,点击弹出新增类别弹窗
  • 右侧面包屑随选中项变化:首页 > 一键诊断 > 标签配置 > 电气
  • 右侧表格按所选类别过滤;选「全部」则不加过滤

3.2 右侧工作区 — 标签列表

首页 > 一键诊断 > 标签配置 > 电气

┌──────────────────────────────────────────────────────────┐
│  标签列表                                                  │
│                                                          │
│  [搜索标签...                       ]  [+ 新增标签]      │
│                                                          │
│  ┌─────────┬──────────────────┬────────────────────────────┬──────────┐   │
│  │ 类别    │ 标签名称         │ LLM 增强描述               │ 操作      │   │
│  ├─────────┼──────────────────┼────────────────────────────┼──────────┤   │
│  │ 电气    │ UPS              │ 不间断电源,含蓄电池组,常见│ 编辑 删除 │   │
│  │         │                  │ 品牌科士达/山特/施耐德      │          │   │
│  │ 电气    │ 配电采集模块      │ 配电柜数据采集终端,Modbus │ 编辑 删除 │   │
│  │         │                  │ RTU 协议,品牌安科瑞        │          │   │
│  │ 电气    │ 继电器           │ 电磁继电器/固态继电器,用于 │ 编辑 删除 │   │
│  │         │                  │ 控制回路通断,含触点/线圈    │          │   │
│  │ 给排水  │ 水泵             │ 离心泵/管道泵/热水循环泵,  │ 编辑 删除 │   │
│  │         │                  │ 含变频控制                  │          │   │
│  │ 弱电智能│ 闸机             │ 出入口通道控制设备,翼闸/   │ 编辑 删除 │   │
│  │         │                  │ 摆闸/三辊闸,品牌广宁/西莫罗 │          │   │
│  │  ...    │ ...              │ ...                        │ ...      │   │
│  └─────────┴──────────────────┴────────────────────────────┴──────────┘   │
│                                                          │
│  共 8 个标签                              1/1 页         │
│                                                          │
└──────────────────────────────────────────────────────────┘

┌──────────────────────────────────────────────────────────┐
│  📌 注意事项                                              │
│                                                          │
│  修改标签列表后,仅影响新提交的工单打标。                    │
└──────────────────────────────────────────────────────────┘

选中「全部」时:类别列展示每个标签所属的类别,表格按类别分组排序。

选中具体类别时:可隐藏类别列(因为默认所有行都是同一类别),或保留以保持表格一致性。

3.3 类别管理交互

3.3.1 新增/编辑类别弹窗

点击左侧树底部 [+ 新增类别] 或某个类别节点的 ✏️ 编辑图标,弹出类别表单弹窗:

┌─────────────────────────────────────┐
│  新增类别                      [✕]  │
├─────────────────────────────────────┤
│                                     │
│  类别名称 *                         │
│  ┌─────────────────────────────┐   │
│  │ 例:新能源系统                │   │
│  └─────────────────────────────┘   │
│                                     │
│  类别描述                           │
│  ┌─────────────────────────────┐   │
│  │ 描述该类包含的设备范围,       │   │
│  │ 帮助 LLM 识别分类边界         │   │
│  └─────────────────────────────┘   │
│                                     │
│  安全提示                           │
│  ┌─────────────────────────────┐   │
│  │ ⚠️ 排查前必须断电,           │   │
│  │ 遵守 LOTO 规程...             │   │
│  └─────────────────────────────┘   │
│  该提示注入诊断报告,约束 LLM 输出   │
│  安全相关的排查建议。不超过200字。    │
│                                     │
│  排序权重                           │
│  ┌─────────────────────────────┐   │
│  │ 2                            │   │
│  └─────────────────────────────┘   │
│  数字越小,在左侧树的排序越靠前       │
│                                     │
│         [取消]    [保存]            │
└─────────────────────────────────────┘

字段校验

字段必填校验规则
类别名称不超过 20 字;全局唯一
类别描述不超过 200 字
安全提示不超过 200 字
排序权重正整数,默认 0

安全提示说明:安全提示将作为 变量注入 N7 诊断生成 Prompt,用于指导 LLM 根据设备类别输出安全的排查建议。初始部署时已预填 6 个类别的安全提示(电气/给排水/暖通空调/消防安防/建筑结构/弱电智能化),专用设备默认为空,由实施人员根据项目情况自定义。

3.3.2 删除类别确认弹窗

点击类别节点的 🗑️ 删除图标,触发预检:

场景 A:类别下存在未删除的标签 → 阻止删除

┌─────────────────────────────────────┐
│  无法删除                      [✕]  │
├─────────────────────────────────────┤
│                                     │
│  「电气」下还有 5 个标签,无法删除:  │
│                                     │
│  · UPS                              │
│  · 配电采集模块                      │
│  · 继电器                           │
│  · 时序电源                         │
│  · 无线测温装置                     │
│                                     │
│  请先删除这些标签后再删除类别。       │
│                                     │
│           [知道了]                   │
└─────────────────────────────────────┘

场景 B:类别下无标签 → 正常确认删除

┌─────────────────────────────────────┐
│  确认删除                      [✕]  │
├─────────────────────────────────────┤
│                                     │
│  确定要删除类别「新能源系统」吗?      │
│                                     │
│  删除后:                            │
│  · 该类中的标签仍保留                 │
│  · 新工单打标不再使用此类             │
│  · 已打标为此类的历史工单不受影响      │
│  · 知识库中已标注的文档标签不受影响     │
│  · 可在系统日志中查看删除记录          │
│                                     │
│         [取消]    [确认删除]          │
└─────────────────────────────────────┘

删除为逻辑删除(is_deleted = true),保留数据库记录以维持历史工单标签和知识库文档标签的可追溯性。

3.4 新增 / 编辑标签弹窗

┌─────────────────────────────────────┐
│  新增标签                      [✕]  │
├─────────────────────────────────────┤
│                                     │
│  所属类别 *                         │
│  ┌─────────────────────────────┐   │
│  │ 请选择 ▼                    │   │
│  │  建筑结构                    │   │
│  │  电气                        │   │
│  │  弱电智能化                   │   │
│  │  ...                        │   │
│  └─────────────────────────────┘   │
│  下拉选项从 category_config 表动态获取│
│                                     │
│  标签名称 *                         │
│  ┌─────────────────────────────┐   │
│  │ 例:精密空调                  │   │
│  └─────────────────────────────┘   │
│                                     │
│  LLM 增强描述                       │
│  ┌─────────────────────────────┐   │
│  │ 机房恒温恒湿设备,常见品牌    │   │
│  │ 施耐德/维谛/艾默生,含压缩机  │   │
│  │ 冷凝器蒸发器室内外机          │   │
│  └─────────────────────────────┘   │
│                                     │
│  ──────────────────────────────    │
│  提示:LLM 增强描述会注入打标       │
│  Prompt,帮助 LLM 识别该标签的别    │
│  名、品牌、典型故障特征。不超过      │
│  100 字。                          │
│                                     │
│         [取消]    [保存]            │
│                                     │
└─────────────────────────────────────┘

字段校验

字段必填校验规则
所属类别下拉选择,不允许空
标签名称不超过 20 字;同一类别下不可重名

3.5 删除标签确认弹窗

┌─────────────────────────────────────┐
│  确认删除                     [✕]   │
├─────────────────────────────────────┤
│                                     │
│  确定要删除标签「配电监控平台」吗?    │
│                                     │
│  删除后:                            │
│  · 新工单打标不再使用此标签           │
│  · 已标注为此标签的历史工单不受影响    │
│  · 可在系统日志中查看删除记录         │
│                                     │
│         [取消]    [确认删除]         │
│                                     │
└─────────────────────────────────────┘

删除为逻辑删除(is_deleted = true),不在前端展示,但保留数据库记录以维持历史工单标签的可追溯性。


4. 数据模型

4.1 类别配置表(category_config

字段类型必填说明
idint自增主键
namestring类别名称,全局唯一
descriptionstring类别描述,帮助 LLM 理解该类包含的设备范围(≤200 字)
safety_tipstring安全提示,注入 N7 诊断报告 Prompt(≤200 字)
sort_orderint排序权重,左侧树按此升序排列(默认 0)
is_deletedbool逻辑删除标记,默认 false
created_atdatetime创建时间
updated_atdatetime更新时间

4.2 标签配置表

字段类型必填说明
idint自增主键
category_idint外键 → category_config.id
tagstring标签名称,同一 category_id 下唯一
llm_descriptionstringLLM 增强描述,帮助打标时判断(≤100 字)
is_deletedbool逻辑删除标记,默认 false
created_atdatetime创建时间
updated_atdatetime更新时间

数据模型变更说明:v4.0 将表名从 system_config 改为 category_config,字段 system_id 改为 category_id。这个变更影响两个层面的查询:

  • Dify APIGET /api/v1/diagnosis/classification-labels 返回字段名更新为 categoriestags
  • 管理后台 API:CRUD 接口使用 category_id 管理关联关系

4.3 默认数据(首次部署自动灌入)

类别初始数据(7 个,按 sort_order 排序):

namedescriptionsafety_tipsort_order
建筑结构建筑物本体结构相关设备,含门窗、幕墙、电梯井道等⚠️ 结构问题(裂缝/变形/沉降)优先评估安全风险,必要时立即围蔽上报。1
电气供配电系统设备,含变压器、配电柜、UPS、继电器等⚠️ 排查前必须断电,遵守 LOTO 规程;使用万用表前确认档位。2
弱电智能化弱电与智能化系统设备,含安防监控、门禁、传感器、会议系统等⚠️ 带电排查时注意弱电设备额定电压;网络设备重启前确认对其他系统无影响。3
给排水给水排水系统设备,含水泵、水表、液位计、漏水检测等⚠️ 排查前先关闭上游阀门,准备接水容器;潮湿环境注意防触电。4
暖通空调暖通空调系统设备,含冷水机组、精密空调、加湿设备等⚠️ 注意制冷剂管路高温/高压,佩戴防护手套;封闭空间注意通风。5
消防安防消防与安防系统设备,含火灾报警、气体灭火、巡更等⚠️ 操作消防主机前确认处于"维修模式",避免误触发联动设备。6
专用设备行业专用设备,含调音台、功放、音箱、中控主机等(空,由项目自定义)7

标签初始数据:基于 92 份运维文档标注结果提取的 38 个初始标签(详见 知识库文档元数据标注建议 的汇总表)。各标签的 category_id 指向上述对应类别的 id。


5. API 接口

5.1 获取分类标签(供 Dify Workflow 调用)

GET /api/v1/diagnosis/classification-labels

返回当前项目所有活跃的类别和标签列表(is_deleted = false)。此接口替代了 v2.0 的 GET /api/v1/diagnosis/components(不再使用独立 endpoints)。

响应

json
{
  "categories": [
    {"id": 1, "name": "建筑结构", "description": "建筑物本体结构相关设备,含门窗、幕墙、电梯井道等", "safety_tip": "⚠️ 结构问题(裂缝/变形/沉降)优先评估安全风险,必要时立即围蔽上报。"},
    {"id": 2, "name": "电气", "description": "供配电系统设备,含变压器、配电柜、UPS、继电器等", "safety_tip": "⚠️ 排查前必须断电,遵守 LOTO 规程;使用万用表前确认档位。"},
    {"id": 7, "name": "专用设备", "description": "行业专用设备,含调音台、功放、音箱、中控主机等", "safety_tip": ""}
  ],
  "tags": [
    {"category_id": 2, "category": "电气", "tag": "UPS", "description": "不间断电源,含蓄电池组,常见品牌科士达/山特/施耐德"},
    {"category_id": 2, "category": "电气", "tag": "继电器", "description": "电磁继电器/固态继电器,用于控制回路通断"},
    {"category_id": 6, "category": "给排水", "tag": "水泵", "description": "离心泵/管道泵/热水循环泵,含变频控制"},
    ...
  ]
}

categories 数组按 sort_order 升序。tags 数组中的 category 字段是冗余展示名,方便 Dify Prompt 直接引用,无需二次 JOIN。

5.2 类别管理后台 CRUD

方法路径说明
GET/api/v1/admin/categories列表(按 sort_order 排序;默认过滤已删除)
POST/api/v1/admin/categories新增
PUT/api/v1/admin/categories/:id编辑(名称、描述、安全提示、排序权重均可改)
DELETE/api/v1/admin/categories/:id逻辑删除(is_deleted = true

删除约束:删除类别前需校验是否存在 is_deleted = false 的标签关联该类。若有则拒绝删除,返回状态码 409 Conflictbody 中列出阻止删除的标签名称列表。

POST / PUT 请求体

json
{
  "name": "新能源系统",
  "description": "光伏、储能相关设备",
  "safety_tip": "⚠️ 光伏组件直流高压危险,操作前确认逆变器已关断。",
  "sort_order": 8
}

5.3 标签管理后台 CRUD

方法路径说明
GET/api/v1/admin/tags列表(支持类别筛选 + 名称搜索;默认过滤已删除)
POST/api/v1/admin/tags新增
PUT/api/v1/admin/tags/:id编辑
DELETE/api/v1/admin/tags/:id逻辑删除(is_deleted = true

v4.0 变更:标签的 category 字段由直接的 string 改为 category_id 外键。管理后台标签表单中的类别下拉选项从 category_config 表动态加载(is_deleted = false 的活跃类别)。

5.4 暂不支持

  • 历史工单重打标:修改标签列表后,仅影响新提交的工单打标。历史工单标签不做回刷(token 消耗过大),重打标方案将在 Dify 编排阶段另行设计。

6. 交互流程

6.1 实施人员接入新项目

1. 登录管理后台
2. 点击顶部导航栏「🔧 诊断」图标
3. 【类别检查】左侧树查看当前设备分类:
   ├── 默认 7 个:建筑结构、电气、弱电智能化、给排水、暖通空调、消防安防、专用设备
   ├── 多出来的→点击 ✏️ 编辑改名或合并,或点击 🗑️ 删除
   ├── 缺少的→点击底部「+ 新增类别」,填写名称、描述、安全提示、排序
   └── 排序不对→编辑调整 sort_order
4. 【标签检查】选中每个类别,对照项目实际设备清单:
   ├── 多出来的→逐个删除(逻辑删除)
   ├── 缺的→新增(选类别 → 填名称 → 保存)
   └── 叫法不一致的→编辑改名
5. 配置完成。新增的类别和标签即时生效,新工单打标将使用最新标签体系。

6.2 权限控制流程

用户访问标签配置页
  → 后端校验用户角色
  → 超级管理员: 类别 + 标签均可查看与编辑
  → 物业经理/运维工程师: 类别 + 标签均仅查看(按钮置灰)

7. 非功能需求

需求说明
响应时间列表页加载 < 1s
删除约束删除类别前检查是否存在未删除的标签(硬约束,阻止删除);删除标签前检查是否有工单引用了该标签(软约束,仅提示不阻止)
审计日志类别 + 标签的新增/编辑/删除操作均记录操作人和时间
逻辑删除删除后数据保留在库(is_deleted = true),API 和前端均不展示,但历史工单标签可追溯

文档版本:v4.0创建日期:2026-06-17最后更新:2026-07-02作者:孙强

Released under the Private License.