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

172 lines
8.8 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— 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