Skip to content

FA 一键诊断 — 前端 PRD v1.1

前置阅读

版本记录

  • v1.0 (2026-06-17):初稿
  • v1.1 (2026-06-17):去置信度展示;诊断内容改为 LLM 统一 Markdown 输出不做结构化拆分;参考文档改为 G-Cite 折叠引用栏;统一所有状态的前端展示逻辑;反馈简化为仅点赞/踩

1. 入口

1.1 工单详情页

「一键诊断」按钮放置在工单详情页的操作区,与「接单」「转派」等同级。

┌──────────────────────────────────────────────────────────────┐
│  工单详情                                    [#WO-2026-0892] │
├──────────────────────────────────────────────────────────────┤
│                                                              │
│  报修对象:G馆1楼入口闸机                                      │
│  报修位置:博览中心 G馆 1F                                     │
│  故障描述:G馆1楼入口闸机翼臂无法升降,人员无法通行。             │
│  等级:一般                                                    │
│  状态:待处理                                                  │
│                                                              │
│  ┌──────────────────────────────────────────────────────┐   │
│  │ 操作区                                                │   │
│  │                                                      │   │
│  │ [接单]  [转派]  [一键诊断]  [更多]                     │   │
│  └──────────────────────────────────────────────────────┘   │
│                                                              │
│  ┌──────────────────────────────────────────────────────┐   │
│  │                  诊断结果区                            │   │
│  └──────────────────────────────────────────────────────┘   │
│                                                              │
└──────────────────────────────────────────────────────────────┘

按钮状态

状态外观
默认主色填充按钮 [一键诊断]
诊断中按钮置灰 + loading 动画 [诊断中...]
诊断完成恢复默认,结果区已展示
诊断失败恢复默认 + Toast 提示

2. 结果展示

2.1 统一展示模式

前端不做结构化拆分(不区分"安全提示""可能原因""排查步骤"等)。诊断内容由 Dify LLM 统一输出为 Markdown,前端直接渲染。这样做的好处:

  • 前端逻辑统一,无论有无 RAG 匹配、置信度高低,都是同一套渲染
  • Prompt 迭代时不需要同步改前端
  • 与 QA G-Cite 的 Markdown 渲染保持一致
┌──────────────────────────────────────────────────────────────┐
│  一键诊断结果                              [收起]  [刷新]     │
├──────────────────────────────────────────────────────────────┤
│                                                              │
│  ┌──────────────────────────────────────────────────────┐   │
│  │ 弱电智能化 > 闸机 > 无法升降                          │   │
│  │ ℹ️ 工单描述较模糊,分类结果可能不准确                     │   │  ← 仅低置信度时显示
│  └──────────────────────────────────────────────────────┘   │
│                                                              │
│  ┌─ 诊断建议 ──────────────────────────────────────────┐    │
│  │                                                    │    │
│  │ (LLM 输出的 Markdown 正文,直接渲染)                │    │
│  │                                                    │    │
│  │ 安全提示:排查前注意弱电设备额定电压...               │    │
│  │                                                    │    │
│  │ ## 可能原因                                        │    │
│  │ 1. 伺服电机驱动器参数漂移                            │    │
│  │ 2. 红外感应器被异物遮挡                              │    │
│  │ ...                                                │    │
│  │                                                    │    │
│  │ ## 排查步骤                                        │    │
│  │ 1. 断开闸机电源,等待 30 秒后重新上电                 │    │
│  │ ...                                                │    │
│  │                                                    │    │
│  │ 本建议仅供参考,如有疑难请升级处理。                  │    │
│  │                                                    │    │
│  └────────────────────────────────────────────────────┘    │
│                                                              │
│  ┌─ 引用来源(2)                          [展开 ▼] ────┐   │
│  └────────────────────────────────────────────────────┘    │
│                                                              │
│  这个诊断对你有帮助吗?         [有帮助]  [无帮助]             │
│                                                              │
└──────────────────────────────────────────────────────────────┘

2.2 分类标签栏

状态展示说明
正常弱电智能化 > 闸机 > 无法升降绿色/蓝色标签
低置信度同上 + ℹ️ 分类结果可能不准确is_low_confidence = true 时出现

置信度和阈值对前端完全透明。Dify 根据工作流变量 LOW_CONFIDENCE_THRESHOLD 计算 is_low_confidence 布尔值,前端仅据此决定是否展示提示行。不提供「重新分类」按钮。

2.3 引用来源(G-Cite 风格)

参考 QA 的 G-Cite 交互设计,底部折叠引用栏:

折叠态

┌─ 引用来源(2)                          [展开 ▼] ────┐

展开态

┌─ 引用来源(2)                          [收起 ▲] ────┐
│                                                      │
│  1  广宁闸机V6使用手册                    [查看原文]    │
│  2  闸机故障码表 v2.0                     [查看原文]    │
│                                                      │
└──────────────────────────────────────────────────────┘

交互规则:

  • 默认折叠,点击 [展开 ▼] 后显示文档标题列表
  • 文档标题来自 chunk_metadata.document_title
  • 点击 [查看原文] 跳转至原始文档(PDF/网页,链接来自 source_file_url
  • source_file_url 为空,行不可点击,文字置灰
  • N = 当前回答中实际被引用的文档数(非检索召回数)

2.4 无知识库匹配

引用来源栏展示 citation_hint 内容(由 Dify 工作流变量 NO_CITATION_HINT 控制):

┌─ 引用来源(0)                                          ────┐
│                                                              │
│  暂无可参考的知识库文档,诊断建议由 AI 基于通用常识生成。              │
│                                                              │
└──────────────────────────────────────────────────────────────┘

2.5 低置信度

分类标签栏出现提示信息,其余与正常结果一致:

┌──────────────────────────────────────────────────────┐
│ 弱电智能化 > 闸机 > 无法升降                           │
│ ℹ️ 分类结果可能不准确                     │
└──────────────────────────────────────────────────────┘

3. 异常状态

3.1 加载中

┌──────────────────────────────────────────────┐
│                                              │
│  正在分析故障...                              │
│                                              │
│  预计耗时 5-10 秒                             │
│                                              │
└──────────────────────────────────────────────┘

3.2 超时/失败

┌──────────────────────────────────────────────┐
│                                              │
│  诊断失败                                    │
│                                              │
│  诊断服务暂不可用,请稍后重试。                 │
│                                              │
│  [重试]  [关闭]                              │
│                                              │
└──────────────────────────────────────────────┘

4. 反馈机制

这个诊断对你有帮助吗?     [有帮助]  [无帮助]

4.1 交互

操作行为
点击 [有帮助]提交反馈 → 两个按钮灰化不可再点
点击 [无帮助]提交反馈 → 两个按钮灰化不可再点

无差评原因弹窗——降低反馈门槛,先收集量。

4.2 数据记录

POST /api/v1/diagnosis/feedback
Content-Type: application/json

{
  "work_order_id": "WO-2026-0892",
  "diagnosis_id": "diag_20260617_001",
  "rating": "not_helpful",
  "classification": {
    "system": "弱电智能化",
    "component": "闸机",
    "symptom": "无法升降"
  },
  "has_knowledge_match": true,
  "created_at": "2026-06-17 14:30"
}
字段说明
work_order_id关联工单,便于回溯
diagnosis_id诊断请求唯一 ID
ratinghelpful / not_helpful
classification当时 LLM 打标的分类结果
has_knowledge_match是否有 RAG 知识库匹配
created_at反馈时间

存储:写入诊断反馈表,后续接入运营看板统计好评率。not_helpful 比例超过阈值时可产研介入作为产品优化需求起点。

4.3 记录时机说明

反馈数据记录在后端 API 层,前端只需:

  1. 调用诊断 API 时拿到 diagnosis_id
  2. 用户点击按钮时调反馈 API 上报 {diagnosis_id, rating}
  3. Token 防重——同一 diagnosis_id 24h 内不可重复提交

5. 移动端适配

工单详情页在移动端(巡检人员手机操作),诊断结果卡片全宽展示。

┌──────────────────────────┐
│  一键诊断结果    [收起]    │
├──────────────────────────┤
│                          │
│  弱电智能化 > 闸机        │
│  无法升降                 │
│                          │
│  (LLM Markdown 正文)    │
│                          │
│  ## 可能原因              │
│  1. 伺服电机驱动器参数漂移 │
│  2. 红外感应器被异物遮挡   │
│  ...                     │
│                          │
│  引用来源(2)[展开]       │
│                          │
│  [有帮助]  [无帮助]       │
│                          │
└──────────────────────────┘

6. 接口对接

6.1 发起诊断(SSE 流式)

POST /v1/workflows/run
Content-Type: application/json

{
  "inputs": {
    "work_order_description": "G馆1楼入口闸机翼臂无法升降",
    "asset_id": "AST-2024-0882"
  },
  "response_mode": "streaming",
  "user": "operator_zhang"
}

SSE 事件流

事件前端行为
workflow_started展示 loading 状态 + 获取 diagnosis_id
text_chunk逐段追加渲染 Markdown 到诊断建议区
workflow_finished解析 classification → 渲染标签栏;解析 references → 渲染引用来源栏;关闭 loading

前端用 EventSource 接收 SSE 事件。text_chunk 事件携带 {"text": "..."} 增量 Markdown 文本。workflow_finisheddata.outputs 包含完整 JSON 响应。

6.2 提交反馈

见 §4.2。


文档版本:v1.1创建日期:2026-06-17最后更新:2026-06-17作者:强哥

Released under the Private License.