1. 页面概览

「决策证据链」是 AIP 的决策支持页面(V5 Stage 2 B2-2,action/web/src/views/DecisionPage.vue)。用户输入决策问题(可指定数据源名),后端同步执行 5 步证据链:问题拆解 → 三路检索 → 证据核验 → 答案生成 → 引用溯源,一次返回 markdown 答案、5 步执行记录与引用列表。页面为三栏布局:左栏提问与历史,中栏 5 步进度与答案,右栏引用面板。一句话总结:本页是「带证据链的问答」,每个结论都能溯源到知识文档、实体或结构化查询证据。

2. 访问入口

2.1 路由与菜单

路由 path: /decisionname: Decision、meta 标题「决策证据链」、requiresAuth;顶部导航栏菜单「决策分析」(title 提示「决策证据链(检索/核验/引用溯源)」)。源码 action/web/src/views/DecisionPage.vue

2.2 认证与权限

需要登录(aip_token);普通登录用户即可访问。

2.3 端口与 API 前缀

AIP 后端 18080;客户端 action/web/src/api/decisionApi.js 复用 aipClient,baseURL /aip-api/v1

2.4 URL 持久化(?id=

选中的答案 id 会写入路由 query ?id=<trace_id>router.replace,不污染浏览器历史),刷新后可经 GET /decision/answers/:id 恢复;该 URL 可直接分享/加书签回放某次证据链。

3. 界面布局

三栏网格(左 300px / 中弹性 / 右 300px,窄屏自动折行):

┌───────────────┬───────────────────────────┬────────────────┐
│ AIP · 决策证据链               [刷新历史]     │                │
│ ┌ 提问 ───────┐│ ┌ 5 步证据链进度 ─────┐   ││ ┌ 引用 ───────┐ │
│ │ [textarea]  ││ │ 1 问题拆解 完成     │   ││ │ [1] 知识/RAG│ │
│ │ [数据源名]   ││ │ 2 三路检索 完成     │   ││ │ 标题/uri    │ │
│ │ [提问]      ││ │ 3 证据核验 降级     │   ││ │ [展开片段]   │ │
│ └────────────┘││ │ 4 答案生成 完成     │   ││ └────────────┘ │
│ ┌ 最近提问 ───┐│ │ 5 引用溯源 完成     │   ││                │
│ │ 历史条目列表 ││ │ trace_id: xxx      │   ││                │
│ └────────────┘││ └────────────────────┘   ││                │
│               ││ ┌ 答案 ──────────────┐   ││                │
│               ││ │ markdown 渲染正文   │   ││                │
│               ││ └────────────────────┘   ││                │
└───────────────┴───────────────────────────┴────────────────┘

4. 交互元素

控件位置含义与作用
文本域「提问」左栏决策问题,必填;支持 Ctrl+Enter 提交;placeholder 示例「当前差旅报销标准是多少?与上季度相比有何变化?」
输入框「数据源名」左栏可选;为空时后端回退演示默认源 aip_demo_warehouse(归因见下),只有「未指定且无默认源」才跳过结构化查询(NLQ)通道
按钮「提问」左栏同步执行 5 步链;asking 时文案「证据链执行中...」并禁用;开始即清空 URL ?id,成功后写入新 id
按钮「刷新历史」页头重新拉取最近 20 条历史
历史条目左栏「最近提问」点击回放该次答案(loadDetail),并把该条 id 写入 URL ?id=
步骤行中栏「5 步证据链进度」点击展开/收起该步 detail 明细(retrieve 步为三路检索友好摘要;其余为中文键值对,sub_questions 渲染为有序列表,无明细显示「无明细」)
引用条目右栏「引用」点击展开/收起 snippet 片段

次要:步骤行内状态徽标与耗时列(完成/跳过/降级/执行中)、retrieve 步内的数据源归因徽标(请求指定 / 回退默认源 / 未指定且无默认源)。

5. 后端关联

5.1 API 客户端

action/web/src/api/decisionApi.js(复用 aipClient);askDecision 请求单独 timeout: 300000(5 分钟,多步 LLM);统一响应体 {code, message, data}code 非 0 抛错。

5.2 端点表

方法路径请求体/参数页面触发点成功响应 data
POST/decision/answer{question, data_source}提问{answer, steps, citations}
GET/decision/answerslimit=20加载历史{answers, total}
GET/decision/answers/:id历史回放{answer, steps, citations}

5.3 关键机制

6. 权限与安全

7. 常见问题与排错

  1. 提问后长时间无响应:原因是同步多步 LLM,通常需数秒至数十秒(客户端超时 300s)。处理:耐心等待;超时后提示「决策链执行失败」,确认 AIP 后端 18080 与 LLM 网关(/api/v1/llm)可用。
  2. 步骤显示「降级」或某步跳过:原因是对应通道依赖未注入(无 RAG 索引、无实体数据,或未指定数据源且无默认源)。处理:属设计行为,答案仍会生成;数据源名留空时后端会回退默认源 aip_demo_warehouse(步骤明细「归因」标注来源),需要指定其它源时在提问框填写;需要完整三路检索时先建知识库/实体。展开「三路检索」步骤可查看各路命中/跳过/失败与数据源归因。
  3. 答案区提示「暂无答案」:原因是尚未提问且未选择历史。处理:在左栏提问,或点击「最近提问」中的历史条目。
  4. 历史加载失败/刷新历史报错:原因是 GET /decision/answers 失败(后端未启动、token 失效 401)。处理:确认 18080 启动与 token 有效;Network 查看具体状态码。

8. 已知缺陷与边界