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

162 lines
8.3 KiB
Markdown
Raw Normal View History

---
feature_id: "ASA"
title: "AI 中台管理界面ai-service-admin需求规范"
status: "draft"
version: "0.3.0"
owners:
- "product"
- "frontend"
- "backend"
last_updated: "2026-02-24"
source:
type: "conversation"
ref: "Scoping Result Confirmed"
---
# AI 中台管理界面ASA
## 1. 背景与目标
- **背景**:随着 AI 中台ai-service功能的增强需要一套专业的管理后台来支持知识库运维、Prompt 工程迭代及 RAG 效果调优。
- **目标**:提供租户维度的 AI 资产管理能力,实现 RAG 链路的可视化调试与全链路监控。
- **非目标**:不包含推理引擎实现,不包含面向 C 端的交互 UI。
## 2. 模块边界Scope
- **覆盖**:知识库空间与文档管理、索引任务监控、租户级 Prompt 模板版本管理、RAG 实验对比、全局会话审计。
- **不覆盖**:底层向量数据库维护、模型微调训练。
## 3. 依赖盘点Dependencies
- **依赖模块**
- `ai-service`:提供所有的管理类 RESTful API`openapi.admin.yaml`)。
- `RuoYi-Vue-Plus` (或类似基座):提供用户认证、权限校验及菜单框架。
## 4. 用户故事User Stories
### 4.1 知识库管理
- [US-ASA-01] 作为租户管理员,我希望能够上传不同格式的文档到指定的知识空间,以便为特定的 AI 场景提供上下文。
- [US-ASA-02] 作为运维人员,我希望实时查看索引构建任务的进度和错误原因,以便及时处理构建失败的情况。
### 4.2 Prompt 工程
- [US-ASA-03] 作为 Prompt 工程师,我希望对不同场景的 Prompt 进行版本化管理,以便在效果下降时能够快速回滚。
### 4.3 RAG 效果实验室
- [US-ASA-04] 作为 AI 开发者,我希望在后台直接输入问题并查看检索到的文档分片和原始上下文,以便定位召回不准确的问题。
### 4.4 监控审计
- [US-ASA-05] 作为安全合规人员,我希望审计所有租户的会话记录,并查看单次回答的耗时与资源消耗,以便进行成本核算与安全管控。
## 5. 验收标准Acceptance Criteria, EARS
### 知识库管理KB
- [AC-ASA-01] WHEN 提交文档上传 THEN 系统 SHALL 异步启动索引任务,并返回任务 ID。
- [AC-ASA-02] WHEN 索引任务失败 THEN 系统 SHALL 在管理界面高亮显示,并提供“详细错误”查询入口。
### Prompt 管理Prompt
- [AC-ASA-03] WHEN 发布新版 Prompt THEN 系统 SHALL 自动将旧版标记为“历史版本”,且同一时间只有一个“已发布”版本。
- [AC-ASA-04] WHEN 编辑 Prompt 时 THEN 系统 SHALL 提供内置变量提示(如 `{{context}}`, `{{query}}`)。
### RAG 实验室RAG Lab
- [AC-ASA-05] WHEN 运行 RAG 实验 THEN 系统 SHALL 展示 Top-K 检索片段、得分、来源文档及最终生成的提示词。
- [AC-ASA-06] WHEN 多版本对比时 THEN 系统 SHALL 支持在同一屏幕展示不同配置下的召回差异。
### 会话监控Audit
- [AC-ASA-07] WHEN 查看会话详情 THEN 系统 SHALL 展示完整的消息链路包括中间的工具调用Tool Calls和检索命中记录。
## 6. 追踪映射Traceability
| AC ID | Endpoint | 方法 | 备注 |
|------|----------|------|-----|
| AC-ASA-01 | /admin/kb/documents | POST | 上传文档并创建任务 |
| AC-ASA-02 | /admin/kb/index/jobs/{jobId} | GET | 查询任务详情与错误 |
| AC-ASA-03 | /admin/config/prompt-templates/{tplId}/publish | POST | 发布指定版本 |
| AC-ASA-05 | /admin/rag/experiments/run | POST | 触发调试实验 |
| AC-ASA-07 | /admin/sessions/{sessionId} | GET | 获取全链路详情 |
---
## 7. 迭代需求嵌入模型管理v0.2.0
> 说明:本节为 v0.2.0 迭代新增,用于支持嵌入模型的界面配置与管理。
### 7.1 嵌入模型配置管理
- [AC-ASA-08] WHEN 用户访问嵌入模型配置页面 THEN 系统 SHALL 展示当前激活的嵌入模型提供者及其配置参数。
- [AC-ASA-09] WHEN 用户切换嵌入模型提供者 THEN 系统 SHALL 动态展示该提供者的配置参数表单,并保留当前配置值。
- [AC-ASA-10] WHEN 用户修改嵌入模型配置并保存 THEN 系统 SHALL 验证配置有效性,更新配置并提示操作结果。
- [AC-ASA-11] WHEN 用户点击"测试连接"按钮 THEN 系统 SHALL 调用嵌入模型生成测试向量,展示连接状态、向量维度和响应延迟。
- [AC-ASA-12] WHEN 嵌入模型连接测试失败 THEN 系统 SHALL 展示详细错误信息,帮助用户排查配置问题。
### 7.2 文档格式支持展示
- [AC-ASA-13] WHEN 用户查看嵌入模型配置页面 THEN 系统 SHALL 展示当前支持的文档格式列表PDF、Word、Excel、TXT 等)。
### 7.3 用户故事(迭代追加)
- [US-ASA-06] 作为系统管理员,我希望在界面上配置和切换嵌入模型,以便快速适配不同的业务场景而无需修改代码。
- [US-ASA-07] 作为系统管理员,我希望在保存配置前测试嵌入模型连接,以便确保配置正确后再正式启用。
### 7.4 追踪映射(迭代追加)
| AC ID | Endpoint | 方法 | 备注 |
|------|----------|------|-----|
| AC-ASA-08 | /admin/embedding/config | GET | 获取当前配置 |
| AC-ASA-09 | /admin/embedding/providers | GET | 获取提供者列表及配置定义 |
| AC-ASA-10 | /admin/embedding/config | PUT | 更新配置 |
| AC-ASA-11 | /admin/embedding/test | POST | 测试连接 |
| AC-ASA-12 | /admin/embedding/test | POST | 测试失败错误展示 |
| AC-ASA-13 | /admin/embedding/formats | GET | 获取支持格式 |
---
## 8. 迭代需求LLM 模型配置与 RAG 调试输出v0.3.0
> 说明:本节为 v0.3.0 迭代新增,用于支持 LLM 模型的界面配置及 RAG 实验室的 AI 输出调试。
### 8.1 LLM 模型配置管理
- [AC-ASA-14] WHEN 用户访问 LLM 模型配置页面 THEN 系统 SHALL 展示当前激活的 LLM 提供者及其配置参数API Key、Base URL、模型名称等
- [AC-ASA-15] WHEN 用户切换 LLM 提供者 THEN 系统 SHALL 动态展示该提供者的配置参数表单,并保留当前配置值。
- [AC-ASA-16] WHEN 用户修改 LLM 模型配置并保存 THEN 系统 SHALL 验证配置有效性,更新配置并提示操作结果。
- [AC-ASA-17] WHEN 用户点击"测试连接"按钮 THEN 系统 SHALL 调用 LLM 生成测试回复,展示连接状态、模型响应和耗时。
- [AC-ASA-18] WHEN LLM 连接测试失败 THEN 系统 SHALL 展示详细错误信息,帮助用户排查配置问题。
### 8.2 RAG 实验室 AI 输出展示
- [AC-ASA-19] WHEN 用户运行 RAG 实验后 THEN 系统 SHALL 在结果区域新增"AI 回复"展示区,显示基于检索结果生成的 AI 最终输出。
- [AC-ASA-20] WHEN AI 回复生成中 THEN 系统 SHALL 展示 Loading 状态支持流式输出展示SSE
- [AC-ASA-21] WHEN AI 回复生成完成 THEN 系统 SHALL 展示完整的回复内容、Token 消耗统计、响应耗时。
- [AC-ASA-22] WHEN 用户选择不同的 LLM 配置 THEN 系统 SHALL 使用选定的 LLM 模型生成回复,便于对比不同模型效果。
### 8.3 用户故事(迭代追加)
- [US-ASA-08] 作为系统管理员,我希望在界面上配置和切换不同的 LLM 提供者(如 OpenAI、Ollama、Azure 等),以便快速适配不同的业务场景。
- [US-ASA-09] 作为 AI 开发者,我希望在 RAG 实验室中看到 AI 的最终输出,以便完整调试 RAG 链路效果,而不仅仅是检索结果。
- [US-ASA-10] 作为 Prompt 工程师,我希望对比不同 LLM 模型在相同检索结果下的回复效果,以便选择最适合业务场景的模型。
### 8.4 追踪映射(迭代追加)
| AC ID | Endpoint | 方法 | 备注 |
|------|----------|------|-----|
| AC-ASA-14 | /admin/llm/config | GET | 获取当前 LLM 配置 |
| AC-ASA-15 | /admin/llm/providers | GET | 获取 LLM 提供者列表 |
| AC-ASA-16 | /admin/llm/config | PUT | 更新 LLM 配置 |
| AC-ASA-17 | /admin/llm/test | POST | 测试 LLM 连接 |
| AC-ASA-18 | /admin/llm/test | POST | LLM 测试失败错误展示 |
| AC-ASA-19 | /admin/rag/experiments/run | POST | RAG 实验增加 AI 输出 |
| AC-ASA-20 | /admin/rag/experiments/stream | POST | RAG 实验流式输出SSE |
| AC-ASA-21 | /admin/rag/experiments/run | POST | Token 统计与耗时 |
| AC-ASA-22 | /admin/rag/experiments/run | POST | 支持指定 LLM 配置 |