--- module: ai-service-admin title: "AI 中台管理界面(ai-service-admin)— Scoping(定界)结果" status: draft version: 0.1.0 owners: - product - frontend - backend last_updated: 2026-02-24 methodology: - spec-driven - api-first --- # AI 中台管理界面(ai-service-admin)— Scoping(定界)结果 > 本文档为“规范驱动 + 接口先行”的第 0 阶段产出:模块边界澄清 + 依赖接口盘点(Consumer-First)。 > > 输出完成后**停止**,等待确认;在确认前不进入 requirements/OpenAPI/Design/Tasks 的正式编写。 ## 1) 模块职责(Module Responsibilities) ### 1.1 模块定位 `ai-service-admin` 是一个**独立前端管理模块**,面向运营/管理员/租户管理员,用于管理 AI 中台的知识库资产、租户级配置、RAG 调试与全局会话观测。 ### 1.2 包含(In Scope) 必须覆盖以下能力(以管理与观测为主): 1. **知识库上传/索引管理** - 数据源上传(文件/文本/URL 等,具体形态由后续 requirements 细化) - 数据源状态查看、重试、删除/下线 - 索引构建(触发/进度/失败原因)与文档分片/向量化相关的可观测信息(仅展示,不实现算法) - 基础检索配置(如 topK、召回阈值、chunk 策略等):以“配置项编辑 + 生效范围”呈现 2. **租户级 Prompt 模板配置** - 租户维度的 Prompt 模板 CRUD、版本管理(草案/发布)、回滚 - 模板与使用场景(如:RAG 问答、工具调用、摘要等)的绑定(场景枚举由后端定义) - 变量占位符与校验提示(前端校验为体验增强,最终以后端校验为准) 3. **RAG 检索效果实验室(调试窗)** - 输入问题 → 触发“检索/重排/上下文构造”调试链路 - 展示:召回文档列表(含得分/来源/片段)、重排结果、最终上下文、以及关键日志/耗时 - 支持对比实验(如不同检索参数、不同 prompt 版本) - 支持保存/复用实验配置与结果快照(用于回归对比) 4. **全局会话监控** - 多租户维度的会话列表、筛选(时间、租户、用户标识、会话状态、模型/渠道等) - 查看单次会话详情:消息流、检索命中、工具调用、错误栈/错误码、耗时 - 基础统计:会话量、失败率、平均耗时、Top 知识库/Top Prompt 版本使用情况(指标范围后续细化) ### 1.3 不包含(Out of Scope) 明确不在本模块实现范围内: - **具体 AI 推理逻辑**(由 `ai-service` 负责),包括但不限于:LLM 调用、embedding 计算、rerank 算法、提示词编排执行引擎本体。 - **用户侧聊天界面**(由 `ai-robot` 负责),即面向终端用户的对话交互 UI。 - **底层存储/索引实现**(向量库、全文检索、对象存储等)与运维部署策略。 ### 1.4 边界接口原则 - `ai-service-admin` 只作为 **Consumer(调用方)** 消费 Python 后端(`ai-service`)提供的“管理类/观测类 API”。 - 所有“调试/实验”动作也通过管理 API 触发,前端不直接连接向量库或模型。 --- ## 2) 技术栈建议(Tech Stack Recommendation) ### 2.1 选型建议 优先推荐:**Vue 3 + Element Plus**(与 RuoYi-Vue 生态对齐)。 备选:React(若团队已有成熟 React 组件体系与工程基座)。 ### 2.2 选择理由(面向本模块) - RuoYi-Vue 管理后台形态与 Element Plus 组件库天然匹配(表格/表单/弹窗/权限路由)。 - 本模块以“配置管理 + 列表筛选 + 详情查看 + 调试面板”交互为主,Element Plus 现成组件覆盖度高。 ### 2.3 工程与基础能力(建议纳入后续 design) - 多租户与权限:建议前端采用**路由级权限 + 按钮级权限**(能力来源于后端返回的权限集)。 - 国际化:可选(若需要多语言运营)。 - 可观测性:前端埋点/日志仅做体验与错误上报;业务日志以服务端为准。 --- ## 3) 依赖接口清单(Consumer-First,管理类接口草案) > 说明:以下为 `ai-service-admin` 作为调用方所需的**最小管理接口能力清单**(草案)。 > - 路径以 `/admin/*` 为主。 > - 最终将以 `ai-service` 新增的 `openapi.admin.yaml` 固化。 > - 这里先列“能力/端点草案”,不写具体 schema,以便先对齐边界。 ### 3.1 认证与通用能力 - `GET /admin/me`:获取当前登录信息(含租户、角色、权限点) - `GET /admin/tenants`:租户列表(平台管理员) - `GET /admin/enums`:获取前端需要的枚举/常量(场景枚举、状态枚举、错误码映射等) ### 3.2 知识库(KB)管理:`/admin/kb/*` - `GET /admin/kb/spaces`:知识空间/知识库列表(按租户) - `POST /admin/kb/spaces`:创建知识空间/知识库 - `GET /admin/kb/spaces/{kbId}`:知识库详情(含统计/配置摘要) - `PATCH /admin/kb/spaces/{kbId}`:更新知识库元信息/配置 - `DELETE /admin/kb/spaces/{kbId}`:删除/下线知识库 - `GET /admin/kb/documents`:文档列表(支持 kbId、状态、时间、来源筛选) - `POST /admin/kb/documents`:上传/导入文档(multipart 或任务式导入) - `GET /admin/kb/documents/{docId}`:文档详情(含分片/索引状态) - `DELETE /admin/kb/documents/{docId}`:删除文档 - `POST /admin/kb/index/jobs`:触发索引构建/重建(kbId/docId 维度) - `GET /admin/kb/index/jobs`:索引任务列表(状态/时间筛选) - `GET /admin/kb/index/jobs/{jobId}`:索引任务详情(进度、失败原因、日志摘要) - `POST /admin/kb/index/jobs/{jobId}/retry`:失败任务重试 - `POST /admin/kb/index/jobs/{jobId}/cancel`:取消任务(若支持) - `GET /admin/kb/search/config`:读取检索参数默认配置(租户级/KB 级) - `PUT /admin/kb/search/config`:更新检索参数默认配置 ### 3.3 Prompt 模板(租户级)配置:`/admin/config/*` - `GET /admin/config/prompt-templates`:模板列表(支持场景筛选) - `POST /admin/config/prompt-templates`:创建模板(草案) - `GET /admin/config/prompt-templates/{tplId}`:模板详情(含版本历史) - `PATCH /admin/config/prompt-templates/{tplId}`:更新模板(草案编辑) - `POST /admin/config/prompt-templates/{tplId}/publish`:发布某版本 - `POST /admin/config/prompt-templates/{tplId}/rollback`:回滚到指定版本 - `DELETE /admin/config/prompt-templates/{tplId}`:删除模板 - `GET /admin/config/prompt-variables`:可用变量/内置函数清单(用于编辑器提示) ### 3.4 RAG 检索效果实验室(调试):`/admin/rag/*` - `POST /admin/rag/experiments/run`:运行一次 RAG 调试实验(输入 query + 参数集 + 可选 kbId/promptVersion) - `GET /admin/rag/experiments`:实验记录列表(按租户/操作者/时间) - `GET /admin/rag/experiments/{expId}`:实验详情(召回、重排、上下文、日志、耗时) - `POST /admin/rag/experiments/{expId}/clone`:复制实验为新草案 - `DELETE /admin/rag/experiments/{expId}`:删除实验记录 - `GET /admin/rag/diagnostics/samples`:获取预置样例(用于快速回归) ### 3.5 全局会话监控:`/admin/sessions/*` - `GET /admin/sessions`:会话列表(多维筛选) - `GET /admin/sessions/{sessionId}`:会话详情(消息流、检索命中、工具调用、错误、耗时) - `GET /admin/sessions/stats/overview`:概览统计(时间范围 + 租户维度) - `GET /admin/sessions/stats/top`:Top 指标(Top KB / Top Prompt / Top 错误码等) ### 3.6 审计与运维(可选但常见) - `GET /admin/audit/logs`:管理操作审计日志 - `GET /admin/system/health`:服务健康/版本信息(用于后台页脚或诊断) ### 3.7 统一错误模型(约定) - 所有 `/admin/*` 接口建议返回统一错误结构(如 `code`, `message`, `requestId`, `details[]`),以支持后台调试与问题定位。 --- ## 4) 产出物计划(Artifacts Plan) > 按方法论,本模块后续应产出 4 类核心工件;本次 Scoping 仅做计划,不生成内容(等待确认)。 1. `spec/ai-service-admin/requirements.md` - 管理后台的用户故事与验收标准(EARS) - Scope/Dependencies/Traceability 2. `spec/ai-service/openapi.admin.yaml`(在 `ai-service` 下新增) - 作为 `ai-service` 的 **admin provider** 契约(面向本后台) - 标记 `info.x-contract-level`,并对关键 operationId 提供 L1/L2 所需字段 3. `spec/ai-service-admin/design.md` - 前端信息架构(IA):菜单/页面/路由/权限点 - 状态管理、缓存策略、分页/筛选模式 - 调试实验室的交互与可观测性设计 - 错误处理与追踪(requestId) 4. `spec/ai-service-admin/tasks.md` - 按页面/能力拆分的原子任务(含与 AC 的映射) - 并行策略:基于 admin OpenAPI 生成 Mock/SDK