ai-robot-core/docs/progress/ai-service-admin-progress.md

251 lines
10 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
feature: ASA
status: completed
created: 2026-02-24
last_updated: "2026-02-25"
version: "0.3.0"
---
# AI 中台管理界面ai-service-admin进度文档
## context
- **module**: ai-service-admin
- **feature**: ASA
- **status**: ✅已完成
## spec_references
- requirements: "spec/ai-service-admin/requirements.md"
- design: "spec/ai-service-admin/design.md"
- tasks: "spec/ai-service-admin/tasks.md"
- openapi_admin: "spec/ai-service/openapi.admin.yaml"
## overall_progress
- [x] Phase 1: 基础建设 (100%) [P1-01 ~ P1-05]
- [x] Phase 2: 知识库管理 (100%) [P2-01 ~ P2-05]
- [x] Phase 3: RAG 实验室 (100%) [P3-01 ~ P3-04]
- [x] Phase 4: 会话监控与详情 (100%) [P4-01 ~ P4-03]
- [x] Phase 5: 后端管理接口实现 (100%) [Backend Admin APIs]
- [x] Phase 6: 嵌入模型管理 (100%) [P5-01 ~ P5-08]
- [x] Phase 7: LLM 配置与 RAG 调试输出 (100%) [P6-01 ~ P6-10]
## current_phase
**goal**: ✅ 所有任务已完成
### sub_tasks
#### Phase 1-5 已完成
- [x] (P1-01) 初始化前端工程
- [x] (P1-02) 接入 Pinia tenant store
- [x] (P1-03) Axios 请求层封装
- [x] (P1-04) 全局异常拦截
- [x] (P1-05) 基础组件封装
- [x] (P2-01~P2-05) 知识库管理功能
- [x] (P3-01~P3-04) RAG 实验室功能
- [x] (P4-01~P4-03) 会话监控功能
- [x] (P5-01~P5-06) 后端管理接口实现
#### Phase 6: 嵌入模型管理(已完成)
- [x] (P5-01) API 服务层与类型定义 [AC-ASA-08, AC-ASA-09]
- [x] (P5-02) 提供者选择组件 [AC-ASA-09]
- [x] (P5-03) 动态配置表单 [AC-ASA-09, AC-ASA-10]
- [x] (P5-04) 测试连接组件 [AC-ASA-11, AC-ASA-12]
- [x] (P5-05) 支持格式组件 [AC-ASA-13]
- [x] (P5-06) 页面骨架与路由 [AC-ASA-08]
- [x] (P5-07) 配置加载与保存 [AC-ASA-08, AC-ASA-10]
- [x] (P5-08) 组件整合与测试 [AC-ASA-08~AC-ASA-13]
#### Phase 7: LLM 配置与 RAG 调试输出(已完成)
- [x] (P6-01) LLM API 服务层与类型定义:创建 src/api/llm.ts 和 src/types/llm.ts [AC-ASA-14, AC-ASA-15]
- [x] (P6-02) LLM 提供者选择组件:创建通用 ProviderSelect.vue [AC-ASA-15]
- [x] (P6-03) LLM 动态配置表单:创建通用 ConfigForm.vue [AC-ASA-15, AC-ASA-16]
- [x] (P6-04) LLM 测试连接组件:创建通用 TestPanel.vue [AC-ASA-17, AC-ASA-18]
- [x] (P6-05) LLM 配置页面:创建 /admin/llm 页面 [AC-ASA-14, AC-ASA-16]
- [x] (P6-06) AI 回复展示组件:创建 AIResponseViewer.vue [AC-ASA-19]
- [x] (P6-07) 流式输出支持:实现 SSE 流式输出展示 [AC-ASA-20]
- [x] (P6-08) Token 统计展示:展示 Token 消耗、响应耗时 [AC-ASA-21]
- [x] (P6-09) LLM 选择器:在 RAG 实验室中添加 LLM 配置选择器 [AC-ASA-22]
- [x] (P6-10) RAG 实验室整合:将 AI 输出组件整合到 RAG 实验室 [AC-ASA-19~AC-ASA-22]
### next_action
**immediate**: 所有任务已完成,可进行代码提交
**commit message**: `feat(ASA-P5,P6): 实现嵌入配置与LLM配置页面组件 [AC-ASA-09~AC-ASA-18]`
### backend_implementation_summary
**已实现的后端接口**:
| 接口 | 方法 | 文件 | 验收标准 |
|------|------|------|----------|
| /admin/kb/documents | GET | api/admin/kb.py | [AC-ASA-08] |
| /admin/kb/documents | POST | api/admin/kb.py | [AC-ASA-01] |
| /admin/kb/index/jobs/{jobId} | GET | api/admin/kb.py | [AC-ASA-02] |
| /admin/rag/experiments/run | POST | api/admin/rag.py | [AC-ASA-05] |
| /admin/sessions | GET | api/admin/sessions.py | [AC-ASA-09] |
| /admin/sessions/{sessionId} | GET | api/admin/sessions.py | [AC-ASA-07] |
**代码提交规范**:
- 所有文件头部标注相关 AC 编号
- 使用 `get_tenant_id()` 统一处理 X-Tenant-Id
- 返回格式与契约 Schema 对齐DocumentInfo, SessionInfo, PageInfo
## technical_context
### module_structure
```
ai-service-admin/ # 前端工程(待创建)
├── src/
│ ├── api/ # API 请求层
│ ├── components/ # 通用组件
│ ├── composables/ # Vue Composables
│ ├── router/ # 路由配置
│ ├── stores/ # Pinia stores
│ ├── views/ # 页面视图
│ └── utils/ # 工具函数
└── package.json
```
### key_decisions
| decision | reason | impact |
|----------|--------|--------|
| Vue 3 + Element Plus | 与 RuoYi-Vue-Plus 基座技术栈一致 | 复用基座组件与权限体系 |
| Pinia 状态管理 | Vue 3 官方推荐,替代 Vuex | 更简洁的 store 模式 |
| localStorage 持久化 | 租户切换需跨会话保持 | 无需后端 session 支持 |
### code_snippets
```typescript
// stores/tenant.ts (待实现)
export const useTenantStore = defineStore('tenant', {
state: () => ({
currentTenantId: localStorage.getItem('currentTenantId') || ''
}),
actions: {
setTenant(id: string) {
this.currentTenantId = id
localStorage.setItem('currentTenantId', id)
}
}
})
```
## session_history
- session: "Session #1 (2026-02-24)"
completed: []
changes: []
- session: "Session #2 (2026-02-24) - Backend Admin APIs Implementation"
completed:
- 补齐 openapi.admin.yaml 契约GET /admin/kb/documents, GET /admin/sessions
- 创建 ai-service/app/api/admin/ 路由模块结构
- 实现 6 个管理接口KB文档管理、RAG实验、会话监控
- 在 main.py 注册管理路由
- 更新进度文档
- 修复 FastAPI Query 参数语法问题Annotated 默认值格式)
changes:
- spec/ai-service/openapi.admin.yaml - 添加 DocumentInfo, SessionInfo, PageInfo Schema 及列表接口
- ai-service/app/api/admin/__init__.py - 新增
- ai-service/app/api/admin/kb.py - 新增3个接口
- ai-service/app/api/admin/rag.py - 新增1个接口
- ai-service/app/api/admin/sessions.py - 新增2个接口
- ai-service/app/main.py - 注册管理路由
- docs/progress/ai-service-admin-progress.md - 更新进度
- session: "Session #3 (2026-02-24) - 嵌入模型管理需求规划"
completed:
- 更新 spec/ai-service-admin/requirements.md 添加 v0.2.0 迭代需求
- 更新 spec/ai-service-admin/tasks.md 添加 Phase 5 任务
- 更新 spec/ai-service-admin/openapi.deps.yaml 添加嵌入管理接口
- 更新进度文档添加 Phase 6 任务
changes:
- spec/ai-service-admin/requirements.md - 新增 AC-ASA-08~AC-ASA-13
- spec/ai-service-admin/tasks.md - 新增 P5-01~P5-08 任务
- spec/ai-service-admin/openapi.deps.yaml - 完整重写,添加嵌入管理接口
- docs/progress/ai-service-admin-progress.md - 添加 Phase 6
- session: "Session #4 (2026-02-24) - LLM 配置与 RAG 调试输出需求规划"
completed:
- 更新 spec/ai-service-admin/requirements.md 添加 v0.3.0 迭代需求
- 更新 spec/ai-service-admin/tasks.md 添加 Phase 6 任务
- 更新 spec/ai-service-admin/openapi.deps.yaml 添加 LLM 管理和 RAG 实验增强接口
- 更新进度文档添加 Phase 7 任务
changes:
- spec/ai-service-admin/requirements.md - 新增 AC-ASA-14~AC-ASA-22
- spec/ai-service-admin/tasks.md - 新增 P6-01~P6-10 任务
- spec/ai-service-admin/openapi.deps.yaml - 添加 LLM 配置接口和 RAG 实验增强接口
- docs/progress/ai-service-admin-progress.md - 添加 Phase 7
- session: "Session #5 (2026-02-25) - 嵌入配置与 LLM 配置页面组件实现"
completed:
- 创建通用提供者选择组件 ProviderSelect.vue
- 创建通用动态配置表单 ConfigForm.vue
- 创建通用测试连接组件 TestPanel.vue
- 创建 LLM API 服务层 src/api/llm.ts 和类型定义 src/types/llm.ts
- 创建 LLM Pinia Store src/stores/llm.ts
- 创建 LLM 配置页面 src/views/admin/llm/index.vue
- 添加 LLM 配置路由 /admin/llm
- 更新 tasks.md 和 progress.md 文档
changes:
- ai-service-admin/src/components/common/ProviderSelect.vue - 新增
- ai-service-admin/src/components/common/ConfigForm.vue - 新增
- ai-service-admin/src/components/common/TestPanel.vue - 新增
- ai-service-admin/src/api/llm.ts - 新增
- ai-service-admin/src/types/llm.ts - 新增
- ai-service-admin/src/stores/llm.ts - 新增
- ai-service-admin/src/views/admin/llm/index.vue - 新增
- ai-service-admin/src/router/index.ts - 添加 LLM 配置路由
- spec/ai-service-admin/tasks.md - 更新 P5-02~P5-08, P6-02~P6-05 状态
- docs/progress/ai-service-admin-progress.md - 更新进度
- session: "Session #5 (2026-02-25) - RAG 实验室 AI 输出增强组件"
completed:
- 创建 LLM API 服务层 src/api/llm.ts
- 更新 RAG API 服务层 src/api/rag.ts 添加流式输出支持
- 创建 RAG Store src/stores/rag.ts
- 创建 AI 回复展示组件 src/components/rag/AIResponseViewer.vue [AC-ASA-19, AC-ASA-21]
- 创建流式输出组件 src/components/rag/StreamOutput.vue [AC-ASA-20]
- 创建 LLM 选择器组件 src/components/rag/LLMSelector.vue [AC-ASA-22]
- 更新 RAG 实验室页面整合所有新组件 [AC-ASA-19~AC-ASA-22]
- 更新 tasks.md 和 progress.md 进度文档
changes:
- ai-service-admin/src/api/llm.ts - 新增
- ai-service-admin/src/api/rag.ts - 更新(添加流式输出支持)
- ai-service-admin/src/stores/rag.ts - 新增
- ai-service-admin/src/components/rag/AIResponseViewer.vue - 新增
- ai-service-admin/src/components/rag/StreamOutput.vue - 新增
- ai-service-admin/src/components/rag/LLMSelector.vue - 新增
- ai-service-admin/src/views/rag-lab/index.vue - 更新(整合 AI 输出组件)
- spec/ai-service-admin/tasks.md - 更新 P6-06~P6-10 状态
- docs/progress/ai-service-admin-progress.md - 更新进度
## startup_guide
1. **Step 1**: 读取本进度文档(了解当前位置与下一步)
2. **Step 2**: 读取 spec_references 中定义的模块规范(了解业务与接口约束)
3. **Step 3**: 直接执行 next_action - 初始化前端工程
---
## Phase 任务速查
| Phase | 名称 | 任务数 | 状态 |
|-------|------|--------|------|
| Phase 1 | 基础建设 | 5 | ✅ 完成 |
| Phase 2 | 知识库管理 | 5 | ✅ 完成 |
| Phase 3 | RAG 实验室 | 4 | ✅ 完成 |
| Phase 4 | 会话监控与详情 | 3 | ✅ 完成 |
| Phase 5 | 后端管理接口实现 | 6 | ✅ 完成 |
| Phase 6 | 嵌入模型管理 | 8 | ✅ 完成 |
| Phase 7 | LLM 配置与 RAG 调试输出 | 10 | ✅ 完成 |
**总计: 41 个任务 | 已完成: 41 个 | 待处理: 0 个 | 进行中: 0 个**