# 下一阶段行动计划 V2.1 - 10个Schema完整? > **计划周期?* 2025-11-07 ?2025-12-06?周) > **核心目标?* 10个Schema隔离完整实施 + 代码分层 + ASL核心功能 > **制定时间?* 2025-11-07 > **版本?* V2.1?0个Schema完整版) > **最后更新:** 2025-11-09 --- ## 💡 核心变化亮点 > **🎯 决定:直接实?0个Schema,不分阶段!** **为什么?** - ?额外成本?小时?个空Schema无数据迁移) - ?现在是测试系统,最佳实施时?- ?架构一次到位,避免二次迁移 - ?Week 1?天,时间完全够用 **变化?* - ?5个核?5个预? ?**10个全部实?* - ?分阶段迁? ?**一次性完?* - 新增SSA(智能统计分析)和ST(统计分析工具)两个Schema --- ## 🎯 V2.1 vs V2.0 的关键调? | 项目 | V2.0 | V2.1(完整版)| 原因 | |------|------|--------------|------| | Schema数量 | 8个全?| ?**10个全部实?* ?| 额外成本?小时,一次到?| | 独立部署 | Week 2实施 | ?暂不实施 | 当前重点是云端系?| | Docker?| Week 2?| ?暂不?| 不是当前重点 | | Monorepo | 未提?| ?暂不采用 | 目录分层已够?| | 总时?| 5?| 4??| 去掉独立部署实施,节??| --- ## 📊 整体规划 - 四周四阶? ``` Week 1(Schema基础? Week 2(代码架构) Week 3-4(ASL开发) 10个Schema全部隔离 ? 代码分层+LLM网关 ? 标题摘要初筛+全文复筛 ``` | 阶段 | 时间 | 核心任务 | 交付成果 | 优先?| |------|------|---------|---------|--------| | **阶段1** | Week 1 | **10个Schema全部隔离** ?| 10个Schema完成 | P0 ⭐⭐?| | **阶段2** | Week 2 | 代码分层+LLM网关 | 三层架构+LLM网关 | P0 ⭐⭐?| | **阶段3** | Week 3 | ASL标题摘要初筛 | 双模型筛选功?| P0 ⭐⭐ | | **阶段4** | Week 4 | ASL全文复筛+测试 | 完整筛选流?| P0 ⭐⭐ | --- ## 🚀 阶段1?0个Schema完整隔离(Week 1? > **时间?* 2025-11-07 ?2025-11-13?天) > **目标?* 一次性完?0个Schema的完整隔离,架构一步到? ### 核心原则:一次到?⭐⭐? **全部创建的Schema?0个)?* ### 详细设计+迁移?个)?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个文? --- ### 只创建空Schema?个)📋 命名空间预留 **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只处?个Schema的迁?- 其余7个只是`CREATE SCHEMA`(几秒钟?- 总工作量?天降低到**1.5?* ? **收益分析?* 1. ?**聚焦当前需?* - Week 1专注架构和迁?2. ?**避免过度设计** - ASL等模块需求未最终确?3. ?**Just-in-time设计** - 开发前再详细设计,更准?4. ?**架构完整** - 10个命名空间已预留,随时扩?5. ?**降低返工风险** - Week 3需求可能调? --- ### Day 1-2:Schema迁移准备(聚?个) #### Day 1上午?0个Schema架构规划 **任务:规划完整的10个Schema架构** - [ ] 绘制10个Schema的完整架构图(架构层面) - [ ] 明确3个需要迁移的Schema - [ ] 明确7个空Schema的用?- [ ] 编写Schema架构文档 **输出文档?* - `09-架构实施/01-Schema隔离架构设计?0个).md` **Schema依赖关系?* ``` 业务模块Schema(AIA/PKB/ASL/DC/RVW/ADMIN/SSA/ST? ?引用 Common Schema(通用数据,暂为空? ?引用 Platform Schema(用户、权限) ``` --- #### Day 1下午-Day 2上午?个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_schema(AI智能问答?* ?现有功能迁移 ```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下午?个空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脚本?个详?7个空?- [ ] 编写3个Schema的数据迁移脚?- [ ] 编写数据验证脚本 - [ ] 在本地测试环境验? **迁移策略?* 1. 创建10个新Schema?个详?7个空,一次性) 2. ?个Schema中创建表结构并迁移数?3. 验证数据完整?4. 清理public schema旧表(可选,因为是测试系统) **输出脚本?个)?* | 脚本 | 说明 | 工作?| |------|------|--------| | `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:执?个Schema迁移 ? **上午:执行迁?* - [ ] 备份当前数据库(虽然是测试数据,但还是备份) - [ ] 执行001脚本:创?0个Schema?详细+7空) - [ ] 执行002-004脚本:迁?个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-5:Prisma Schema更新 + 补充文档 #### Day 4上午:Prisma多Schema配置?个详?7个预留) **任务?* - [ ] 更新Prisma配置支持10个Schema - [ ] ?个Schema创建完整的Prisma模型(Platform/AIA/PKB?- [ ] ?个空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", // 📋 空Schema,Week 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 Schema(AI智能问答 - 迁移现有表)===== 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模型 // ===== 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全文阅读相关字段 **工作量估算:** ?小时,共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全部创建?详细+7空) - [ ] ?Platform/AIA/PKB数据100%迁移 - [ ] ?Prisma模型更新完成?个详细Schema?- [ ] ?现有功能正常运行 - [ ] ?AIA和PKB完整文档(数据库+API?- [ ] ?迁移脚本文档? --- ## Week 2:代码分层重构(2025-11-14 ?2025-11-20? > **重点?* 建立清晰的代码分层架构,为模块化开发打好基础 ### 目标 - 建立3层代码结构(Platform/Common/Business?- 完成现有代码重构 - 建立代码规范和最佳实? ### Day 6-7:Platform层和Common层重? **任务?* - [ ] 提取平台基础服务(认证、权限) - [ ] 提取通用能力(LLM调用、文件处理) - [ ] 建立统一的错误处?- [ ] 建立统一的日志系? **代码结构?* ``` backend/src/ ├── platform/ ? ├── auth/ # 认证服务 ? ├── permissions/ # 权限管理 ? └── users/ # 用户管理 ├── common/ ? ├── llm/ # LLM网关 ? ├── files/ # 文件处理 ? └── utils/ # 工具函数 └── modules/ ├── aia/ # AI智能问答 ├── pkb/ # 个人知识? └── asl/ # AI智能文献(准备) ``` ### Day 8-10:Business模块重构 **任务?* - [ ] 重构AIA模块代码 - [ ] 重构PKB模块代码 - [ ] 建立模块间调用规?- [ ] 完善单元测试 **验收标准?* - [ ] ?代码分层清晰 - [ ] ?模块边界明确 - [ ] ?测试覆盖?> 80% - [ ] ?现有功能无回? --- ## Week 3-4:ASL模块开发(2025-11-21 ?2025-12-04? > **重点?* 完成AI智能文献核心功能 ### Week 3 Day 1-2:ASL详细设计 ?此时再设? **任务?* - [ ] 详细设计asl_schema表结?- [ ] 编写ASL数据库设计文?- [ ] 编写ASL API设计文档 - [ ] 创建ASL表结?- [ ] 更新Prisma模型(添加ASL模型? **为什么Week 3再设计?** - ?Week 1-2架构已搭好,有了清晰的参?- ?需求经过Week 1-2的思考更加明?- ?避免Week 1过度设计和返?- ?Just-in-time设计,更高效 ### Week 3 Day 3-5:ASL Phase 1核心功能 **功能1:文献项目管?* - [ ] 创建/编辑/删除项目 - [ ] PICO配置 - [ ] 项目列表展示 **功能2:文献导?* - [ ] CSV导入 - [ ] 批量导入 - [ ] 数据验证 **功能3:AI双模型筛?* - [ ] 集成2个大模型 - [ ] 并行筛?- [ ] 结果对比 ### Week 4:ASL Phase 1完善 **功能4:筛选结果管?* - [ ] 结果展示 - [ ] 人工复核 - [ ] 导出功能 **功能5:测试和优化** - [ ] 完整功能测试 - [ ] 性能优化 - [ ] 用户体验优化 --- ## Week 5-6:DC和RVW模块规划?025-12-05 ?2025-12-18? > **重点?* 根据ASL开发经验,规划后续模块 ### 数据清洗模块(DC)设? **此时根据需求再设计dc_schema?* - 清洗任务管理 - 规则引擎 - 清洗结果 ### 审稿系统模块(RVW)设? **此时根据需求再设计rvw_schema?* - 审稿项目管理 - 审稿任务分配 - 审稿意见管理 **说明?* 这两个模块的详细Schema设计推迟到开发前,避免现在过度设计? --- ## 后续规划(Week 7+? ### ADMIN模块(运营管理) - 设计admin_schema - 组织管理 - 订阅管理 - 使用统计 ### SSA和ST模块(智能统计) - 根据需求设计ssa_schema和st_schema - 统计分析引擎 - 分析工具集成 --- ## 📊 工作量总结(务实版? | 阶段 | 原计?| 新计?| 节省 | |------|--------|--------|------| | Week 1 Schema迁移 | 2天(5个详细) | **1.5天(3个详细)** | ?0.5?| | Week 1 文档补充 | 0 | **0.5天(AIA/PKB文档?* | 新增 | | Prisma模型 | 5个详?| **3个详?* | ?简?| | ASL设计 | Week 1 | **Week 3**(推迟) | ?避免返工 | | 总Week 1工作?| 2?| **2?* | 相同,但更合?| **关键优势?* 1. ?Week 1聚焦架构和迁移,不做新设?2. ?ASL设计推迟到开发前,需求更明确 3. ?AIA和PKB文档补充,与ASL保持一?4. ?7个空Schema预留,随时可扩展 5. ?降低返工风险,提高开发效? --- ## 🎯 下一步行? 1. **立即开始Week 1 Day 1**:规?0个Schema架构 2. **Day 1-2**:编?个Schema的详细设计和迁移脚本 3. **Day 3**:执行迁移,验证功能 4. **Day 4**:更新Prisma,补充AIA/PKB数据库文?5. **Day 5**:代码适配,补充AIA/PKB API文档,Week 1总结 **记住:架构预?+ Just-in-time设计 = 高效务实?* ⭐⭐? --- ## 附录:Week 1详细交付物清? **交付物:** 1. ?10个Schema全部创建?详细+7空) 2. ?完整的Schema架构设计文档 3. ?Prisma Schema更新完成?个详细Schema模型?4. ?现有功能(AIA、PKB)迁移完成(7个表?5. ?AIA和PKB完整文档(数据库+API?6. ?7个空Schema创建完成(ASL/Common/DC/RVW/ADMIN/SSA/ST? **验收标准?* - [ ] ?**10个Schema全部创建成功** - [ ] ?数据迁移100%成功(platform/aia/pkb三个Schema?- [ ] ?现有功能正常运行(AI智能问答、知识库?- [ ] ?Prisma Client正常工作(支?0个Schema?- [ ] ?AIA和PKB文档完整 - [ ] ?7个空Schema验证通过(架构预留) --- ## 🔧 阶段2:代码分?+ LLM网关(Week 2? > **时间?* 2025-11-14 ?2025-11-20?天) > **目标?* 建立三层代码架构 + 实现LLM网关 ### 务实策略:只做云端统一系统 ? **做什么:** - ?三层目录结构(platform/common/modules?- ?代码迁移和重?- ?LLM网关实现 - ?模块化API路由 **暂不做:** - ?模块独立部署配置 - ?Docker文件 - ?独立运行脚本 **原因?* 当前重点是云端系统开发,独立部署在Week 7+再考虑 --- ### Day 6-7:三层目录重? **任务?* 1. 创建三层目录结构 2. 迁移现有代码到新结构 3. 重构为清晰的分层 **目录结构?* ``` backend/src/ ├── platform/ # L1:平台基础?? ├── auth/ # 认证(JWT、Session?? ├── permissions/ # 权限管理(RBAC?? └── users/ # 用户服务 ├── common/ # L2:通用能力?? ├── llm/ # LLM网关 ? ├── files/ # 文件处理 ? └── utils/ # 工具函数 └── modules/ # L3:业务模块层 ├── aia/ # AI智能问答 ├── pkb/ # 个人知识? └── asl/ # AI智能文献(准备) ``` --- ### Day 8-9:LLM网关实现 **核心功能?* 1. **多模型支?* - DeepSeek - OpenAI - Claude - 统一接口 2. **Feature Flags** - 模型开? - 功能开? - 配额管理 3. **使用记录** - Token统计 - 费用计算 - 日志记录 **交付?* - LLM网关核心代码 - 配置文件 - 使用文档 --- ### Day 10:Week 2验收 **验收标准?* - [ ] ?三层代码架构清晰 - [ ] ?LLM网关稳定可用 - [ ] ?API路由模块?- [ ] ?ASL可以开始开? --- ## 🎯 阶段3-4:ASL核心功能开发(Week 3-4? > **时间?* 2025-11-21 ?2025-12-04?周) > **目标?* 完成ASL Phase 1 - 文献初筛功能 ### Week 3 Day 1-2:ASL详细设计 ? **任务?* - [ ] 详细设计asl_schema表结?- [ ] 编写ASL数据库设计文?- [ ] 编写ASL API设计文档 - [ ] 创建ASL表结?- [ ] 更新Prisma模型 **为什么Week 3再设计?** - Week 1-2架构已搭?- 需求更加明?- 避免过度设计 ### Week 3 Day 3-5:ASL Phase 1核心功能 **功能1:文献项目管?* - 创建/编辑/删除项目 - PICO配置 - 项目列表 **功能2:文献导?* - CSV导入 - 批量导入 - 数据验证 **功能3:AI双模型筛?* - 集成2个大模型 - 并行筛?- 结果对比 ### Week 4:ASL Phase 1完善 **功能4:筛选结果管?* - 结果展示 - 人工复核 - 导出功能 **功能5:测试和优化** - 完整功能测试 - 性能优化 - 用户体验优化 --- ## 📊 关键调整总结 **V2.1版(3详细+7空)vs V2.0版(5详细+5空)?* | 项目 | V2.0 | V2.1 | 变化 | |------|------|------|------| | 详细Schema | 5?| **3?* | ?聚焦现有 | | 空Schema | 5?| **7?* | ?更完整预?| | Week 1工作?| 2?| **1.5?* | ?降低 | | ASL设计时机 | Week 1 | **Week 3** | ?推迟 | | 文档补充 | ?| **AIA/PKB** | ?新增 | **核心策略?* 1. ?聚焦当前(只迁移现有数据?2. ?架构预留?0个命名空间) 3. ?Just-in-time设计(开发前再详细设计) 4. ?文档完整(与ASL保持一致) --- ## 🎯 成功标准 ### Week 1成功标准 - [ ] ?10个Schema全部创建?详细+7空) - [ ] ?Platform/AIA/PKB数据100%迁移 - [ ] ?Prisma模型更新?个详细) - [ ] ?现有功能正常运行 - [ ] ?AIA和PKB文档完整 ### Week 2成功标准 - [ ] ?三层代码架构清晰 - [ ] ?LLM网关稳定可用 - [ ] ?API路由模块?- [ ] ?ASL可以开始开? ### Week 3-4成功标准 - [ ] ?ASL标题摘要初筛完成 - [ ] ?ASL全文复筛完成 - [ ] ?用户可以完整使用ASL功能 --- ## 📝 关于Monorepo的决? **决定:暂不采用Monorepo** ? **理由?* 1. 目录分层已经足够清晰(platform/common/modules?2. Monorepo工具(lerna、nx)增加复杂度 3. 单人开发,收益不明?4. 等未来真正需要独立部署时再考虑 --- **制定人:** AI助手 **版本?* V2.1?详细+7?- 务实版) **最后更新:** 2025-11-09 **核心调整?* - ?3个Schema详细迁移(Platform/AIA/PKB?- ?7个空Schema预留(ASL/Common/DC/RVW/ADMIN/SSA/ST?- ?ASL设计推迟到Week 3 - ?补充AIA/PKB完整文档 - ?架构预留 + Just-in-time设计 = 高效务实 ?