ai-robot-core/spec/ai-service-admin/tasks.md

5.2 KiB
Raw Blame History

module title status version owners last_updated principles
ai-service-admin AI 中台管理界面ai-service-admin任务清单 draft 0.1.0
frontend
backend
2026-02-24
atomic
page-oriented

tasks.mdASA

原则:

  • 原子性:每个任务应在 0.5 ~ 1.5 天内完成,且可独立提交与回滚。
  • 页面导向:以页面/路由为骨架拆分,组件/能力封装作为页面任务的前置或并行支撑。
  • 可追溯每个任务必须标注关联的验收标准AC-ASA-*)。

Phase 1: 基础建设Foundation

  • (P1-01) 初始化 ai-service-admin 前端工程Vue 3 + Element Plus + RuoYi-Vue 基座对齐),落地基础目录结构与路由骨架。

    • AC: [AC-ASA-01]
  • (P1-02) 接入 Pinia实现 tenant storecurrentTenantId并持久化localStorage提供切换租户能力最小 UI/逻辑)。

    • AC: [AC-ASA-01]
  • (P1-03) Axios/SDK 请求层封装:创建统一 request 实例,自动注入必填 Header X-Tenant-Id(从 Pinia 读取)。

    • AC: [AC-ASA-01]
  • (P1-04) 全局异常拦截:实现 401/403 响应拦截策略401 跳转登录/清理凭证403 统一提示 + 页面级占位)。

    • AC: [AC-ASA-01]
  • (P1-05) 基础组件封装:BaseTable(分页/筛选/加载态/空态)、BaseForm(校验/提交态/错误提示)并给出示例页。

    • AC: [AC-ASA-01]

Phase 2: 知识库管理(列表页/上传/任务轮询)

页面导向:知识库文档列表页 + 上传入口 + 索引任务状态观测。

  • (P2-01) 知识库文档列表页实现列表展示与多条件筛选kbId、状态、时间、来源对接 /admin/kb/documents(若后端未提供 GET则先 Mock

    • AC: [AC-ASA-01]
  • (P2-02) 上传组件:封装 KbDocumentUpload(基于 el-upload),支持多文件上传、上传中队列展示、失败重试提示。

    • AC: [AC-ASA-01]
  • (P2-03) 上传后任务回显:上传成功后从响应中提取 jobId,在列表或详情抽屉中展示任务卡片(状态/进度)。

    • AC: [AC-ASA-01]
  • (P2-04) 任务状态轮询:实现 useJobPolling(jobId) composable3s 轮询 /admin/kb/index/jobs/{jobId};完成/失败自动停止;切页/关闭抽屉自动取消)。

    • AC: [AC-ASA-01, AC-ASA-02]
  • (P2-05) 失败任务错误详情:实现错误展示弹窗/抽屉(展示 errorMsg + requestId并在列表行高亮失败状态。

    • AC: [AC-ASA-02]

Phase 3: RAG 实验室(双栏对比/调试联调)

页面导向RAG 实验室主页面,突出“双栏对比视图”。

  • (P3-01) RAG 实验室页面骨架左侧参数面板query、kbIds、检索参数、prompt 版本选择),右侧双栏结果区占位。

    • AC: [AC-ASA-05]
  • (P3-02) RAG 专用组件:实现 RagRetrievalList召回片段列表score/来源/片段)、FinalPromptViewer(最终 Prompt 只读展示,支持复制)。

    • AC: [AC-ASA-05]
  • (P3-03) 调试 API 联调:对接 /admin/rag/experiments/run,将返回的 retrievalResultsfinalPrompt 绑定到双栏视图;处理 Loading/错误态。

    • AC: [AC-ASA-05]
  • (P3-04) 双配置对比模式MVP支持保留“上一次运行结果”作为对照或同时运行两组参数视后端能力并在 UI 中标注差异。

    • AC: [AC-ASA-06]

Phase 4: 会话监控与详情(列表筛选/全链路详情)

页面导向:会话列表页 + 全链路详情弹窗。

  • (P4-01) 会话监控列表页实现多字段过滤tenantId、sessionId、时间范围、状态/是否错误等)与分页,对接 /admin/sessions(若后端未提供,则先 Mock

    • AC: [AC-ASA-07]
  • (P4-02) 会话详情弹窗:点击列表行打开弹窗,对接 /admin/sessions/{sessionId}展示消息流Timeline/气泡流)与基础元信息。

    • AC: [AC-ASA-07]
  • (P4-03) Trace 展开视图:在详情中实现“检索命中/工具调用/错误信息”折叠面板,支持按消息节点展开查看。

    • AC: [AC-ASA-07]

待澄清Open Questions

  • (Q-01) 已确认:后端将补齐 GET /admin/kb/documents 列表接口。

    • 影响 AC: [AC-ASA-01]
  • (Q-02) 已确认:后端将补齐 GET /admin/sessions 列表接口。

    • 影响 AC: [AC-ASA-07]
  • (Q-03) 已确认:对比模式采用“前端串行调用两次 /admin/rag/experiments/run 接口”的方式实现。

    • 影响 AC: [AC-ASA-06]

Mock 支撑(在 Python 后端未完成前)

结论:需要 Mock 支撑,以便前端在后端未完成时并行开发页面与交互。

建议优先 Mock 覆盖(最小闭环):

  • /admin/kb/documentsGET 列表,分页 + 筛选)
  • /admin/kb/documentsPOST 上传,返回 jobId
  • /admin/kb/index/jobs/{jobId}GET 任务状态流转pending -> processing -> completed/failed
  • /admin/rag/experiments/runPOST 实验结果retrievalResults + finalPrompt
  • /admin/sessionsGET 列表,分页 + 筛选)
  • /admin/sessions/{sessionId}GET 详情messages + trace