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

496 lines
20 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
module: ai-service-admin
title: "AI 中台管理界面ai-service-admin任务清单"
status: "in-progress"
version: "0.7.0"
owners:
- "frontend"
- "backend"
last_updated: "2026-02-27"
principles:
- 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` store`currentTenantId`并持久化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`,将返回的 `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
- [x] (Q-01) ✅ 已确认:后端将补齐 `GET /admin/kb/documents` 列表接口。
- 影响 AC: [AC-ASA-01]
- [x] (Q-02) ✅ 已确认:后端将补齐 `GET /admin/sessions` 列表接口。
- 影响 AC: [AC-ASA-07]
- [x] (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: 嵌入模型管理(配置页面/测试连接)
> 页面导向:嵌入模型配置页面,支持提供者切换、参数配置、连接测试。
- [x] (P5-01) API 服务层与类型定义:创建 src/api/embedding.ts 和 src/types/embedding.ts
- AC: [AC-ASA-08, AC-ASA-09]
- [x] (P5-02) 提供者选择组件:实现 `EmbeddingProviderSelect` 下拉组件,对接 `/admin/embedding/providers`
- AC: [AC-ASA-09]
- [x] (P5-03) 动态配置表单:根据 `config_schema` 动态渲染配置表单,实现表单校验
- AC: [AC-ASA-09, AC-ASA-10]
- [x] (P5-04) 测试连接组件:实现 `EmbeddingTestPanel`,展示测试结果和错误信息
- AC: [AC-ASA-11, AC-ASA-12]
- [x] (P5-05) 支持格式组件:实现 `SupportedFormats`,展示支持的文档格式列表
- AC: [AC-ASA-13]
- [x] (P5-06) 页面骨架与路由:创建 `/admin/embedding` 页面,布局包含各功能区
- AC: [AC-ASA-08]
- [x] (P5-07) 配置加载与保存:实现配置加载、保存逻辑
- AC: [AC-ASA-08, AC-ASA-10]
- [x] (P5-08) 组件整合与测试:整合所有组件完成功能闭环
- AC: [AC-ASA-08~AC-ASA-13]
---
## Phase 5 任务进度追踪
| 任务 | 描述 | 状态 |
|------|------|------|
| P5-01 | API 服务层与类型定义 | ✅ 已完成 |
| P5-02 | 提供者选择组件 | ✅ 已完成 |
| P5-03 | 动态配置表单 | ✅ 已完成 |
| P5-04 | 测试连接组件 | ✅ 已完成 |
| P5-05 | 支持格式组件 | ✅ 已完成 |
| P5-06 | 页面骨架与路由 | ✅ 已完成 |
| P5-07 | 配置加载与保存 | ✅ 已完成 |
| P5-08 | 组件整合与测试 | ✅ 已完成 |
---
## Phase 6: LLM 模型配置与 RAG 调试输出v0.3.0
> 页面导向LLM 模型配置页面 + RAG 实验室 AI 输出增强。
### 6.1 LLM 模型配置
- [x] (P6-01) LLM API 服务层与类型定义:创建 src/api/llm.ts 和 src/types/llm.ts
- AC: [AC-ASA-14, AC-ASA-15]
- [x] (P6-02) LLM 提供者选择组件:实现 `LLMProviderSelect` 下拉组件
- AC: [AC-ASA-15]
- [x] (P6-03) LLM 动态配置表单:根据 `config_schema` 动态渲染配置表单
- AC: [AC-ASA-15, AC-ASA-16]
- [x] (P6-04) LLM 测试连接组件:实现 `LLMTestPanel`,展示测试回复和耗时
- AC: [AC-ASA-17, AC-ASA-18]
- [x] (P6-05) LLM 配置页面:创建 `/admin/llm` 页面,整合所有组件
- AC: [AC-ASA-14, AC-ASA-16]
### 6.2 RAG 实验室 AI 输出增强
- [x] (P6-06) AI 回复展示组件:实现 `AIResponseViewer`,展示 AI 最终输出
- AC: [AC-ASA-19]
- [x] (P6-07) 流式输出支持:实现 SSE 流式输出展示,支持实时显示 AI 回复
- AC: [AC-ASA-20]
- [x] (P6-08) Token 统计展示:展示 Token 消耗、响应耗时等统计信息
- AC: [AC-ASA-21]
- [x] (P6-09) LLM 选择器:在 RAG 实验室中添加 LLM 配置选择器
- AC: [AC-ASA-22]
- [x] (P6-10) RAG 实验室整合:将 AI 输出组件整合到 RAG 实验室页面
- AC: [AC-ASA-19~AC-ASA-22]
---
## Phase 6 任务进度追踪
| 任务 | 描述 | 状态 |
|------|------|------|
| P6-01 | LLM API 服务层与类型定义 | ✅ 已完成 |
| P6-02 | LLM 提供者选择组件 | ✅ 已完成 |
| P6-03 | LLM 动态配置表单 | ✅ 已完成 |
| P6-04 | LLM 测试连接组件 | ✅ 已完成 |
| P6-05 | LLM 配置页面 | ✅ 已完成 |
| P6-06 | AI 回复展示组件 | ✅ 已完成 |
| P6-07 | 流式输出支持 | ✅ 已完成 |
| P6-08 | Token 统计展示 | ✅ 已完成 |
| P6-09 | LLM 选择器 | ✅ 已完成 |
| P6-10 | RAG 实验室整合 | ✅ 已完成 |
---
## Phase 7: 租户管理v0.4.0
> 页面导向:租户选择器与租户管理功能。
- [x] (P7-01) 租户 API 服务层:创建 src/api/tenant.ts 和 src/types/tenant.ts
- AC: [AC-ASA-01]
- [x] (P7-02) 租户选择器组件:实现 `TenantSelector` 下拉组件,支持租户切换
- AC: [AC-ASA-01]
- [x] (P7-03) 租户持久化:租户选择持久化到 localStorage
- AC: [AC-ASA-01]
---
## Phase 7 任务进度追踪
| 任务 | 描述 | 状态 |
|------|------|------|
| P7-01 | 租户 API 服务层 | ✅ 已完成 |
| P7-02 | 租户选择器组件 | ✅ 已完成 |
| P7-03 | 租户持久化 | ✅ 已完成 |
---
## Phase 8: Prompt 模板管理v0.6.0
> 页面导向Prompt 模板列表页 + 模板编辑器 + 版本管理。
- [x] (P8-01) API 服务层与类型定义:创建 `src/api/prompt-template.ts``src/types/prompt-template.ts`
- AC: [AC-ASA-23, AC-ASA-24, AC-ASA-25, AC-ASA-26, AC-ASA-27, AC-ASA-28]
- [x] (P8-02) Prompt 模板列表页:实现模板列表展示(名称、场景标签、发布版本号、更新时间),支持按场景筛选
- AC: [AC-ASA-23]
- [x] (P8-03) 模板创建/编辑表单:实现模板表单(名称、场景选择、系统指令编辑区),系统指令编辑区支持 `{{variable}}` 语法高亮
- AC: [AC-ASA-24, AC-ASA-25]
- [x] (P8-04) 内置变量参考面板在编辑区侧边展示可用变量列表persona_name/current_time/channel_type 等),支持点击插入
- AC: [AC-ASA-24]
- [x] (P8-05) 模板详情与版本历史:实现详情页/抽屉,展示当前发布版本内容 + 版本历史时间线
- AC: [AC-ASA-28]
- [x] (P8-06) 发布与回滚操作:实现发布确认对话框 + 版本历史中的回滚按钮
- AC: [AC-ASA-26, AC-ASA-27]
---
## Phase 9: 多知识库管理v0.6.0
> 页面导向:知识库列表页(替代原有单一文档列表)+ 知识库内文档管理。
- [x] (P9-01) API 服务层与类型定义:创建 `src/api/knowledge-base.ts``src/types/knowledge-base.ts`
- AC: [AC-ASA-29, AC-ASA-30, AC-ASA-32, AC-ASA-33]
- [x] (P9-02) 知识库列表页:实现知识库卡片/列表视图(名称、类型标签色块、文档数、优先级、启用状态开关)
- AC: [AC-ASA-29]
- [x] (P9-03) 知识库创建/编辑表单:实现创建表单(名称、类型选择下拉、描述、优先级数字输入)
- AC: [AC-ASA-30, AC-ASA-32]
- [x] (P9-04) 知识库删除确认:实现二次确认对话框,提示将删除所有关联文档和索引
- AC: [AC-ASA-33]
- [x] (P9-05) 知识库内文档管理:点击知识库进入文档列表视图,复用现有文档列表组件,上传时自动关联 kbId
- AC: [AC-ASA-31]
- [x] (P9-06) 改造现有知识库页面:将原有 `/kb` 页面从单一文档列表改为知识库列表 → 文档列表的两级结构
- AC: [AC-ASA-29, AC-ASA-31]
---
## Phase 10: 意图规则管理v0.6.0
> 页面导向:意图规则列表页 + 规则创建/编辑表单。
- [x] (P10-01) API 服务层与类型定义:创建 `src/api/intent-rule.ts``src/types/intent-rule.ts`
- AC: [AC-ASA-34, AC-ASA-35, AC-ASA-36]
- [x] (P10-02) 意图规则列表页:实现规则列表(意图名称、关键词摘要、响应类型标签、优先级、命中次数、启用开关),支持按响应类型筛选
- AC: [AC-ASA-34]
- [x] (P10-03) 规则创建/编辑表单实现动态表单响应类型切换时动态展示对应配置区fixed→文本编辑、rag→知识库多选、flow→流程选择、transfer→话术编辑
- AC: [AC-ASA-35]
- [x] (P10-04) 关键词标签输入组件:实现多关键词标签输入(支持回车添加、点击删除)
- AC: [AC-ASA-35]
- [x] (P10-05) 正则表达式输入组件:实现多正则输入(支持添加/删除,带基础语法校验提示)
- AC: [AC-ASA-35]
- [x] (P10-06) 规则删除确认与启用/禁用切换
- AC: [AC-ASA-36]
---
## Phase 11: 话术流程管理v0.6.0
> 页面导向:话术流程列表页 + 流程步骤编辑器。
- [x] (P11-01) API 服务层与类型定义:创建 `src/api/script-flow.ts``src/types/script-flow.ts`
- AC: [AC-ASA-37, AC-ASA-38, AC-ASA-39]
- [x] (P11-02) 话术流程列表页:实现流程列表(名称、步骤数、启用状态、关联规则数)
- AC: [AC-ASA-37]
- [x] (P11-03) 流程步骤编辑器:实现步骤列表编辑(添加/删除/拖拽排序),每个步骤卡片包含话术内容、等待输入开关、超时配置、下一步条件
- AC: [AC-ASA-38]
- [x] (P11-04) 步骤条件配置组件:实现下一步条件编辑(关键词匹配 + 跳转目标步骤选择)
- AC: [AC-ASA-38]
- [x] (P11-05) 流程预览视图:以步骤时间线/流程图形式展示完整流程,直观呈现步骤间跳转关系
- AC: [AC-ASA-39]
---
## Phase 12: 输出护栏管理v0.6.0
> 页面导向:护栏管理页面(禁词标签页 + 行为规则标签页)。
- [x] (P12-01) API 服务层与类型定义:创建 `src/api/guardrail.ts``src/types/guardrail.ts`
- AC: [AC-ASA-40, AC-ASA-41, AC-ASA-42, AC-ASA-43, AC-ASA-44]
- [x] (P12-02) 护栏管理页面骨架:创建 `/admin/guardrails` 页面,实现「禁词管理」和「行为规则」双标签页布局
- AC: [AC-ASA-40]
- [x] (P12-03) 禁词列表与筛选:实现禁词表格(词语、类别标签、策略标签、命中次数、启用开关),支持按类别筛选
- AC: [AC-ASA-41]
- [x] (P12-04) 禁词添加/编辑表单实现动态表单策略切换时展示对应配置replace→替换文本、block→兜底话术
- AC: [AC-ASA-42]
- [x] (P12-05) 禁词批量导入:实现 CSV/文本批量导入功能(每行一个词,可选默认类别和策略)
- AC: [AC-ASA-41]
- [x] (P12-06) 行为规则列表与管理:实现行为规则表格(规则描述、类别、启用开关),支持添加/编辑/删除
- AC: [AC-ASA-43, AC-ASA-44]
- [x] (P12-07) 路由注册与导航菜单:将新增的 5 个页面Prompt 模板、知识库、意图规则、话术流程、输出护栏)注册到路由和侧边导航菜单
- AC: [AC-ASA-23~AC-ASA-44]
---
## Phase 13: 测试与监控系统v0.7.0
> 页面导向:为 v0.6.0 新增的四大功能提供完整的测试和监控能力。
### 13.1 Dashboard 统计增强
- [ ] (P13-01) API 服务层:创建 src/api/monitoring.ts 和 src/types/monitoring.ts
- AC: [AC-ASA-45, AC-ASA-46, AC-ASA-47]
- [ ] (P13-02) Dashboard 统计卡片组件实现四个新增统计卡片意图规则命中率、Prompt 模板使用次数、话术流程激活次数、护栏拦截次数)
- AC: [AC-ASA-45]
- [ ] (P13-03) 统计卡片跳转:实现点击卡片跳转到对应监控页面的路由逻辑
- AC: [AC-ASA-46]
- [ ] (P13-04) 时间范围筛选:实现时间范围选择器(今日/本周/本月/自定义)并集成趋势图表
- AC: [AC-ASA-47]
### 13.2 完整流程测试台RAG 实验室扩展)
- [ ] (P13-05) 测试模式切换:在 RAG 实验室页面添加"完整流程测试"模式开关
- AC: [AC-ASA-48]
- [ ] (P13-06) 流程时间线组件:实现 FlowExecutionTimeline 组件,展示 12 步执行流程
- AC: [AC-ASA-49, AC-ASA-50]
- [ ] (P13-07) 步骤详情展开实现步骤卡片点击展开详细数据JSON 格式),支持复制和导出
- AC: [AC-ASA-51]
- [ ] (P13-08) 对比测试功能:实现并行展示不同配置下的执行结果差异
- AC: [AC-ASA-52]
### 13.3 意图规则测试与监控
- [ ] (P13-09) 规则测试对话框:在意图规则管理页面实现测试对话框,展示匹配结果和冲突检测
- AC: [AC-ASA-53]
- [ ] (P13-10) 意图规则监控页面:创建 /admin/monitoring/intent-rules 页面,展示规则命中统计表格
- AC: [AC-ASA-54]
- [ ] (P13-11) 规则命中记录详情:实现命中记录列表弹窗,展示详细命中记录
- AC: [AC-ASA-55]
### 13.4 Prompt 模板测试与监控
- [ ] (P13-12) 模板预览对话框:在 Prompt 模板管理页面实现预览对话框,支持变量测试和实时渲染
- AC: [AC-ASA-56, AC-ASA-57]
- [ ] (P13-13) Prompt 模板监控页面:创建 /admin/monitoring/prompt-templates 页面,展示模板使用统计
- AC: [AC-ASA-58]
### 13.5 话术流程测试与监控
- [ ] (P13-14) 流程模拟对话框:在话术流程管理页面实现模拟执行对话框,支持步骤推进
- AC: [AC-ASA-59]
- [ ] (P13-15) 话术流程监控页面:创建 /admin/monitoring/script-flows 页面,展示流程激活统计
- AC: [AC-ASA-60]
- [ ] (P13-16) 流程执行记录详情:实现执行记录列表弹窗,展示详细执行记录
- AC: [AC-ASA-61]
### 13.6 输出护栏测试与监控
- [ ] (P13-17) 护栏测试对话框:在输出护栏管理页面实现测试对话框,展示禁词检测结果
- AC: [AC-ASA-62]
- [ ] (P13-18) 输出护栏监控页面:创建 /admin/monitoring/guardrails 页面,展示护栏拦截统计
- AC: [AC-ASA-63]
- [ ] (P13-19) 护栏拦截记录详情:实现拦截记录列表弹窗,展示详细拦截记录
- AC: [AC-ASA-64]
### 13.7 对话追踪页面
- [ ] (P13-20) 对话追踪列表页:创建 /admin/monitoring/conversations 页面,展示对话记录列表
- AC: [AC-ASA-65]
- [ ] (P13-21) 对话执行链路详情:实现对话详情弹窗,展示完整 12 步执行链路
- AC: [AC-ASA-66]
- [ ] (P13-22) 对话回放功能:实现动画回放对话执行流程
- AC: [AC-ASA-67]
- [ ] (P13-23) 对话记录导出:实现导出功能,支持 JSON/CSV 格式
- AC: [AC-ASA-68]
### 13.8 路由与导航整合
- [ ] (P13-24) 监控页面路由注册:将新增的 6 个监控页面注册到路由系统
- AC: [AC-ASA-45~AC-ASA-68]
- [ ] (P13-25) 导航菜单更新:在侧边导航菜单中添加"监控中心"分组,包含所有监控页面入口
- AC: [AC-ASA-45~AC-ASA-68]
---
## Phase 13 任务进度追踪
| 任务 | 描述 | 状态 |
|------|------|------|
| P13-01 | API 服务层 | ⏳ 待处理 |
| P13-02 | Dashboard 统计卡片 | ⏳ 待处理 |
| P13-03 | 统计卡片跳转 | ⏳ 待处理 |
| P13-04 | 时间范围筛选 | ⏳ 待处理 |
| P13-05 | 测试模式切换 | ⏳ 待处理 |
| P13-06 | 流程时间线组件 | ⏳ 待处理 |
| P13-07 | 步骤详情展开 | ⏳ 待处理 |
| P13-08 | 对比测试功能 | ⏳ 待处理 |
| P13-09 | 规则测试对话框 | ⏳ 待处理 |
| P13-10 | 意图规则监控页面 | ⏳ 待处理 |
| P13-11 | 规则命中记录详情 | ⏳ 待处理 |
| P13-12 | 模板预览对话框 | ⏳ 待处理 |
| P13-13 | Prompt 模板监控页面 | ⏳ 待处理 |
| P13-14 | 流程模拟对话框 | ⏳ 待处理 |
| P13-15 | 话术流程监控页面 | ⏳ 待处理 |
| P13-16 | 流程执行记录详情 | ⏳ 待处理 |
| P13-17 | 护栏测试对话框 | ⏳ 待处理 |
| P13-18 | 输出护栏监控页面 | ⏳ 待处理 |
| P13-19 | 护栏拦截记录详情 | ⏳ 待处理 |
| P13-20 | 对话追踪列表页 | ⏳ 待处理 |
| P13-21 | 对话执行链路详情 | ⏳ 待处理 |
| P13-22 | 对话回放功能 | ⏳ 待处理 |
| P13-23 | 对话记录导出 | ⏳ 待处理 |
| P13-24 | 监控页面路由注册 | ⏳ 待处理 |
| P13-25 | 导航菜单更新 | ⏳ 待处理 |