Files
AIclinicalresearch/docs/08-项目管理/下一阶段行动计划-V2.2-完整版.md
HaHafeng 66255368b7 feat(admin): Add user management and upgrade to module permission system
Features - User Management (Phase 4.1):
- Database: Add user_modules table for fine-grained module permissions
- Database: Add 4 user permissions (view/create/edit/delete) to role_permissions
- Backend: UserService (780 lines) - CRUD with tenant isolation
- Backend: UserController + UserRoutes (648 lines) - 13 API endpoints
- Backend: Batch import users from Excel
- Frontend: UserListPage (412 lines) - list/filter/search/pagination
- Frontend: UserFormPage (341 lines) - create/edit with module config
- Frontend: UserDetailPage (393 lines) - details/tenant/module management
- Frontend: 3 modal components (592 lines) - import/assign/configure
- API: GET/POST/PUT/DELETE /api/admin/users/* endpoints

Architecture Upgrade - Module Permission System:
- Backend: Add getUserModules() method in auth.service
- Backend: Login API returns modules array in user object
- Frontend: AuthContext adds hasModule() method
- Frontend: Navigation filters modules based on user.modules
- Frontend: RouteGuard checks requiredModule instead of requiredVersion
- Frontend: Remove deprecated version-based permission system
- UX: Only show accessible modules in navigation (clean UI)
- UX: Smart redirect after login (avoid 403 for regular users)

Fixes:
- Fix UTF-8 encoding corruption in ~100 docs files
- Fix pageSize type conversion in userService (String to Number)
- Fix authUser undefined error in TopNavigation
- Fix login redirect logic with role-based access check
- Update Git commit guidelines v1.2 with UTF-8 safety rules

Database Changes:
- CREATE TABLE user_modules (user_id, tenant_id, module_code, is_enabled)
- ADD UNIQUE CONSTRAINT (user_id, tenant_id, module_code)
- INSERT 4 permissions + role assignments
- UPDATE PUBLIC tenant with 8 module subscriptions

Technical:
- Backend: 5 new files (~2400 lines)
- Frontend: 10 new files (~2500 lines)
- Docs: 1 development record + 2 status updates + 1 guideline update
- Total: ~4900 lines of code

Status: User management 100% complete, module permission system operational
2026-01-16 13:42:10 +08:00

1558 lines
52 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.
# 下一阶段行动计划 V2.2 - 完整版
> **计划周期:** 2025-11-07 至 2025-12-064周
> **核心目标:** Schema隔离 + **前端统一架构** + ASL核心功能 + 4个LLM集成
> **制定时间:** 2025-11-09
> **版本:** V2.2完整版融合V2.1详细内容 + V2.2整体思路)
> **最后更新:** 2025-11-12 18:00
> **当前进度:** ✅ **Week 1完成 + Week 2 Day 6完成13/25任务52%** 🎉
---
## 📊 实时进度报告
> **更新时间:** 2025-11-13
> **总体进度:** 15/25 任务完成60%
> **当前阶段:** Week 1完成Week 2 Day 7完成准备进入Day 8-9
### Week 1 进度11/14 完成 ✅
| 任务 | 状态 | 完成时间 | 备注 |
|------|------|----------|------|
| ✅ 任务110个Schema架构规划 | ✅ 完成 | 2025-11-12 | 完整架构文档已创建 |
| ✅ 任务2platform_schema设计 | ✅ 完成 | 2025-11-12 | 1个表从public迁移 |
| ✅ 任务3aia_schema设计 | ✅ 完成 | 2025-11-12 | 5个表完整设计 |
| ✅ 任务4pkb_schema设计 | ✅ 完成 | 2025-11-12 | 5个表含Phase 3 |
| ✅ 任务57空Schema+迁移脚本 | ✅ 完成 | 2025-11-12 | 5个SQL脚本 |
| ✅ 任务6执行Schema迁移 | ✅ 完成 | 2025-11-12 | 100%数据迁移成功 |
| ✅ 任务7验证现有功能 | ✅ 完成 | 2025-11-12 | API测试全部通过 |
| ✅ 任务8Prisma多Schema配置 | ✅ 完成 | 2025-11-12 | 13个models配置完成 |
| ✅ 任务9创建AIA数据库文档 | ✅ 完成 | 2025-11-12 | 含完整ER图和业务规则 |
| ✅ 任务10创建PKB数据库文档 | ✅ 完成 | 2025-11-12 | 含Phase 3说明 |
| ❌ 任务11代码适配新Schema | 🎉 **取消** | - | Prisma自动处理无需修改 |
| ⏸️ 任务12补充API设计文档 | 待定 | - | 可延后到开发中迭代 |
| ⏸️ 任务13Week 1总结验收 | 待定 | - | 可与Week 2一起验收 |
| ⏸️ 任务14Week 2准备工作 | 待定 | - | 已开始思考前端架构 |
### 重大发现 💡
**Prisma多Schema自动路由机制**
- ✅ 代码无需修改Prisma自动处理schema前缀
- ✅ 所有现有API自动工作
- ✅ 跨Schema外键透明支持
- 🎉 **节省了任务11代码适配的3-4小时工作量**
### 交付成果 📦
**架构文档:**
- ✅ Schema隔离架构设计10个
- ✅ AIA数据库设计文档5个表+完整ER图
- ✅ PKB数据库设计文档5个表+Phase 3说明
**迁移脚本:**
- ✅ 001-create-all-10-schemas.sql
- ✅ 002-migrate-platform.sql
- ✅ 003-migrate-aia.sql
- ✅ 004-migrate-pkb.sql
- ✅ 005-validate-simple.sql
**验证报告:**
- ✅ Schema迁移完成报告
- ✅ Prisma配置完成报告
- ✅ 数据库验证通过报告
- ✅ 快速功能测试报告
### Week 2 进度4/6 完成 ✅
| 任务 | 状态 | 完成时间 | 备注 |
|------|------|----------|------|
| ✅ 任务15前端架构设计 | ✅ 完成 | 2025-11-12 | 前后端模块化架构设计-V2.md867行 |
| ✅ 任务16创建统一布局框架 | ✅ 完成 | 2025-11-12 | Frontend-v2项目顶部导航+6模块 |
| ✅ 任务17实现模块注册机制 | ✅ 完成 | 2025-11-13 | 权限系统+错误边界+路由守卫 ⭐ |
| ✅ 任务18整合和测试 | ✅ 完成 | 2025-11-13 | 合并到任务17一起完成 |
| ✅ 任务19后端代码分层 | ✅ 完成 | 2025-11-14 | 增量演进架构,新旧并存 ⭐⭐⭐ |
| ⏳ 任务20Week 2验收 | 待开始 | - | Week 2 Day 10 |
### 核心成果 🎉
**Frontend-v2项目**
- ✅ React 19 + TypeScript + Vite
- ✅ Ant Design 5 + Tailwind CSS 3
- ✅ 顶部导航系统
- ✅ 模块注册中心
- ✅ 6个业务模块占位按架构文档顺序
- ✅ 首页和路由系统
- ✅ 访问地址http://localhost:3000
**Backend 增量演进架构:** ⭐ 新增
- ✅ 三层目录结构legacy/common/modules
- ✅ 新旧代码并存,零风险改造
- ✅ 通用能力层LLM适配器、RAG、文档处理
- ✅ 现有模块稳定运行AIA/PKB/RVW
- ✅ 新模块标准化开发ASL准备就绪
- ✅ 所有功能测试通过 ⭐⭐⭐
**文档体系:**
-**START-HERE-FOR-AI.md** - 新AI快速入口 ⭐⭐⭐
-**[AI对接] 项目状态与下一步指南.md** - 详细交接文档 ⭐⭐⭐
-**前后端模块化架构设计-V2.md** - 架构总纲867行
-**后端架构增量演进方案.md** - 后端分层策略450行⭐ 新增
-**2025-11-14-任务19完成总结.md** - 后端分层实施记录 ⭐ 新增
### 下一步 🚀
**立即开始:** Week 2 Day 10 - Week 2 验收与总结任务20⭐⭐⭐
**后续计划:** Week 3-4 ASL开发
**已完成:** ✅ Week 2 Day 6-9前端架构+模块注册+后端分层)⭐⭐⭐
---
## 💡 V2.2版核心调整
> **🎯 最大变化前端统一架构提前到Week 2** ⭐⭐⭐
### 为什么调整?
**原V2.1版问题:**
- Week 2只做后端分层 + LLM网关
- Week 3开发ASL时前端还是散乱的
- 开发完ASL后再重构前端 → 大量返工
**V2.2版优化:**
- ✅ Week 2先建立前端统一架构
- ✅ 所有模块插件化接入,一次到位
- ✅ Week 3开发ASL时直接在统一框架下
- ✅ LLM网关推迟到Week 5现有调用已够用4个LLM已配置
---
## 🎯 V2.2 vs V2.1 关键差异
| 项目 | V2.1版 | **V2.2版** ⭐ | 原因 |
|------|-------|-------------|------|
| **Week 1** | Schema隔离3+7 | ✅ 相同,保留详细内容 | 架构基础 |
| **Week 2重点** | 后端分层 + LLM网关 | **前端架构 + 后端分层** ⭐⭐⭐ | 架构先行,避免返工 |
| **前端架构** | 未明确时机 | **Week 2上半周完成** ⭐ | ASL在统一框架下开发 |
| **LLM网关** | Week 2开发 | **推迟到Week 5** ✅ | 现有调用已work |
| **CloseAI集成** | 未提及 | **已完成配置** ⭐ | 4个LLM可用 |
---
## 📊 整体规划 - 四周四阶段
```
Week 1 Week 2 Week 3-4 Week 5+
Schema隔离 → 前端架构+后端分层 → ASL核心开发 → LLM网关+其他模块
(3详细+7空) (统一导航+插件化) (4个LLM筛选) (抽取统一网关)
```
| 阶段 | 时间 | 核心任务 | 交付成果 | 优先级 |
|------|------|---------|---------|--------|
| **阶段1** | Week 1 | Schema隔离3详细+7空 | 10个Schema完成 | P0 ⭐⭐⭐ |
| **阶段2** | Week 2 | **前端统一架构 + 后端分层** ⭐ | 统一导航+模块插件化 | P0 ⭐⭐⭐ |
| **阶段3** | Week 3-4 | ASL核心功能4个LLM | 文献筛选完整流程 | P0 ⭐⭐⭐ |
| **阶段4** | Week 5+ | LLM网关统一 + 其他模块 | LLM网关+DC/RVW | P1 ⭐⭐ |
---
## 🚀 阶段1Schema隔离Week 1
> **时间:** 2025-11-07 至 2025-11-137天
> **策略:** 3个详细迁移 + 7个空Schema预留
> **原则:** 聚焦当前架构预留Just-in-time设计
### 核心原则3详细+7空 ⭐⭐⭐
**全部创建的Schema10个**
### 详细设计+迁移3个⭐ Week 1重点
**1. platform_schema** - 平台基础
- 迁移现有的users表~10条数据
- 为平台基础服务预留
**2. aia_schema** - AI智能问答 ⭐ 现有功能
- 迁移5个表projects, conversations, messages, general_conversations, general_messages
- 数据量:~20个项目~50条对话~500条消息
**3. pkb_schema** - 个人知识库 ⭐ 现有功能
- 迁移2个表knowledge_bases, documents
- 数据量:~5个知识库~30个文档
---
### 只创建空Schema7个📋 命名空间预留
**4. asl_schema** - AI智能文献
- 📋 Week 3开发前再详细设计
- 避免现在过度设计,需求更明确时再做
**5. common_schema** - 通用能力
- 📋 需要时再创建表LLM使用记录、Feature Flags
**6. dc_schema** - 数据清洗
**7. rvw_schema** - 审稿系统
**8. admin_schema** - 运营管理
**9. ssa_schema** - 智能统计分析 ✨
**10. st_schema** - 统计分析工具 ✨
---
### 为什么采用"3详细+7空"策略?⭐⭐⭐
**核心原则:聚焦当前,架构预留**
**成本分析:**
- Week 1只处理3个Schema的迁移
- 其余7个只是`CREATE SCHEMA`(几秒钟)
- 总工作量从2天降低到**1.5天** ✅
**收益分析:**
1.**聚焦当前需求** - Week 1专注架构和迁移
2.**避免过度设计** - ASL等模块需求未最终确定
3.**Just-in-time设计** - 开发前再详细设计,更准确
4.**架构完整** - 10个命名空间已预留随时扩展
5.**降低返工风险** - Week 3需求可能调整
---
### Day 1-2Schema迁移准备聚焦3个
#### Day 1上午10个Schema架构规划
**任务规划完整的10个Schema架构**
- [ ] 绘制10个Schema的完整架构图架构层面
- [ ] 明确3个需要迁移的Schema
- [ ] 明确7个空Schema的用途
- [ ] 编写Schema架构文档
**输出文档:**
- `09-架构实施/01-Schema隔离架构设计10个.md`
**Schema依赖关系**
```
业务模块SchemaAIA/PKB/ASL/DC/RVW/ADMIN/SSA/ST
↓ 引用
Common Schema通用数据暂为空
↓ 引用
Platform Schema用户、权限
```
---
#### Day 1下午-Day 2上午3个Schema详细设计 ⭐ 核心工作
**只详细设计需要迁移的3个Schema**
**1. platform_schema平台基础**
```sql
CREATE SCHEMA platform_schema;
-- 用户表从public.users迁移
CREATE TABLE platform_schema.users (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
email VARCHAR(255) UNIQUE NOT NULL,
password_hash VARCHAR(255) NOT NULL,
name VARCHAR(255),
avatar_url VARCHAR(500),
role VARCHAR(50) NOT NULL DEFAULT 'user',
status VARCHAR(50) DEFAULT 'active',
kb_quota INT DEFAULT 3, -- 知识库配额
kb_used INT DEFAULT 0, -- 已使用
trial_ends_at TIMESTAMP,
is_trial BOOLEAN DEFAULT true,
last_login_at TIMESTAMP,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
```
**说明:** 用户表是所有Schema的基础其他Schema的user_id都引用platform_schema.users。
---
**2. aia_schemaAI智能问答** ⭐ 现有功能迁移
```sql
CREATE SCHEMA aia_schema;
-- 项目管理从public.projects迁移
CREATE TABLE aia_schema.projects (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID NOT NULL, -- 引用platform_schema.users
name VARCHAR(255) NOT NULL,
background TEXT DEFAULT '',
research_type VARCHAR(50) DEFAULT 'observational',
conversation_count INT DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
deleted_at TIMESTAMP
);
-- 对话从public.conversations迁移
CREATE TABLE aia_schema.conversations (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID NOT NULL,
project_id UUID REFERENCES aia_schema.projects(id) ON DELETE CASCADE,
agent_id VARCHAR(100) NOT NULL,
title VARCHAR(255) NOT NULL,
model_name VARCHAR(50) DEFAULT 'deepseek-v3',
message_count INT DEFAULT 0,
total_tokens INT DEFAULT 0,
metadata JSONB,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
deleted_at TIMESTAMP
);
-- 消息从public.messages迁移
CREATE TABLE aia_schema.messages (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
conversation_id UUID REFERENCES aia_schema.conversations(id) ON DELETE CASCADE,
role VARCHAR(20) NOT NULL, -- user/assistant
content TEXT NOT NULL,
model VARCHAR(50),
metadata JSONB,
tokens INT,
is_pinned BOOLEAN DEFAULT false,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 通用对话从public.general_conversations迁移
CREATE TABLE aia_schema.general_conversations (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID NOT NULL,
title VARCHAR(255) NOT NULL,
model_name VARCHAR(50),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
deleted_at TIMESTAMP
);
-- 通用消息从public.general_messages迁移
CREATE TABLE aia_schema.general_messages (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
conversation_id UUID REFERENCES aia_schema.general_conversations(id) ON DELETE CASCADE,
role VARCHAR(20) NOT NULL,
content TEXT NOT NULL,
model VARCHAR(50),
metadata JSONB,
tokens INT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
```
**3. pkb_schema个人知识库** ⭐ 现有功能迁移
```sql
CREATE SCHEMA pkb_schema;
-- 知识库从public.knowledge_bases迁移
CREATE TABLE pkb_schema.knowledge_bases (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID NOT NULL, -- 引用platform_schema.users
name VARCHAR(255) NOT NULL,
description TEXT,
dify_dataset_id VARCHAR(255) NOT NULL, -- Dify知识库ID
file_count INT DEFAULT 0,
total_size_bytes BIGINT DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 文档从public.documents迁移
CREATE TABLE pkb_schema.documents (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
kb_id UUID REFERENCES pkb_schema.knowledge_bases(id) ON DELETE CASCADE,
user_id UUID NOT NULL,
filename VARCHAR(255) NOT NULL,
file_type VARCHAR(50) NOT NULL,
file_size_bytes BIGINT NOT NULL,
file_url TEXT NOT NULL,
dify_document_id VARCHAR(255) NOT NULL, -- Dify文档ID
status VARCHAR(50) DEFAULT 'uploading', -- uploading/processing/completed/failed
progress INT DEFAULT 0,
error_message TEXT,
segments_count INT,
tokens_count INT,
-- Phase 2: 全文阅读模式字段
extraction_method VARCHAR(50), -- pymupdf/nougat/mammoth/direct
extraction_quality FLOAT, -- 0-1质量分数
char_count INT,
language VARCHAR(20), -- chinese/english
extracted_text TEXT,
uploaded_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
processed_at TIMESTAMP
);
```
---
#### Day 2下午7个空Schema创建SQL 📋
**只需创建空Schema不设计表结构**
```sql
-- 创建7个空Schema命名空间预留
CREATE SCHEMA IF NOT EXISTS asl_schema; -- AI智能文献Week 3开发前再设计
CREATE SCHEMA IF NOT EXISTS common_schema; -- 通用能力,需要时再创建表
CREATE SCHEMA IF NOT EXISTS dc_schema; -- 数据清洗
CREATE SCHEMA IF NOT EXISTS rvw_schema; -- 审稿系统
CREATE SCHEMA IF NOT EXISTS admin_schema; -- 运营管理
CREATE SCHEMA IF NOT EXISTS ssa_schema; -- 智能统计分析
CREATE SCHEMA IF NOT EXISTS st_schema; -- 统计分析工具
```
**说明:**
- ✅ 只需几秒钟执行完成
- ✅ 命名空间已预留,不会冲突
- ✅ 需要时随时可以在对应Schema中创建表
- ✅ Prisma配置中可以先预留暂不定义模型
---
#### Day 2下午迁移脚本编写 ⭐
**任务:**
- [ ] 编写创建10个Schema的SQL脚本3个详细+7个空
- [ ] 编写3个Schema的数据迁移脚本
- [ ] 编写数据验证脚本
- [ ] 在本地测试环境验证
**迁移策略:**
1. 创建10个新Schema3个详细+7个空一次性
2. 在3个Schema中创建表结构并迁移数据
3. 验证数据完整性
4. 清理public schema旧表可选因为是测试系统
**输出脚本5个**
| 脚本 | 说明 | 工作量 |
|------|------|--------|
| `001-create-all-10-schemas.sql` | 创建10个Schema ⭐ | 5分钟 |
| `002-migrate-platform.sql` | 迁移users表到platform_schema | 15分钟 |
| `003-migrate-aia.sql` | 迁移5个表到aia_schema | 30分钟 |
| `004-migrate-pkb.sql` | 迁移2个表到pkb_schema | 20分钟 |
| `005-validate-all.sql` | 验证数据完整性 | 10分钟 |
**总工作量:** ~1.5小时 ✅
---
### Day 3执行3个Schema迁移 ⭐
**上午:执行迁移**
- [ ] 备份当前数据库(虽然是测试数据,但还是备份)
- [ ] 执行001脚本创建10个Schema3详细+7空
- [ ] 执行002-004脚本迁移3个Schema的数据platform/aia/pkb
- [ ] 执行005脚本验证数据完整性
**下午:验证现有功能**
- [ ] 测试AI智能问答功能使用aia_schema
- [ ] 测试知识库功能使用pkb_schema
- [ ] 验证10个Schema全部创建
- [ ] 修复发现的问题
**验收标准:**
- [ ] ✅ 10个Schema全部创建成功
- [ ] ✅ 7个空Schema验证通过ASL/Common/DC/RVW/ADMIN/SSA/ST
- [ ] ✅ 现有功能AIA、PKB正常运行
- [ ] ✅ 数据迁移100%成功(~10条用户 + 50+对话 + 30+文档)
**预计时间:** 2-3小时 ✅
---
### Day 4-5Prisma Schema更新 + 补充文档
#### Day 4上午Prisma多Schema配置3个详细+7个预留
**任务:**
- [ ] 更新Prisma配置支持10个Schema
- [ ] 为3个Schema创建完整的Prisma模型Platform/AIA/PKB
- [ ] 为7个空Schema预留配置只配置Schema名无模型
- [ ] 生成Prisma Client
- [ ] 单元测试
**Prisma配置示例**
```prisma
// schema.prisma
generator client {
provider = "prisma-client-js"
previewFeatures = ["multiSchema"]
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
schemas = [
"platform_schema", // ✅ 已迁移,有模型
"aia_schema", // ✅ 已迁移,有模型
"pkb_schema", // ✅ 已迁移,有模型
"asl_schema", // 📋 空SchemaWeek 3再定义模型
"common_schema", // 📋 空Schema需要时再定义
"dc_schema", // 📋 空Schema
"rvw_schema", // 📋 空Schema
"admin_schema", // 📋 空Schema
"ssa_schema", // 📋 空Schema
"st_schema" // 📋 空Schema
]
}
// ===== 1. Platform Schema平台基础=====
model User {
id String @id @default(uuid())
email String @unique
passwordHash String @map("password_hash")
name String?
avatarUrl String? @map("avatar_url")
role String @default("user")
status String @default("active")
kbQuota Int @default(3) @map("kb_quota")
kbUsed Int @default(0) @map("kb_used")
trialEndsAt DateTime? @map("trial_ends_at")
isTrial Boolean @default(true) @map("is_trial")
lastLoginAt DateTime? @map("last_login_at")
createdAt DateTime @default(now()) @map("created_at")
updatedAt DateTime @updatedAt @map("updated_at")
@@map("users")
@@schema("platform_schema")
}
// ===== 2. AIA SchemaAI智能问答 - 迁移现有表)=====
model Project {
id String @id @default(uuid())
userId String @map("user_id")
name String
description String?
createdAt DateTime @default(now()) @map("created_at")
conversations Conversation[]
@@map("projects")
@@schema("aia_schema")
}
// ... 其他AIA模型Conversation, Message, GeneralConversation等
// ===== 3. PKB Schema个人知识库 - 迁移现有表)=====
model KnowledgeBase {
id String @id @default(uuid())
userId String @map("user_id")
name String
description String?
difyDatasetId String @map("dify_dataset_id")
fileCount Int @default(0) @map("file_count")
totalSizeBytes BigInt @default(0) @map("total_size_bytes")
createdAt DateTime @default(now()) @map("created_at")
updatedAt DateTime @updatedAt @map("updated_at")
documents Document[]
@@map("knowledge_bases")
@@schema("pkb_schema")
}
model Document {
id String @id @default(uuid())
kbId String @map("kb_id")
userId String @map("user_id")
filename String
fileType String @map("file_type")
fileSizeBytes BigInt @map("file_size_bytes")
fileUrl String @map("file_url")
difyDocumentId String @map("dify_document_id")
status String @default("uploading")
progress Int @default(0)
errorMessage String? @map("error_message") @db.Text
segmentsCount Int? @map("segments_count")
tokensCount Int? @map("tokens_count")
// Phase 2: 全文阅读字段
extractionMethod String? @map("extraction_method")
extractionQuality Float? @map("extraction_quality")
charCount Int? @map("char_count")
language String?
extractedText String? @map("extracted_text") @db.Text
uploadedAt DateTime @default(now()) @map("uploaded_at")
processedAt DateTime? @map("processed_at")
knowledgeBase KnowledgeBase @relation(fields: [kbId], references: [id], onDelete: Cascade)
@@map("documents")
@@schema("pkb_schema")
}
```
**说明:**
- ✅ 只为3个已迁移的Schema定义模型
- 📋 7个空Schema已在schemas列表中但暂无模型
- 📋 ASL模型将在Week 3开发前定义
- 📋 Common模型需要时再添加
---
#### Day 4下午补充AIA和PKB设计文档 ⭐ 新增任务
**任务为已迁移的2个模块补充完整设计文档**
**1. 创建AIA数据库设计文档**
- [ ] 创建 `03-业务模块/AIA-AI智能问答/02-技术设计/01-数据库设计.md`
- [ ] 基于已迁移的5个表编写完整文档
- [ ] 包括:表结构、字段说明、索引设计、关系说明
**2. 创建PKB数据库设计文档**
- [ ] 创建 `03-业务模块/PKB-个人知识库/02-技术设计/01-数据库设计.md`
- [ ] 基于已迁移的2个表编写完整文档
- [ ] 重点说明Phase 2全文阅读相关字段
**工作量估算:** 各1小时共2小时 ✅
**为什么现在补充?**
- ✅ 趁着对表结构熟悉,立即文档化
- ✅ 为Week 2代码重构提供文档支持
- ✅ 与ASL保持一致的文档结构
---
#### Day 5上午代码适配 + API文档补充
**任务1更新代码以使用新Schema**
- [ ] 更新所有数据库查询代码
- [ ] 使用新的Prisma Client
- [ ] 更新API路由
- [ ] 运行集成测试
**任务2补充API设计文档**
- [ ] 创建 `03-业务模块/AIA-AI智能问答/02-技术设计/02-API设计规范.md`
- [ ] 创建 `03-业务模块/PKB-个人知识库/02-技术设计/02-API设计规范.md`
- [ ] 基于现有API routes整理文档
**验收标准:**
- [ ] ✅ 所有API正常工作
- [ ] ✅ 测试通过
- [ ] ✅ 现有功能无回归
- [ ] ✅ AIA和PKB模块文档完整数据库+API
---
#### Day 5下午Week 1总结 + Week 2准备
**任务:**
- [ ] 验证10个Schema全部创建
- [ ] 验证3个详细Schema数据迁移完整
- [ ] 更新文档:记录迁移过程和结果
- [ ] 编写Week 1总结报告
- [ ] 规划Week 2代码重构细节
**Week 1交付物检查清单**
- [ ] ✅ 10个Schema全部创建3详细+7空
- [ ] ✅ Platform/AIA/PKB数据100%迁移
- [ ] ✅ Prisma模型更新完成3个详细Schema
- [ ] ✅ 现有功能正常运行
- [ ] ✅ AIA和PKB完整文档数据库+API
- [ ] ✅ 迁移脚本文档化
---
## 🎨 阶段2前端统一架构 + 后端分层Week 2⭐⭐⭐
> **时间:** 2025-11-14 至 2025-11-207天
> **核心:** 建立统一前端导航框架,所有模块插件化接入
> **目标:** Week 3开发ASL时直接在统一架构下
### 核心原则:架构先行,一次到位 ⭐⭐⭐
**为什么前端架构要优先?**
1. ✅ 避免ASL开发完后再重构前端
2. ✅ 一开始就在统一框架下开发
3. ✅ 其他模块AIA、PKB、审稿直接接入
4. ✅ 导航、布局、路由一次到位
---
### Day 6-7上半周前端统一架构 ⭐⭐⭐ 核心任务
#### Day 6上午前端架构设计 ⭐ 关键设计
**任务:前端架构整体设计**
- [ ] 梳理前端架构需求和目标
- [ ] 确定前端技术栈和工具链
- [ ] 设计模块注册机制
- [ ] 设计统一导航和布局方案
- [ ] 编写前端架构设计文档
**需要解决的核心问题:**
**1. 技术栈选择**
- UI组件库选择Ant Design? Material-UI? 自研?)
- 路由方案React Router配置
- 状态管理Redux? Zustand? 不用?)
- 构建工具当前Vite是否需要调整
**2. 统一布局设计**
- 顶部导航栏设计Logo、模块切换、用户信息
- 侧边菜单设计(模块内导航、收缩/展开)
- 面包屑设计(当前位置指示)
- 主内容区布局
**3. 模块插件化机制**
- 模块如何注册到主应用?
- 模块路由如何动态加载?
- 模块权限如何控制?
- 模块样式如何隔离?
**4. 导航结构设计**
- 一级导航模块级AIA、PKB、ASL、审稿等
- 二级导航:功能级(项目管理、对话、文献筛选等)
- 导航如何响应式适配?
**输出文档:**
- `01-平台基础层/06-前端架构/04-前端架构实施方案-V2.md`
- 更新:`01-平台基础层/06-前端架构/01-前端总体架构设计.md`
- 更新:`01-平台基础层/06-前端架构/02-导航结构设计.md`
**参考文档:**
- `01-平台基础层/06-前端架构/01-前端总体架构设计.md`(现有设计)
- `01-平台基础层/06-前端架构/02-导航结构设计.md`(现有导航)
- `01-平台基础层/06-前端架构/03-架构原型图.html`(原型参考)
**设计要点:**
```
主要考虑:
1. 简单易维护(单人开发)
2. 模块化清晰(支持独立开发)
3. 扩展性好(新模块快速接入)
4. 用户体验佳(统一的交互风格)
```
---
#### Day 6下午-Day 7前端架构实施
**任务1创建统一布局框架**
- [ ] 创建 `frontend/src/layouts/MainLayout.tsx`
- 顶部导航栏组件
- 侧边菜单组件
- 主内容区
- 面包屑导航
- [ ] 创建 `frontend/src/components/TopNav.tsx`
- [ ] 创建 `frontend/src/components/SideMenu.tsx`
**任务2实现模块注册机制**
- [ ] 创建 `frontend/src/router/moduleRegistry.ts`
- [ ] 定义模块配置接口
- [ ] 实现动态路由加载
- [ ] 实现模块权限控制
**任务3整合现有模块**
- [ ] 重构AIA模块接入统一导航现有功能
- [ ] 重构PKB模块接入统一导航现有功能
- [ ] 重构审稿模块接入统一导航(现有功能)
**任务4为未来模块预留入口**
- [ ] ASL模块入口占位符显示"开发中"
- [ ] 数据清洗入口(占位符)
- [ ] 统计分析入口(占位符)
- [ ] 运营管理入口(占位符)
**前端目录结构:**
```
frontend/
├── src/
│ ├── layouts/ # 布局组件
│ │ └── MainLayout.tsx # 统一布局:顶部导航+侧边栏
│ ├── components/ # 通用组件
│ │ ├── TopNav.tsx # 顶部导航栏
│ │ ├── SideMenu.tsx # 侧边菜单
│ │ └── Breadcrumb.tsx # 面包屑
│ ├── router/ # 路由管理
│ │ ├── index.tsx # 主路由配置
│ │ └── moduleRegistry.ts # 模块注册中心
│ ├── modules/ # 模块化目录
│ │ ├── aia/ # AI智能问答已有
│ │ │ ├── routes.tsx # 模块路由
│ │ │ ├── pages/ # 页面组件
│ │ │ └── index.ts # 模块导出
│ │ ├── pkb/ # 个人知识库(已有)
│ │ ├── review/ # 审稿系统(已有)
│ │ ├── asl/ # AI智能文献占位
│ │ ├── dataClean/ # 数据清洗(占位)
│ │ ├── statistics/ # 统计分析(占位)
│ │ └── admin/ # 运营管理(占位)
│ └── App.tsx # 应用入口
```
**验收标准:**
- [ ] ✅ 统一布局创建完成
- [ ] ✅ 3个现有模块成功接入统一导航
- [ ] ✅ 模块切换流畅,路由正常
- [ ] ✅ 占位模块显示"开发中"状态
- [ ] ✅ 前端架构文档完善
---
### Day 8-9下半周后端代码分层
**任务:建立三层代码结构**
- [ ] 创建 platform/common/modules 三层目录
- [ ] 迁移现有代码到新结构
- [ ] 建立统一错误处理
- [ ] 建立统一日志系统
**后端目录结构:**
```
backend/src/
├── platform/ # L1平台基础层
│ ├── auth/ # 认证JWT、Session
│ ├── permissions/ # 权限管理RBAC
│ └── users/ # 用户服务
├── common/ # L2通用能力层
│ ├── llm/ # LLM调用保留简单实现
│ │ ├── deepseek.ts
│ │ ├── closeai.ts # ⭐ GPT-5 + Claude-4.5
│ │ └── qwen.ts
│ ├── files/ # 文件处理
│ └── utils/ # 工具函数
└── modules/ # L3业务模块层
├── aia/ # AI智能问答
├── pkb/ # 个人知识库
├── review/ # 审稿系统
└── asl/ # AI智能文献准备目录
```
**说明:**
- LLM调用暂时保留简单实现已够用
- CloseAI配置已完成可直接使用4个LLM
- Week 5再统一抽取LLM网关
**验收标准:**
- [ ] ✅ 三层目录结构清晰
- [ ] ✅ 现有代码迁移完成
- [ ] ✅ 统一错误处理和日志系统
- [ ] ✅ 现有功能无回归
---
### Day 10周末Week 2验收 + Week 3准备
**任务1Week 2总体验收**
- [ ] 前端统一架构验收
- [ ] 后端代码分层验收
- [ ] 编写Week 2总结报告
**任务2ASL准备工作**
- [ ] 阅读ASL需求文档
- [ ] 测试CloseAI连接4个LLM
- [ ] 规划Week 3详细任务
**Week 2交付物清单**
- [ ] ✅ 前端统一布局框架
- [ ] ✅ 模块注册和动态路由机制
- [ ] ✅ 3个现有模块整合完成
- [ ] ✅ 后端三层代码结构
- [ ] ✅ 前端架构设计文档
- [ ] ✅ ASL可以在统一框架下开始开发
---
## 📚 阶段3ASL核心功能开发Week 3-4
> **时间:** 2025-11-21 至 2025-12-042周
> **优势:** 在统一前端架构下开发4个LLM已配置好
> **重点:** 文献筛选核心功能(双模型对比+三模型仲裁)
### 4个LLM配置已完成⭐⭐⭐
**可用的4个LLM**
1. **DeepSeek-V3** (直连)
- 用途:快速初筛,成本低
- 价格¥0.001/1K tokens
- 准确率:~85%
2. **GPT-5-Pro** (CloseAI代理) ⭐ 最新
- 用途:精准筛选,质量高
- 价格¥0.10/1K tokens
- 准确率:~95%
- Model ID: `gpt-5-pro`
3. **Claude-4.5-Sonnet** (CloseAI代理) ⭐ 最新
- 用途:冲突仲裁,结构化输出
- 价格¥0.021/1K tokens
- 准确率:~93%
- Model ID: `claude-sonnet-4-5-20250929`
4. **Qwen-Max** (备选)
- 用途:长文本处理,性价比高
- 价格¥0.004/1K tokens
**配置文档:**
- `02-通用能力层/01-LLM大模型网关/03-CloseAI集成指南.md`
- `07-运维文档/01-环境配置指南.md`
- `backend/CLOSEAI-CONFIG.md`
---
### Week 3 Day 1-2ASL详细设计
#### Day 1上午4个LLM集成测试 ⭐
**任务验证4个LLM可用性**
- [ ] 测试DeepSeek-V3连接
- [ ] 测试GPT-5-Pro连接CloseAI
- [ ] 测试Claude-4.5连接CloseAI
- [ ] 测试Qwen-Max连接
- [ ] 编写LLM统一调用服务
**参考文档:**
- `02-通用能力层/01-LLM大模型网关/03-CloseAI集成指南.md`
#### Day 1下午ASL数据库设计
**任务设计asl_schema表结构**
- [ ] 文献项目表literature_projects
- [ ] PICO配置表pico_configs
- [ ] 文献条目表literature_items
- 包含4个模型的筛选结果字段
- 共识决策字段
- 成本统计字段
**ASL文献条目表设计示例**
```sql
CREATE TABLE asl_schema.literature_items (
id UUID PRIMARY KEY,
project_id UUID REFERENCES asl_schema.literature_projects(id),
title TEXT NOT NULL,
abstract TEXT,
authors TEXT,
journal VARCHAR(200),
year INTEGER,
doi VARCHAR(200),
-- 4个模型的筛选结果
deepseek_decision VARCHAR(50), -- include/exclude/uncertain
deepseek_reason TEXT,
deepseek_confidence FLOAT, -- 0-1置信度
gpt5_decision VARCHAR(50),
gpt5_reason TEXT,
gpt5_confidence FLOAT,
claude_decision VARCHAR(50),
claude_reason TEXT,
claude_confidence FLOAT,
qwen_decision VARCHAR(50), -- 备用
qwen_reason TEXT,
qwen_confidence FLOAT,
-- 最终决策(可能基于多模型投票)
final_decision VARCHAR(50),
consensus_level VARCHAR(50), -- high/medium/low
-- 成本追踪
total_tokens INT,
estimated_cost DECIMAL(10,4),
created_at TIMESTAMP,
updated_at TIMESTAMP
);
```
**输出文档:**
- `03-业务模块/ASL-AI智能文献/02-技术设计/01-数据库设计.md`
#### Day 2ASL API和前端设计
**任务1API设计**
- [ ] 项目管理API
- [ ] 文献导入API
- [ ] 4模型筛选API核心
- [ ] 结果查询API
**任务2前端页面设计**
- [ ]`frontend/src/modules/asl/` 下设计页面结构
- [ ] 自动接入统一导航(已有框架)
- [ ] 设计筛选结果展示显示4个模型意见
**输出文档:**
- `03-业务模块/ASL-AI智能文献/02-技术设计/02-API设计规范.md`
- `03-业务模块/ASL-AI智能文献/02-技术设计/03-前端页面设计.md`
---
### Week 3 Day 3-5 + Week 4ASL核心功能开发
**功能1文献项目管理**
- [ ] 创建/编辑/删除项目
- [ ] PICO配置
- [ ] 项目列表展示
**功能2文献导入**
- [ ] CSV格式解析
- [ ] 批量导入
- [ ] 数据验证
**功能34模型智能筛选 ⭐⭐⭐ 核心功能**
- [ ] 双模型并行筛选DeepSeek + GPT-5
- [ ] 结果一致性判断
- [ ] 冲突时启用Claude仲裁
- [ ] 成本统计和优化
**筛选策略参考CloseAI集成指南**
**策略1双模型对比推荐**
```typescript
async screenWithTwoModels(literature) {
const [deepseek, gpt5] = await Promise.all([
llm.chat('deepseek', prompt),
llm.chat('gpt5', prompt),
]);
if (deepseek.decision === gpt5.decision) {
return { consensus: 'high', decision: deepseek.decision };
}
// 启用Claude仲裁
const claude = await llm.chat('claude', prompt);
return resolveConflict([deepseek, gpt5, claude]);
}
```
**策略2成本优化**
```typescript
// 第一轮用DeepSeek快速初筛便宜
const quickScreen = await llm.chat('deepseek', prompt);
// 只有uncertain的才用GPT-5复核
if (quickScreen.decision === 'uncertain') {
const detailedScreen = await llm.chat('gpt5', prompt);
return detailedScreen;
}
return quickScreen;
```
**功能4筛选结果管理**
- [ ] 结果展示4个模型对比
- [ ] 共识度展示
- [ ] 人工复核界面
- [ ] 导出功能
**Week 4交付物**
- [ ] ✅ ASL Phase 1完整功能
- [ ] ✅ 4个LLM集成完成
- [ ] ✅ 双模型对比+三模型仲裁实现
- [ ] ✅ 筛选结果对比展示
- [ ] ✅ 完整测试通过
---
## 🔧 阶段4LLM网关统一 + 其他模块Week 5+
> **时间:** 2025-12-05 开始
> **策略:** 有了多个模块实践统一抽取LLM网关
### Week 5-6LLM网关重构 ⭐
**为什么Week 5再做**
- ✅ Week 3-4 ASL开发时已有4个模型实践
- ✅ 有了具体使用场景,抽取更合理
- ✅ 避免过度设计
**任务:**
- [ ] 统一LLM调用接口
- [ ] 版本分级(专业版/高级版/旗舰版)
- [ ] 配额管理和限流
- [ ] Token计数和计费
- [ ] 使用记录和监控
**商业模式支持:**
```
专业版 → DeepSeek-V3便宜¥0.001/1K tokens
高级版 → DeepSeek + GPT-5
旗舰版 → DeepSeek + GPT-5 + Claude-4.5 + Qwen
```
**参考:**
- `02-通用能力层/01-LLM大模型网关/[AI对接] LLM网关快速上下文.md`
### Week 7+:其他模块
- 数据清洗模块DC- 设计dc_schema
- 智能统计分析SSA- 设计ssa_schema
- 统计分析工具ST- 设计st_schema
- 运营管理ADMIN- 设计admin_schema
---
## 📊 工作量总结
| 阶段 | 任务 | 预计工作量 | 关键输出 |
|------|------|-----------|---------|
| Week 1 | Schema隔离3+7 | 2天 | 10个Schema + 文档 ✅ |
| Week 2 | 前端架构+后端分层 | 3.5天 | 统一导航 + 三层代码 ⭐⭐⭐ |
| Week 3-4 | ASL开发4个LLM | 2周 | 文献筛选完整功能 ⭐⭐ |
| Week 5+ | LLM网关+其他模块 | 持续 | LLM网关 + 其他模块 |
**总体:** 4周核心开发 + 持续优化扩展
---
## 🎯 成功标准
### Week 1成功标准
- [ ] ✅ 10个Schema全部创建3详细+7空
- [ ] ✅ Platform/AIA/PKB数据100%迁移
- [ ] ✅ AIA和PKB文档完整
- [ ] ✅ 现有功能正常运行
### Week 2成功标准 ⭐⭐⭐
- [ ]**前端统一布局框架完成**
- [ ]**3个现有模块成功接入统一导航**
- [ ]**模块注册机制清晰**
- [ ] ✅ 后端三层代码结构清晰
- [ ] ✅ ASL可以在统一框架下开始开发
### Week 3-4成功标准
- [ ] ✅ ASL文献筛选功能完整
- [ ] ✅ 4个LLM集成成功DeepSeek/GPT-5/Claude-4.5/Qwen
- [ ] ✅ 双模型对比+三模型仲裁实现
- [ ] ✅ 筛选结果对比展示完善
### Week 5+成功标准
- [ ] ✅ LLM网关统一调用接口
- [ ] ✅ 配额管理和计费系统
- [ ] ✅ 其他模块逐步开发
---
## 💡 关键优势总结
### V2.2版的核心优势 ⭐⭐⭐
**1. 架构先行,避免返工**
- 前端统一架构先完成
- ASL在统一框架下开发
- 不需要开发后再重构
**2. 聚焦核心价值**
- Week 1: 数据架构基础 ✅
- Week 2: **前端+后端架构统一**
- Week 3-4: ASL核心功能 ⭐
- Week 5+: 优化和扩展
**3. Just-in-time开发**
- Schema: 3详细+7空需要时再设计
- LLM网关Week 5有实践再抽取
- 其他模块:按需逐步开发
- 避免过度设计
**4. 4个LLM已就绪**
- DeepSeek-V3 ✅ 快速便宜
- GPT-5-Pro ✅ 高质量CloseAI
- Claude-4.5 ✅ 结构化好CloseAI
- Qwen-Max ✅ 长文本
---
## 🔗 相关文档
### 核心参考文档
**前端架构:**
- [前端总体架构设计](../01-平台基础层/06-前端架构/01-前端总体架构设计.md)
- [导航结构设计](../01-平台基础层/06-前端架构/02-导航结构设计.md)
- [架构原型图](../01-平台基础层/06-前端架构/03-架构原型图.html)
**LLM配置**
- [CloseAI集成指南](../02-通用能力层/01-LLM大模型网关/03-CloseAI集成指南.md) ⭐
- [环境配置指南](../07-运维文档/01-环境配置指南.md)
- [环境变量配置模板](../07-运维文档/02-环境变量配置模板.md)
**Schema设计**
- [数据库连接配置](../09-架构实施/02-数据库连接配置.md)
- [migration脚本指南](../09-架构实施/migration-scripts/README.md)
---
## 📋 详细任务清单To Do List
> **共25项核心任务**涵盖Week 1至Week 4的完整开发计划
### 🎯 Week 1Schema隔离3详细+7空- 14项任务
#### Day 1-2架构规划与设计前5项
**✅ 任务110个Schema架构规划** 📐 - ✅ **已完成 2025-11-12**
- [x] 绘制10个Schema的完整架构图架构层面
- [x] 明确3个需要迁移的SchemaPlatform/AIA/PKB
- [x] 明确7个空Schema的用途ASL/Common/DC/RVW/ADMIN/SSA/ST
- [x] 编写Schema架构文档
- 📄 输出:`09-架构实施/01-Schema隔离架构设计10个.md`
- ⏱️ 实际时间2小时
**✅ 任务2platform_schema设计** - ✅ **已完成 2025-11-12**
- [x] 设计用户表结构从public.users迁移
- [x] 定义字段:用户信息、权限、配额、试用状态等
- [x] 编写SQL建表语句
- ⏱️ 实际时间包含在任务1
**✅ 任务3aia_schema设计** - ✅ **已完成 2025-11-12**
- [x] 设计5个表projects, conversations, messages, general_conversations, general_messages
- [x] 定义表关系和外键约束
- [x] 编写SQL建表语句
- ⏱️ 实际时间包含在任务1
**✅ 任务4pkb_schema设计** - ✅ **已完成 2025-11-12**
- [x] 设计5个表包含Phase 3的批处理任务表
- [x] 包含Phase 2全文阅读字段full_text, full_text_length等
- [x] 编写SQL建表语句
- ⏱️ 实际时间包含在任务1
**✅ 任务57个空Schema的SQL + 迁移脚本** - ✅ **已完成 2025-11-12**
- [x] 编写7个空Schema的CREATE SCHEMA语句ASL/Common/DC/RVW/ADMIN/SSA/ST
- [x] 编写001脚本创建10个Schema
- [x] 编写002脚本迁移platform_schema
- [x] 编写003脚本迁移aia_schema
- [x] 编写004脚本迁移pkb_schema
- [x] 编写005脚本验证数据完整性
- 📄 输出5个SQL迁移脚本 ✅
- ⏱️ 实际时间1小时
---
#### Day 3执行迁移第6-7项
**✅ 任务6执行Schema迁移** ⭐ - ✅ **已完成 2025-11-12**
- [x] 备份当前数据库(测试环境,已确认可接受数据丢失)
- [x] 执行001脚本创建10个Schema3详细+7空
- [x] 执行002-004脚本迁移3个Schema的数据
- [x] 执行005脚本验证数据完整性
- [x] 记录迁移日志
- 📄 输出:
- `09-架构实施/Schema迁移完成报告.md`
- `09-架构实施/数据库验证通过.md`
- ⏱️ 实际时间30分钟
- 💡 **遇到问题**列名映射问题rawOutput/outputFields已修复
**✅ 任务7验证现有功能** - ✅ **已完成 2025-11-12**
- [x] 测试AI智能问答功能使用aia_schema- 项目API、对话API正常
- [x] 测试知识库功能使用pkb_schema- 知识库API正常
- [x] 验证10个Schema全部创建
- [x] 修复发现的问题 - 无需修复Prisma自动处理
- ✅ 验收标准现有功能正常运行数据迁移100%成功 ✅
- 📄 输出:`09-架构实施/快速功能测试报告.md`
- ⏱️ 实际时间15分钟
---
#### Day 4Prisma配置与文档第8-10项
**✅ 任务8Prisma多Schema配置** ⭐ - ✅ **已完成 2025-11-12**
- [x] 更新schema.prisma支持11个Schema10个+public
- [x] 为13个models添加@@schema()标签
- [x] 配置datasource.schemas数组
- [x] 生成Prisma Client成功
- [x] 验证API功能正常无需单元测试集成测试已通过
- 📄 输出:
- `backend/prisma/schema.prisma` 已更新 ✅
- `09-架构实施/Prisma配置完成报告.md`
- ⏱️ 实际时间30分钟
- 💡 **发现**移除了deprecated的previewFeatures
**✅ 任务9创建AIA数据库设计文档** - ✅ **已完成 2025-11-12**
- [x] 创建 `03-业务模块/AIA-AI智能问答/02-技术设计/01-数据库设计.md`
- [x] 基于已迁移的5个表编写完整文档
- [x] 包括表结构、Prisma Model、业务规则、索引设计、ER关系图
- [x] 添加跨Schema引用说明
- 📄 输出完整文档523行含Mermaid图表
- ⏱️ 实际时间30分钟
**✅ 任务10创建PKB数据库设计文档** - ✅ **已完成 2025-11-12**
- [x] 创建 `03-业务模块/PKB-个人知识库/02-技术设计/01-数据库设计.md`
- [x] 基于已迁移的5个表编写完整文档含Phase 3的3个批处理表
- [x] 重点说明Phase 2全文阅读相关字段full_text, full_text_length, metadata
- [x] 详细说明Phase 3批处理工作流程
- 📄 输出完整文档592行含Mermaid图表和流程图
- ⏱️ 实际时间30分钟
---
#### Day 5代码适配与验收第11-14项
**❌ 任务11代码适配新Schema** - 🎉 **取消无需执行2025-11-12**
- ~~[ ] 更新所有数据库查询代码~~
- ~~[ ] 使用新的Prisma Client~~
- ~~[ ] 更新API路由~~
- ~~[ ] 运行集成测试~~
- 💡 **重大发现**Prisma自动处理Schema路由
- ✅ 代码无需修改
- ✅ 所有API自动工作
- ✅ 跨Schema外键透明支持
- 🎉 **节省时间**3-4小时工作量
- ⏱️ 实际时间0小时
**⏸️ 任务12补充API设计文档** - ⏸️ **延后执行**
- [ ] 创建 `03-业务模块/AIA-AI智能问答/02-技术设计/02-API设计规范.md`
- [ ] 创建 `03-业务模块/PKB-个人知识库/02-技术设计/02-API设计规范.md`
- [ ] 基于现有API routes整理文档
- 📌 **建议**可在Week 2-3开发过程中边开发边完善
- ⏱️ 预计时间1小时
**⏸️ 任务13Week 1总结验收** 📊 - ⏸️ **延后执行**
- [x] 验证10个Schema全部创建 ✅
- [x] 验证3个详细Schema数据迁移完整 ✅
- [x] 更新文档:记录迁移过程和结果 ✅4个验证报告
- [ ] 编写Week 1总结报告可与Week 2一起验收
- ✅ 交付物检查清单:
- [x] 10个Schema全部创建3详细+7空
- [x] Platform/AIA/PKB数据100%迁移 ✅
- [x] Prisma模型更新完成 ✅
- [x] 现有功能正常运行 ✅
- [x] AIA和PKB完整文档数据库
- [x] 迁移脚本文档化 ✅
- [ ] API设计文档延后
- 📌 **核心任务已完成**11/14任务79%
- ⏱️ 剩余时间1小时
**⏸️ 任务14Week 2准备工作** - ⏸️ **部分完成**
- [x] 规划Week 2重点任务前端架构优先
- [ ] 阅读前端架构设计文档
- [ ] 准备前端架构设计会议议题
- 📌 **建议**直接进入Week 2任务15前端架构设计
- ⏱️ 预计时间30分钟
---
### 🎨 Week 2前端统一架构 + 后端分层 - 6项任务
#### Day 6-7前端架构上半周第15-18项⭐⭐⭐
**✅ 任务15前端架构设计** ⭐ 核心任务
- [ ] 梳理前端架构需求和目标
- [ ] 确定前端技术栈和工具链UI组件库、路由、状态管理
- [ ] 设计模块注册机制
- [ ] 设计统一导航和布局方案(顶部导航、侧边菜单、面包屑)
- [ ] 编写前端架构设计文档
- 📄 输出:
- `01-平台基础层/06-前端架构/04-前端架构实施方案-V2.md`
- 更新:`01-平台基础层/06-前端架构/01-前端总体架构设计.md`
- 更新:`01-平台基础层/06-前端架构/02-导航结构设计.md`
- 📖 参考文档:
- `01-平台基础层/06-前端架构/01-前端总体架构设计.md`
- `01-平台基础层/06-前端架构/02-导航结构设计.md`
- `01-平台基础层/06-前端架构/03-架构原型图.html`
- ⏱️ 预计时间半天4小时
**✅ 任务16创建统一布局框架**
- [ ] 创建 `frontend/src/layouts/MainLayout.tsx`
- 顶部导航栏组件
- 侧边菜单组件
- 主内容区
- 面包屑导航
- [ ] 创建 `frontend/src/components/TopNav.tsx`
- [ ] 创建 `frontend/src/components/SideMenu.tsx`
- [ ] 创建 `frontend/src/components/Breadcrumb.tsx`
- ⏱️ 预计时间半天4小时
**✅ 任务17实现模块注册机制**
- [ ] 创建 `frontend/src/router/moduleRegistry.ts`
- [ ] 定义模块配置接口
- [ ] 实现动态路由加载
- [ ] 实现模块权限控制
- ⏱️ 预计时间3小时
**✅ 任务18整合现有模块 + 创建占位模块**
- [ ] 重构AIA模块接入统一导航现有功能
- [ ] 重构PKB模块接入统一导航现有功能
- [ ] 重构审稿模块接入统一导航(现有功能)
- [ ] 创建ASL模块入口占位符显示"开发中"
- [ ] 创建数据清洗入口(占位符)
- [ ] 创建统计分析入口(占位符)
- [ ] 创建运营管理入口(占位符)
- ✅ 验收标准:
- 3个现有模块成功接入统一导航
- 模块切换流畅,路由正常
- 占位模块显示"开发中"状态
- ⏱️ 预计时间1天
---
#### Day 8-9后端分层下半周第19项
**✅ 任务19后端代码分层**
- [ ] 创建 platform/common/modules 三层目录
- [ ] 迁移现有代码到新结构
- platform/auth, permissions, users
- common/llm (deepseek.ts, closeai.ts, qwen.ts), files, utils
- modules/aia, pkb, review, asl准备目录
- [ ] 建立统一错误处理
- [ ] 建立统一日志系统
- ✅ 验收标准:
- 三层目录结构清晰
- 现有代码迁移完成
- 现有功能无回归
- ⏱️ 预计时间2天
---
#### Day 10验收第20项
**✅ 任务20Week 2验收 + Week 3准备** 📊
- [ ] 前端统一架构验收
- 统一布局创建完成
- 模块注册和动态路由机制
- 3个现有模块整合完成
- [ ] 后端代码分层验收
- 三层代码结构
- 统一错误处理和日志系统
- [ ] 编写Week 2总结报告
- [ ] 阅读ASL需求文档
- [ ] 测试CloseAI连接4个LLM
- [ ] 规划Week 3详细任务
- ✅ 交付物清单:
- 前端统一布局框架
- 模块注册和动态路由机制
- 3个现有模块整合完成
- 后端三层代码结构
- 前端架构设计文档
- ASL可以在统一框架下开始开发
- ⏱️ 预计时间1天
---
### 📚 Week 3-4ASL核心功能开发 - 5项任务
#### Week 3 Day 1-2设计第21-24项
**✅ 任务214个LLM集成测试** ⭐
- [ ] 测试DeepSeek-V3连接直连
- [ ] 测试GPT-5-Pro连接CloseAI代理
- [ ] 测试Claude-4.5-Sonnet连接CloseAI代理
- [ ] 测试Qwen-Max连接备选
- [ ] 编写LLM统一调用服务
- 📖 参考文档:
- `02-通用能力层/01-LLM大模型网关/03-CloseAI集成指南.md`
- `07-运维文档/01-环境配置指南.md`
- `backend/CLOSEAI-CONFIG.md`
- ⏱️ 预计时间:半天
**✅ 任务22ASL数据库设计**
- [ ] 设计asl_schema表结构
- literature_projects文献项目表
- pico_configsPICO配置表
- literature_items文献条目表包含4个模型的筛选结果字段
- [ ] 包含4个模型的筛选结果字段decision, reason, confidence
- [ ] 包含共识决策字段final_decision, consensus_level
- [ ] 包含成本统计字段total_tokens, estimated_cost
- [ ] 编写SQL建表语句
- 📄 输出:`03-业务模块/ASL-AI智能文献/02-技术设计/01-数据库设计.md`
- ⏱️ 预计时间:半天
**✅ 任务23ASL API设计**
- [ ] 项目管理API创建、编辑、删除、列表
- [ ] 文献导入APICSV解析、批量导入
- [ ] 4模型筛选API核心API
- [ ] 结果查询API
- 📄 输出:`03-业务模块/ASL-AI智能文献/02-技术设计/02-API设计规范.md`
- ⏱️ 预计时间3小时
**✅ 任务24ASL前端页面设计**
- [ ]`frontend/src/modules/asl/` 下设计页面结构
- [ ] 自动接入统一导航(已有框架)
- [ ] 设计筛选结果展示显示4个模型意见
- [ ] 设计人工复核界面
- 📄 输出:`03-业务模块/ASL-AI智能文献/02-技术设计/03-前端页面设计.md`
- ⏱️ 预计时间3小时
---
#### Week 3 Day 3-5 + Week 4开发第25项⭐⭐⭐
**✅ 任务25ASL核心功能开发** ⭐⭐⭐ 最重要
- [ ] **功能1文献项目管理**
- 创建/编辑/删除项目
- PICO配置
- 项目列表展示
- [ ] **功能2文献导入**
- CSV格式解析
- 批量导入
- 数据验证
- [ ] **功能34模型智能筛选** ⭐核心功能
- 双模型并行筛选DeepSeek + GPT-5
- 结果一致性判断
- 冲突时启用Claude仲裁
- 成本统计和优化
- 筛选策略实现:
- 策略1双模型对比推荐
- 策略2成本优化DeepSeek快速初筛 → GPT-5精准复核
- [ ] **功能4筛选结果管理**
- 结果展示4个模型对比
- 共识度展示
- 人工复核界面
- 导出功能
- ✅ Week 4交付物
- ASL Phase 1完整功能
- 4个LLM集成完成
- 双模型对比+三模型仲裁实现
- 筛选结果对比展示
- 完整测试通过
- ⏱️ 预计时间1.5周9-10天
---
## 📊 任务统计
| 阶段 | 任务数量 | 预计工作量 | 关键输出 |
|------|---------|-----------|---------|
| **Week 1** | 14项 | 2天 | 10个Schema + Prisma配置 + 文档 ✅ |
| **Week 2** | 6项 | 3.5天 | 统一前端架构 + 三层后端代码 ⭐⭐⭐ |
| **Week 3-4** | 5项 | 2周 | ASL完整功能4个LLM集成⭐⭐⭐ |
| **总计** | **25项** | **约4周** | 完整架构 + ASL核心功能 |
---
## 🎯 下一步行动
### 立即开始如果还没开始Week 1
1. **任务1**10个Schema架构规划 📐
- 创建 `09-架构实施/01-Schema隔离架构设计10个.md`
- 绘制架构图
2. **任务2-5**详细设计3个Schema + 7个空Schema
- 编写SQL建表语句
- 编写5个迁移脚本
3. **任务6**执行Schema迁移 ⭐
### 如果Week 1已完成
1. **任务15**:前端架构设计会议 ⭐⭐⭐
- 确定技术栈
- 设计模块注册机制
- 设计导航结构
2. **任务16-18**:实施前端统一架构
3. **任务19**:后端代码分层
---
**制定人:** AI助手
**版本:** V2.2完整版融合V2.1+V2.2
**最后更新:** 2025-11-09
**核心策略:**
- ✅ Schema隔离3详细+7空- V2.1详细内容
-**前端统一架构优先** - V2.2核心调整 ⭐⭐⭐
- ✅ 后端代码分层 - 模块清晰
- ✅ ASL在统一框架下开发 - 高效开发
- ✅ 4个LLM已就绪CloseAI配置完成- 质量保证
- ✅ LLM网关延后到Week 5 - Just-in-time开发
**核心理念:架构先行 + 聚焦核心 + Just-in-time = 高效务实!** ⭐⭐⭐