7.2 KiB
| module | title | status | version | owners | last_updated | principles | ||||
|---|---|---|---|---|---|---|---|---|---|---|
| ai-service-admin | AI 中台管理界面(ai-service-admin)任务清单 | draft | 0.2.0 |
|
2026-02-24 |
|
tasks.md(ASA)
原则:
- 原子性:每个任务应在 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:实现
tenantstore(currentTenantId)并持久化(localStorage),提供切换租户能力(最小 UI/逻辑)。- AC: [AC-ASA-01]
-
(P1-03) Axios/SDK 请求层封装:创建统一
request实例,自动注入必填 HeaderX-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)composable(3s 轮询/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,将返回的retrievalResults与finalPrompt绑定到双栏视图;处理 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/documents(GET 列表,分页 + 筛选)/admin/kb/documents(POST 上传,返回jobId)/admin/kb/index/jobs/{jobId}(GET 任务状态流转:pending -> processing -> completed/failed)/admin/rag/experiments/run(POST 实验结果:retrievalResults + finalPrompt)/admin/sessions(GET 列表,分页 + 筛选)/admin/sessions/{sessionId}(GET 详情:messages + trace)
Phase 5: 嵌入模型管理(配置页面/测试连接)
页面导向:嵌入模型配置页面,支持提供者切换、参数配置、连接测试。
-
(P5-01) 嵌入模型配置页面骨架:创建
/admin/embedding路由,布局包含提供者选择区、配置表单区、测试连接区、支持格式展示区。- AC: [AC-ASA-08]
-
(P5-02) 提供者选择组件:实现
EmbeddingProviderSelect下拉组件,对接/admin/embedding/providers,展示提供者列表(name、display_name、description)。- AC: [AC-ASA-09]
-
(P5-03) 动态配置表单:根据选中提供者的
config_schema动态渲染配置表单(支持 string、integer、number 类型),实现表单校验。- AC: [AC-ASA-09, AC-ASA-10]
-
(P5-04) 当前配置加载:页面初始化时调用
/admin/embedding/config获取当前配置,填充表单默认值。- AC: [AC-ASA-08]
-
(P5-05) 配置保存功能:实现保存按钮,调用
PUT /admin/embedding/config,处理成功/失败响应并提示用户。- AC: [AC-ASA-10]
-
(P5-06) 测试连接功能:实现测试按钮,调用
POST /admin/embedding/test,展示测试结果(success、dimension、latency_ms、message)。- AC: [AC-ASA-11]
-
(P5-07) 测试失败错误展示:测试失败时展示详细错误信息(error 字段),并提供排查建议。
- AC: [AC-ASA-12]
-
(P5-08) 支持格式展示:调用
/admin/embedding/formats获取支持的文档格式列表,以标签或卡片形式展示。- AC: [AC-ASA-13]
Phase 5 任务进度追踪
| 任务 | 描述 | 状态 |
|---|---|---|
| P5-01 | 嵌入模型配置页面骨架 | ⏳ 待处理 |
| P5-02 | 提供者选择组件 | ✅ 已完成 |
| P5-03 | 动态配置表单 | ✅ 已完成 |
| P5-04 | 当前配置加载 | ⏳ 待处理 |
| P5-05 | 配置保存功能 | ⏳ 待处理 |
| P5-06 | 测试连接功能 | ✅ 已完成 |
| P5-07 | 测试失败错误展示 | ✅ 已完成 |
| P5-08 | 支持格式展示 | ⏳ 待处理 |