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
This commit is contained in:
@@ -1,89 +1,89 @@
|
||||
# 銝衤<EFBFBD><EFBFBD>嗆挾銵<EFBFBD>𢆡霈∪<EFBFBD> V2.0 - 璅∪<E79285><E288AA>𡝗沲<F0A19D97><E6B2B2><EFBFBD><EFBFBD>?
|
||||
# 下一阶段行动计划 V2.0 - 模块化架构优先
|
||||
|
||||
> **霈∪<EFBFBD><EFBFBD>冽<EFBFBD>嚗?* 2025-11-07 <EFBFBD>?2025-12-13嚗?<3F>剁<EFBFBD>
|
||||
> **<EFBFBD>詨<EFBFBD><EFBFBD>格<EFBFBD>嚗?* 撱箇<E692B1><E7AE87>舐𡠺蝡钅<E89DA1>蝵脩<E89DB5>璅∪<E79285><E288AA>𡝗沲<F0A19D97>?+ 摰峕<E691B0>ASL<53>詨<EFBFBD><E8A9A8>蠘<EFBFBD>
|
||||
> **<EFBFBD>嗅<EFBFBD><EFBFBD>園𡢿嚗?* 2025-11-07
|
||||
> **<EFBFBD><EFBFBD>𧋦嚗?* V2.0嚗<EFBFBD>沲<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗?
|
||||
> **计划周期:** 2025-11-07 至 2025-12-13(5周)
|
||||
> **核心目标:** 建立可独立部署的模块化架构 + 完成ASL核心功能
|
||||
> **制定时间:** 2025-11-07
|
||||
> **版本:** V2.0(架构优先版)
|
||||
|
||||
---
|
||||
|
||||
## 🎯 战略调整说明
|
||||
|
||||
### 銝箔<EFBFBD>銋<EFBFBD><EFBFBD>靚<EFBFBD>㟲嚗?
|
||||
### 为什么要调整?
|
||||
|
||||
**原计划(V1.0):** 快速启动ASL开发,暂缓Schema隔离
|
||||
|
||||
**<EFBFBD>啗恣<EFBFBD>𡜐<EFBFBD>V2.0嚗㚁<EFBFBD>** <20><><EFBFBD>憟賣沲<E8B3A3><E6B2B2>抅蝖<E68A85>嚗<EFBFBD><E59A97>撘<EFBFBD><E69298>睲<EFBFBD><E79DB2>∪<EFBFBD><E288AA>?
|
||||
**新计划(V2.0):** 先打好架构基础,再开发业务功能
|
||||
|
||||
### 核心变化
|
||||
|
||||
| 项目 | V1.0 | V2.0 | 原因 |
|
||||
|------|------|------|------|
|
||||
| Schema<EFBFBD>𠉛氖 | <20>?<3F><><EFBFBD> | <20>?敹<><E695B9> | <20>祉<EFBFBD><E7A589>函蔡<E587BD><E894A1><EFBFBD><EFBFBD>?|
|
||||
| 璅∪<EFBFBD><EFBFBD>祉<EFBFBD><EFBFBD>?| <20><> 霈∪<E99C88>銝?| 潃?<3F><>擃䀝<E69383><E4809D><EFBFBD>漣 | 90%<25>祉<EFBFBD><E7A589>函蔡<E587BD><E894A1>瘙?|
|
||||
| 撘<EFBFBD><EFBFBD>煾<EFBFBD><EFBFBD>?| ASL<53>閙芋<E99699>?| ASL+DC+RVW銝㗇芋<E39787>?| 蝏煺<E89D8F><E785BA>嗆<EFBFBD><E59786><EFBFBD><EFBFBD> |
|
||||
| <EFBFBD>園𡢿<EFBFBD><EFBFBD><EFBFBD> | 1<>典抅蝖<E68A85>+3<>典<EFBFBD><E585B8>?| 2<>典抅蝖<E68A85>+3<>典<EFBFBD><E585B8>?| <20>嗆<EFBFBD><E59786>訫<EFBFBD>憓𧼮<E68693> |
|
||||
| Schema隔离 | ❌ 暂缓 | ✅ 必做 | 独立部署的前提 |
|
||||
| 模块独立性 | 📋 计划中 | ⭐ 最高优先级 | 90%独立部署需求 |
|
||||
| 开发重点 | ASL单模块 | ASL+DC+RVW三模块 | 统一架构标准 |
|
||||
| 时间分配 | 1周基础+3周开发 | 2周基础+3周开发 | 架构投入增加 |
|
||||
|
||||
---
|
||||
|
||||
## <EFBFBD><EFBFBD> <20>港<EFBFBD>閫<EFBFBD><E996AB> - 鈭𥪜𪂹鈭娪𧫴畾?
|
||||
## 📊 整体规划 - 五周五阶段
|
||||
|
||||
```
|
||||
Week 1-2嚗<EFBFBD>沲<EFBFBD><EFBFBD>抅蝖<EFBFBD>嚗? Week 3-4嚗<EFBFBD>瓲敹<EFBFBD><EFBFBD><EFBFBD>踝<EFBFBD> Week 5嚗<EFBFBD><EFBFBD>霂蓥<EFBFBD><EFBFBD>吔<EFBFBD>
|
||||
Schema<EFBFBD>𠉛氖+璅∪<E79285><E288AA>𡝗沲<F0A19D97>? <20>? ASL<53><4C><EFBFBD><EFBFBD>䁅<EFBFBD><E48185>萘<EFBFBD>+<2B>冽<EFBFBD>憭滨<E686AD> <20>? 憭𡁏芋<F0A1818F>𡑒<EFBFBD>靚?瘚贝<E7989A>
|
||||
Week 1-2(架构基础) Week 3-4(核心功能) Week 5(测试优化)
|
||||
Schema隔离+模块化架构 → ASL标题摘要初筛+全文复筛 → 多模块联调+测试
|
||||
```
|
||||
|
||||
| <EFBFBD>嗆挾 | <20>園𡢿 | <20>詨<EFBFBD>隞餃𦛚 | 鈭支<E988AD><E694AF>鞉<EFBFBD> | 隡睃<E99AA1>蝥?|
|
||||
| 阶段 | 时间 | 核心任务 | 交付成果 | 优先级 |
|
||||
|------|------|---------|---------|--------|
|
||||
| **<EFBFBD>嗆挾1** | Week 1 | Schema<EFBFBD>𠉛氖<EFBFBD>寞<EFBFBD> | 8銝杵chema霈曇恣+餈<>宏霈∪<E99C88> | P0 潃鐥<EFBFBD>潃?|
|
||||
| **<EFBFBD>嗆挾2** | Week 2 | 璅∪<EFBFBD><EFBFBD>𡝗沲<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?| 隞<><E99A9E><EFBFBD><EFBFBD><EFBFBD>+<2B>祉<EFBFBD><E7A589>函蔡<E587BD>賢<EFBFBD> | P0 潃鐥<EFBFBD>潃?|
|
||||
| **<EFBFBD>嗆挾3** | Week 3 | ASL<EFBFBD><EFBFBD><EFBFBD><EFBFBD>䁅<EFBFBD><EFBFBD>萘<EFBFBD> | <20>峕芋<E5B395>讠<EFBFBD><E8AEA0>匧<EFBFBD><E58CA7>?| P0 潃鐥<EFBFBD> |
|
||||
| **阶段1** | Week 1 | Schema隔离方案 | 8个Schema设计+迁移计划 | P0 ⭐⭐⭐ |
|
||||
| **阶段2** | Week 2 | 模块化架构实施 | 代码分层+独立部署能力 | P0 ⭐⭐⭐ |
|
||||
| **阶段3** | Week 3 | ASL标题摘要初筛 | 双模型筛选功能 | P0 ⭐⭐ |
|
||||
| **阶段4** | Week 4 | ASL全文复筛 | PDF全文分析功能 | P0 ⭐⭐ |
|
||||
| **<EFBFBD>嗆挾5** | Week 5 | 憭𡁏芋<EFBFBD>𡑒<EFBFBD>靚<EFBFBD><EFBFBD>霂?| 銝㗇芋<E39787>堒<EFBFBD><E5A092><EFBFBD>極雿?| P1 潃?|
|
||||
| **阶段5** | Week 5 | 多模块联调测试 | 三模块协同工作 | P1 ⭐ |
|
||||
|
||||
---
|
||||
|
||||
## <EFBFBD><EFBFBD>儭?<3F>詨<EFBFBD><E8A9A8>嗆<EFBFBD>霈曇恣
|
||||
## 🏗️ 核心架构设计
|
||||
|
||||
### 三大独立模块
|
||||
|
||||
```
|
||||
<EFBFBD>𢞖<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
|
||||
<EFBFBD>? 鈭𤑳垢蝏煺<EFBFBD>撟喳蝱 <EFBFBD>?
|
||||
<EFBFBD>? <20>𢞖<EFBFBD><F0A29E96><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <20>𢞖<EFBFBD><F0A29E96><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <20>𢞖<EFBFBD><F0A29E96><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <EFBFBD>?
|
||||
<EFBFBD>? <20>? ASL <EFBFBD>? <20>? DC <EFBFBD>? <20>? RVW <EFBFBD>? <EFBFBD>?
|
||||
<EFBFBD>? <20><>I<EFBFBD>箄<EFBFBD><E7AE84><EFBFBD>讃<EFBFBD>? <20>?<3F>唳旿皜<E697BF><E79A9C> <20>? <20>?摰∠阮蝟餌<E89D9F> <20>? <EFBFBD>?
|
||||
<EFBFBD>? <20>婙<EFBFBD><E5A999><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <20>婙<EFBFBD><E5A999><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <20>婙<EFBFBD><E5A999><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <EFBFBD>?
|
||||
<EFBFBD>? <EFBFBD>? <EFBFBD>? <EFBFBD>? <EFBFBD>?
|
||||
<EFBFBD>? <20>𢞖<EFBFBD><F0A29E96><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <20>𢞖<EFBFBD><F0A29E96><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <20>𢞖<EFBFBD><F0A29E96><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <EFBFBD>?
|
||||
<EFBFBD>? <20><>sl_schema<EFBFBD>? <20><>c_schema <EFBFBD>? <20><>vw_schema<EFBFBD>? <EFBFBD>?
|
||||
<EFBFBD>? <20>婙<EFBFBD><E5A999><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <20>婙<EFBFBD><E5A999><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <20>婙<EFBFBD><E5A999><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <EFBFBD>?
|
||||
<EFBFBD>婙<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
|
||||
<EFBFBD>?
|
||||
瘥譍葵璅∪<EFBFBD><EFBFBD>賢虾隞亦𡠺蝡钅<EFBFBD>蝵?90%
|
||||
┌─────────────────────────────────────────────────────────┐
|
||||
│ 云端统一平台 │
|
||||
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
|
||||
│ │ ASL │ │ DC │ │ RVW │ │
|
||||
│ │AI智能文献│ │ 数据清洗 │ │ 审稿系统 │ │
|
||||
│ └──────────┘ └──────────┘ └──────────┘ │
|
||||
│ ↓ ↓ ↓ │
|
||||
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
|
||||
│ │asl_schema│ │dc_schema │ │rvw_schema│ │
|
||||
│ └──────────┘ └──────────┘ └──────────┘ │
|
||||
└─────────────────────────────────────────────────────────┘
|
||||
↓
|
||||
每个模块都可以独立部署 90%
|
||||
```
|
||||
|
||||
### 璅∪<EFBFBD><EFBFBD>祉<EFBFBD><EFBFBD>扯挽霈∪<EFBFBD><EFBFBD>?
|
||||
### 模块独立性设计原则
|
||||
|
||||
**独立的(90%):**
|
||||
- <EFBFBD>?<3F>祉<EFBFBD><E7A589><EFBFBD>㺭<EFBFBD>桀<EFBFBD>Schema
|
||||
- <EFBFBD>?<3F>祉<EFBFBD><E7A589><EFBFBD>PI頝舐眏嚗?api/asl/*, /api/dc/*, /api/rvw/*嚗?
|
||||
- <EFBFBD>?<3F>祉<EFBFBD><E7A589><EFBFBD><EFBFBD>蝡舫△<E888AB>?
|
||||
- <EFBFBD>?<3F>祉<EFBFBD><E7A589><EFBFBD><EFBFBD>蝵脣<E89DB5>
|
||||
- <EFBFBD>?<3F>祉<EFBFBD><E7A589><EFBFBD><EFBFBD>蝵格<E89DB5>隞?
|
||||
- ✅ 独立的数据库Schema
|
||||
- ✅ 独立的API路由(/api/asl/*, /api/dc/*, /api/rvw/*)
|
||||
- ✅ 独立的前端页面
|
||||
- ✅ 独立的部署包
|
||||
- ✅ 独立的配置文件
|
||||
|
||||
**共享的(10%):**
|
||||
- <EFBFBD><EFBFBD> <20>冽<EFBFBD>霈方<E99C88>嚗īlatform_schema.users嚗?
|
||||
- 🔗 用户认证(platform_schema.users)
|
||||
- 🔗 LLM网关(common层)
|
||||
- 🔗 基础UI组件
|
||||
- 🔗 部署基础设施
|
||||
|
||||
---
|
||||
|
||||
## <EFBFBD><EFBFBD> <20>嗆挾1嚗锭chema<6D>𠉛氖<F0A0899B>寞<EFBFBD>嚗Áeek 1嚗?
|
||||
## 🚀 阶段1:Schema隔离方案(Week 1)
|
||||
|
||||
> **<EFBFBD>園𡢿嚗?* 2025-11-07 <EFBFBD>?2025-11-13嚗?憭抬<E686AD>
|
||||
> **<EFBFBD>格<EFBFBD>嚗?* 摰峕<E691B0>8銝杵chema霈曇恣<E69B87>峕㺭<E5B395>桀<EFBFBD>餈<EFBFBD>宏
|
||||
> **时间:** 2025-11-07 至 2025-11-13(7天)
|
||||
> **目标:** 完成8个Schema设计和数据库迁移
|
||||
|
||||
### 核心目标
|
||||
|
||||
@@ -91,7 +91,7 @@ Schema隔离+模块化架
|
||||
1. Schema隔离是独立部署的前提条件
|
||||
2. 影响后续所有代码的数据访问方式
|
||||
3. 越早做,后续改动成本越低
|
||||
4. 銝箔<EFBFBD>憭扳芋<EFBFBD>梹<EFBFBD>ASL<EFBFBD><EFBFBD>C<EFBFBD><EFBFBD>VW嚗匧遣蝡𧢲<EFBFBD><EFBFBD>啗器<EFBFBD>?
|
||||
4. 为三大模块(ASL、DC、RVW)建立清晰边界
|
||||
|
||||
---
|
||||
|
||||
@@ -99,25 +99,25 @@ Schema隔离+模块化架
|
||||
|
||||
#### 8个Schema划分方案
|
||||
|
||||
| Schema<EFBFBD>滨妍 | <20>券<EFBFBD>?| <20>詨<EFBFBD>銵?| 隡睃<E99AA1>蝥?|
|
||||
| Schema名称 | 用途 | 核心表 | 优先级 |
|
||||
|-----------|------|--------|--------|
|
||||
| **platform_schema** | 撟喳蝱<EFBFBD>箇<EFBFBD> | users, roles, permissions | P0 潃?|
|
||||
| **platform_schema** | 平台基础 | users, roles, permissions | P0 ⭐ |
|
||||
| **aia_schema** | AI问答 | projects, conversations, messages | P1 |
|
||||
| **asl_schema** | AI<EFBFBD>箄<EFBFBD><EFBFBD><EFBFBD>讃 | literature_projects, literature_items, screening_results | P0 潃鐥<EFBFBD>潃?|
|
||||
| **asl_schema** | AI智能文献 | literature_projects, literature_items, screening_results | P0 ⭐⭐⭐ |
|
||||
| **dc_schema** | 数据清洗 | cleaning_projects, datasets, cleaning_rules | P0 ⭐⭐ |
|
||||
| **rvw_schema** | 审稿系统 | manuscripts, reviews,评估标准 | P0 ⭐⭐ |
|
||||
| **pkb_schema** | <EFBFBD>亥<EFBFBD>摨?| knowledge_bases, documents | P1 |
|
||||
| **pkb_schema** | 知识库 | knowledge_bases, documents | P1 |
|
||||
| **admin_schema** | 运营管理 | system_logs, statistics | P2 |
|
||||
| **common_schema** | 通用数据 | llm_usage, feature_flags | P1 |
|
||||
|
||||
#### 重点关注三大模块
|
||||
|
||||
**ASL嚗㇁I<EFBFBD>箄<EFBFBD><EFBFBD><EFBFBD>讃嚗农chema嚗?*
|
||||
**ASL(AI智能文献)Schema:**
|
||||
```sql
|
||||
-- asl_schema
|
||||
CREATE SCHEMA asl_schema;
|
||||
|
||||
-- <EFBFBD><EFBFBD>讃憿寧𤌍銵?
|
||||
-- 文献项目表
|
||||
CREATE TABLE asl_schema.literature_projects (
|
||||
id UUID PRIMARY KEY,
|
||||
user_id UUID REFERENCES platform_schema.users(id),
|
||||
@@ -128,7 +128,7 @@ CREATE TABLE asl_schema.literature_projects (
|
||||
updated_at TIMESTAMP
|
||||
);
|
||||
|
||||
-- PICO<EFBFBD>滨蔭銵?
|
||||
-- PICO配置表
|
||||
CREATE TABLE asl_schema.pico_configs (
|
||||
id UUID PRIMARY KEY,
|
||||
project_id UUID REFERENCES asl_schema.literature_projects(id) ON DELETE CASCADE,
|
||||
@@ -139,7 +139,7 @@ CREATE TABLE asl_schema.pico_configs (
|
||||
study_design TEXT NOT NULL
|
||||
);
|
||||
|
||||
-- <EFBFBD><EFBFBD>讃<EFBFBD>∠𤌍銵?
|
||||
-- 文献条目表
|
||||
CREATE TABLE asl_schema.literature_items (
|
||||
id UUID PRIMARY KEY,
|
||||
project_id UUID REFERENCES asl_schema.literature_projects(id) ON DELETE CASCADE,
|
||||
@@ -149,7 +149,7 @@ CREATE TABLE asl_schema.literature_items (
|
||||
journal VARCHAR(200),
|
||||
year INTEGER,
|
||||
doi VARCHAR(200),
|
||||
-- 蝑偦<EFBFBD>厩<EFBFBD><EFBFBD>?
|
||||
-- 筛选结果
|
||||
screening_status VARCHAR(50) DEFAULT 'pending',
|
||||
final_decision VARCHAR(50),
|
||||
ai_model1_decision VARCHAR(50),
|
||||
@@ -163,7 +163,7 @@ CREATE TABLE asl_schema.literature_items (
|
||||
);
|
||||
```
|
||||
|
||||
**DC嚗<EFBFBD>㺭<EFBFBD>格<EFBFBD>瘣梹<EFBFBD>Schema嚗?*
|
||||
**DC(数据清洗)Schema:**
|
||||
```sql
|
||||
-- dc_schema
|
||||
CREATE SCHEMA dc_schema;
|
||||
@@ -196,7 +196,7 @@ CREATE TABLE dc_schema.cleaning_rules (
|
||||
);
|
||||
```
|
||||
|
||||
**RVW嚗<EFBFBD>恣蝔輻頂蝏<EFBFBD><EFBFBD>Schema嚗?*
|
||||
**RVW(审稿系统)Schema:**
|
||||
```sql
|
||||
-- rvw_schema
|
||||
CREATE SCHEMA rvw_schema;
|
||||
@@ -232,22 +232,22 @@ CREATE TABLE rvw_schema.evaluation_criteria (
|
||||
|
||||
#### Day 1任务清单
|
||||
|
||||
- [ ] 蝏睃<EFBFBD>摰峕㟲<EFBFBD><EFBFBD>chema<EFBFBD>喟頂<EFBFBD>?
|
||||
- [ ] 绘制完整的Schema关系图
|
||||
- [ ] 设计8个Schema的表结构
|
||||
- [ ] 重点:详细设计ASL、DC、RVW三个Schema
|
||||
- [ ] 霈曇恣頝沒chema<EFBFBD><EFBFBD><EFBFBD><EFBFBD>桀<EFBFBD><EFBFBD>刻<EFBFBD><EFBFBD>?
|
||||
- [ ] 设计跨Schema的外键引用规则
|
||||
- [ ] 编写Schema设计文档
|
||||
|
||||
**颲枏枂<EFBFBD><EFBFBD>﹝嚗?*
|
||||
**输出文档:**
|
||||
- `09-架构实施/01-Schema隔离详细设计.md`
|
||||
|
||||
---
|
||||
|
||||
#### Day 2嚗𡁏㺭<EFBFBD>株<EFBFBD>蝘餉恣<EFBFBD>?
|
||||
#### Day 2:数据迁移计划
|
||||
|
||||
**现有表分类:**
|
||||
|
||||
| <EFBFBD>唳<EFBFBD>銵?| 餈<>宏<EFBFBD>?| 隡睃<E99AA1>蝥?|
|
||||
| 现有表 | 迁移到 | 优先级 |
|
||||
|--------|--------|--------|
|
||||
| users, roles | platform_schema | P0 |
|
||||
| projects, conversations, messages | aia_schema | P1 |
|
||||
@@ -256,49 +256,49 @@ CREATE TABLE rvw_schema.evaluation_criteria (
|
||||
| (新建)cleaning_* | dc_schema | P0 |
|
||||
| (新建)manuscripts, reviews | rvw_schema | P0 |
|
||||
|
||||
**餈<EFBFBD>宏蝑𣇉裦嚗?*
|
||||
**迁移策略:**
|
||||
|
||||
1. **<EFBFBD>嗆挾<EFBFBD>扯<EFBFBD>蝘?*
|
||||
- Phase 1嚗𡁜<EFBFBD>撱箸<EFBFBD><EFBFBD>农chema嚗?<3F><><EFBFBD>嚗?
|
||||
- Phase 2嚗朞<EFBFBD>蝘裴latform<EFBFBD>詨<EFBFBD>銵剁<EFBFBD>30<EFBFBD><EFBFBD><EFBFBD>嚗?
|
||||
- Phase 3嚗朞<EFBFBD>蝘翠IA<EFBFBD>釶KB銵剁<EFBFBD>1撠𤩺𧒄嚗?
|
||||
- Phase 4嚗𡁜<EFBFBD>撱態SL/DC/RVW<EFBFBD>啗”嚗?0<><30><EFBFBD>嚗?
|
||||
1. **阶段性迁移**
|
||||
- Phase 1:创建所有Schema(5分钟)
|
||||
- Phase 2:迁移platform核心表(30分钟)
|
||||
- Phase 3:迁移AIA和PKB表(1小时)
|
||||
- Phase 4:创建ASL/DC/RVW新表(30分钟)
|
||||
|
||||
2. **<EFBFBD>嗅<EFBFBD><EFBFBD>箄<EFBFBD>蝘?*
|
||||
- 雿輻鍂<EFBFBD>唳旿摨栞<EFBFBD><EFBFBD>曆<EFBFBD>銝箄<EFBFBD>皜?
|
||||
2. **零停机迁移**
|
||||
- 使用数据库视图作为过渡
|
||||
- 逐步切换应用代码
|
||||
- 保留旧表作为备份
|
||||
|
||||
**Day 2隞餃𦛚皜<EFBFBD><EFBFBD>嚗?*
|
||||
**Day 2任务清单:**
|
||||
- [ ] 编写SQL迁移脚本
|
||||
- [ ] 设计数据验证方案
|
||||
- [ ] 准备回滚方案
|
||||
- [ ] <EFBFBD>冽<EFBFBD>霂閧㴓憓<EFBFBD><EFBFBD>霂?
|
||||
- [ ] 在测试环境验证
|
||||
|
||||
**颲枏枂<EFBFBD><EFBFBD>﹝嚗?*
|
||||
- `09-<EFBFBD>嗆<EFBFBD>摰墧鴌/02-<2D>唳旿摨栞<E691A8>蝘餉恣<E9A489>?md`
|
||||
**输出文档:**
|
||||
- `09-架构实施/02-数据库迁移计划.md`
|
||||
- `09-架构实施/migration-scripts/`
|
||||
|
||||
---
|
||||
|
||||
### Day 3-4:执行Schema迁移
|
||||
|
||||
#### Day 3嚗𡁏<EFBFBD>霂閧㴓憓<EFBFBD><EFBFBD>蝘?
|
||||
#### Day 3:测试环境迁移
|
||||
|
||||
**銝𠰴<EFBFBD>嚗𡁜<EFBFBD>憭<EFBFBD>極雿?*
|
||||
- [ ] 憭<EFBFBD>遢瘚贝<EFBFBD><EFBFBD>唳旿摨?
|
||||
**上午:准备工作**
|
||||
- [ ] 备份测试数据库
|
||||
- [ ] 创建8个Schema
|
||||
- [ ] 餈鞱<EFBFBD>餈<EFBFBD>宏<EFBFBD>𡁏𧋦嚗㇊latform + AIA + PKB嚗?
|
||||
- [ ] 运行迁移脚本(Platform + AIA + PKB)
|
||||
|
||||
**下午:验证和测试**
|
||||
- [ ] <EFBFBD>唳旿摰峕㟲<EFBFBD>折<EFBFBD>霂?
|
||||
- [ ] <EFBFBD>唳<EFBFBD><EFBFBD>蠘<EFBFBD>瘚贝<EFBFBD>嚗㇁I<EFBFBD>桃<EFBFBD><EFBFBD><EFBFBD>䰻霂<EFBFBD><EFBFBD>嚗?
|
||||
- [ ] 靽桀<EFBFBD><EFBFBD>𤑳緵<EFBFBD><EFBFBD>䔮憸?
|
||||
- [ ] 数据完整性验证
|
||||
- [ ] 现有功能测试(AI问答、知识库)
|
||||
- [ ] 修复发现的问题
|
||||
|
||||
#### Day 4嚗𡁶<EFBFBD>鈭抒㴓憓<EFBFBD><EFBFBD>蝘?+ <20>訕chema<EFBFBD>𥕦遣
|
||||
#### Day 4:生产环境迁移 + 新Schema创建
|
||||
|
||||
**銝𠰴<EFBFBD>嚗𡁶<EFBFBD>鈭抒㴓憓<EFBFBD><EFBFBD>蝘?*
|
||||
- [ ] 憭<EFBFBD>遢<EFBFBD>煺漣<EFBFBD>唳旿摨?
|
||||
**上午:生产环境迁移**
|
||||
- [ ] 备份生产数据库
|
||||
- [ ] 执行Schema迁移
|
||||
- [ ] 数据验证
|
||||
|
||||
@@ -306,9 +306,9 @@ CREATE TABLE rvw_schema.evaluation_criteria (
|
||||
- [ ] 创建asl_schema及所有表
|
||||
- [ ] 创建dc_schema及所有表
|
||||
- [ ] 创建rvw_schema及所有表
|
||||
- [ ] <EFBFBD>𥕦遣敹<EFBFBD><EFBFBD><EFBFBD><EFBFBD>揣撘?
|
||||
- [ ] 创建必要的索引
|
||||
|
||||
**撉峕𤣰<EFBFBD><EFBFBD><EFBFBD>嚗?*
|
||||
**验收标准:**
|
||||
- [ ] 8个Schema全部创建完成
|
||||
- [ ] 现有功能正常运行
|
||||
- [ ] 三大模块Schema准备就绪
|
||||
@@ -317,13 +317,13 @@ CREATE TABLE rvw_schema.evaluation_criteria (
|
||||
|
||||
### Day 5:Prisma Schema更新
|
||||
|
||||
**<EFBFBD>詨<EFBFBD>隞餃𦛚嚗?*
|
||||
- [ ] <EFBFBD>湔鰵Prisma Schema<EFBFBD>滨蔭嚗<EFBFBD>𣈲<EFBFBD><EFBFBD><EFBFBD>Schema嚗?
|
||||
**核心任务:**
|
||||
- [ ] 更新Prisma Schema配置(支持多Schema)
|
||||
- [ ] 为ASL、DC、RVW创建Prisma模型
|
||||
- [ ] 生成Prisma Client
|
||||
- [ ] 更新现有代码的数据库查询
|
||||
|
||||
**Prisma憭锭chema<EFBFBD>滨蔭蝷箔<EFBFBD>嚗?*
|
||||
**Prisma多Schema配置示例:**
|
||||
```prisma
|
||||
// schema.prisma
|
||||
generator client {
|
||||
@@ -384,7 +384,7 @@ model PICOConfig {
|
||||
// ... 其他模型
|
||||
```
|
||||
|
||||
**撉峕𤣰<EFBFBD><EFBFBD><EFBFBD>嚗?*
|
||||
**验收标准:**
|
||||
- [ ] Prisma Schema支持8个Schema
|
||||
- [ ] 生成的Client可以正确访问所有Schema
|
||||
- [ ] 类型定义完整
|
||||
@@ -393,57 +393,57 @@ model PICOConfig {
|
||||
|
||||
### Week 1 总结
|
||||
|
||||
**鈭支<EFBFBD><EFBFBD>鞉<EFBFBD>嚗?*
|
||||
1. <EFBFBD>?8銝杵chema霈曇恣摰峕<E691B0>
|
||||
2. <EFBFBD>?<3F>唳旿摨栞<E691A8>蝘餃<E89D98><E9A483>?
|
||||
3. <EFBFBD>?Prisma Schema<EFBFBD>湔鰵摰峕<EFBFBD>
|
||||
4. <EFBFBD>?ASL<EFBFBD><EFBFBD>C<EFBFBD><EFBFBD>VW銝匧之璅∪<EFBFBD><EFBFBD>唳旿摨枏停蝏?
|
||||
**交付成果:**
|
||||
1. ✅ 8个Schema设计完成
|
||||
2. ✅ 数据库迁移完成
|
||||
3. ✅ Prisma Schema更新完成
|
||||
4. ✅ ASL、DC、RVW三大模块数据库就绪
|
||||
|
||||
**撉峕𤣰<EFBFBD><EFBFBD><EFBFBD>嚗?*
|
||||
- [ ] <EFBFBD><EFBFBD><EFBFBD>厩緵<EFBFBD>匧<EFBFBD><EFBFBD>賣迤撣貉<EFBFBD>銵?
|
||||
- [ ] <EFBFBD>唳旿摨枏<EFBFBD><EFBFBD>湔<EFBFBD>?00%
|
||||
**验收标准:**
|
||||
- [ ] 所有现有功能正常运行
|
||||
- [ ] 数据库完整性100%
|
||||
- [ ] Prisma Client正常工作
|
||||
- [ ] 銝匧之璅∪<EFBFBD><EFBFBD>臭誑撘<EFBFBD>憪见<EFBFBD><EFBFBD>?
|
||||
- [ ] 三大模块可以开始开发
|
||||
|
||||
---
|
||||
|
||||
## <EFBFBD>圲 <20>嗆挾2嚗𡁏芋<F0A1818F>堒<EFBFBD><E5A092>嗆<EFBFBD>摰墧鴌嚗Áeek 2嚗?
|
||||
## 🔧 阶段2:模块化架构实施(Week 2)
|
||||
|
||||
> **<EFBFBD>園𡢿嚗?* 2025-11-14 <EFBFBD>?2025-11-20嚗?憭抬<E686AD>
|
||||
> **<EFBFBD>格<EFBFBD>嚗?* 撱箇<E692B1>皜<EFBFBD>苊<EFBFBD><E88B8A>誨<EFBFBD><E8AAA8><EFBFBD>撅?+ 摰䂿緵璅∪<E79285><E288AA>祉<EFBFBD><E7A589>函蔡<E587BD>賢<EFBFBD>
|
||||
> **时间:** 2025-11-14 至 2025-11-20(7天)
|
||||
> **目标:** 建立清晰的代码分层 + 实现模块独立部署能力
|
||||
|
||||
### 核心目标
|
||||
|
||||
**撱箇<EFBFBD>銝匧<EFBFBD><EFBFBD>嗆<EFBFBD> + 璅∪<E79285><E288AA>祉<EFBFBD><E7A589>?*
|
||||
**建立三层架构 + 模块独立性**
|
||||
|
||||
```
|
||||
backend/
|
||||
<EFBFBD>鎿<EFBFBD><EFBFBD><EFBFBD> platform/ # 撟喳蝱<EFBFBD>箇<EFBFBD>撅?
|
||||
<EFBFBD>? <20>鎿<EFBFBD><E98EBF><EFBFBD> auth/ # 霈方<EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗<EFBFBD><EFBFBD>鈭恬<EFBFBD>
|
||||
<EFBFBD>? <20>鎿<EFBFBD><E98EBF><EFBFBD> permission/ # <EFBFBD><EFBFBD><EFBFBD>蝞∠<EFBFBD>
|
||||
<EFBFBD>? <20>婙<EFBFBD><E5A999><EFBFBD> storage/ # 摮睃<EFBFBD><EFBFBD>滚𦛚
|
||||
<EFBFBD>?
|
||||
<EFBFBD>鎿<EFBFBD><EFBFBD><EFBFBD> common/ # <EFBFBD>𡁶鍂<EFBFBD>賢<EFBFBD>撅?
|
||||
<EFBFBD>? <20>鎿<EFBFBD><E98EBF><EFBFBD> llm/ # LLM蝵穃<EFBFBD> 潃?<3F>詨<EFBFBD>
|
||||
<EFBFBD>? <20>鎿<EFBFBD><E98EBF><EFBFBD> document/ # <EFBFBD><EFBFBD>﹝憭<EFBFBD><EFBFBD>
|
||||
<EFBFBD>? <20>婙<EFBFBD><E5A999><EFBFBD> utils/ # 撌亙<EFBFBD><EFBFBD>賣㺭
|
||||
<EFBFBD>?
|
||||
<EFBFBD>鎿<EFBFBD><EFBFBD><EFBFBD> modules/ # 銝𡁜𦛚璅∪<EFBFBD>撅<EFBFBD><EFBFBD><EFBFBD>祉<EFBFBD>嚗?
|
||||
<EFBFBD>? <20>鎿<EFBFBD><E98EBF><EFBFBD> asl/ # AI<EFBFBD>箄<EFBFBD><EFBFBD><EFBFBD>讃 潃鐥<E6BD83>潃?
|
||||
<EFBFBD>? <20>? <20>鎿<EFBFBD><E98EBF><EFBFBD> api/
|
||||
<EFBFBD>? <20>? <20>鎿<EFBFBD><E98EBF><EFBFBD> services/
|
||||
<EFBFBD>? <20>? <20>鎿<EFBFBD><E98EBF><EFBFBD> types/
|
||||
<EFBFBD>? <20>? <20>婙<EFBFBD><E5A999><EFBFBD> standalone.config.ts # <EFBFBD>祉<EFBFBD><EFBFBD>函蔡<EFBFBD>滨蔭
|
||||
<EFBFBD>? <20>?
|
||||
<EFBFBD>? <20>鎿<EFBFBD><E98EBF><EFBFBD> dc/ # <EFBFBD>唳旿皜<EFBFBD><EFBFBD> 潃鐥<E6BD83>
|
||||
<EFBFBD>? <20>? <20>婙<EFBFBD><E5A999><EFBFBD> standalone.config.ts
|
||||
<EFBFBD>? <20>?
|
||||
<EFBFBD>? <20>鎿<EFBFBD><E98EBF><EFBFBD> rvw/ # 摰∠阮蝟餌<EFBFBD> 潃鐥<E6BD83>
|
||||
<EFBFBD>? <20>? <20>婙<EFBFBD><E5A999><EFBFBD> standalone.config.ts
|
||||
<EFBFBD>? <20>?
|
||||
<EFBFBD>? <20>鎿<EFBFBD><E98EBF><EFBFBD> aia/ # AI<EFBFBD>桃<EFBFBD>
|
||||
<EFBFBD>? <20>婙<EFBFBD><E5A999><EFBFBD> pkb/ # <EFBFBD>亥<EFBFBD>摨?
|
||||
<EFBFBD>?
|
||||
├── platform/ # 平台基础层
|
||||
│ ├── auth/ # 认证授权(共享)
|
||||
│ ├── permission/ # 权限管理
|
||||
│ └── storage/ # 存储服务
|
||||
│
|
||||
├── common/ # 通用能力层
|
||||
│ ├── llm/ # LLM网关 ⭐ 核心
|
||||
│ ├── document/ # 文档处理
|
||||
│ └── utils/ # 工具函数
|
||||
│
|
||||
├── modules/ # 业务模块层(独立)
|
||||
│ ├── asl/ # AI智能文献 ⭐⭐⭐
|
||||
│ │ ├── api/
|
||||
│ │ ├── services/
|
||||
│ │ ├── types/
|
||||
│ │ └── standalone.config.ts # 独立部署配置
|
||||
│ │
|
||||
│ ├── dc/ # 数据清洗 ⭐⭐
|
||||
│ │ └── standalone.config.ts
|
||||
│ │
|
||||
│ ├── rvw/ # 审稿系统 ⭐⭐
|
||||
│ │ └── standalone.config.ts
|
||||
│ │
|
||||
│ ├── aia/ # AI问答
|
||||
│ └── pkb/ # 知识库
|
||||
│
|
||||
└── shared/ # 共享代码
|
||||
├── types/
|
||||
└── interfaces/
|
||||
@@ -451,51 +451,51 @@ backend/
|
||||
|
||||
---
|
||||
|
||||
### Day 1-2嚗帋誨<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?+ LLM蝵穃<EFBFBD>
|
||||
### Day 1-2:代码重构 + LLM网关
|
||||
|
||||
#### Day 1嚗𡁶𤌍敶閖<EFBFBD><EFBFBD>?
|
||||
#### Day 1:目录重构
|
||||
|
||||
**隞餃𦛚嚗?*
|
||||
**任务:**
|
||||
- [ ] 创建三层目录结构
|
||||
- [ ] 餈<EFBFBD>宏<EFBFBD>唳<EFBFBD>隞<EFBFBD><EFBFBD><EFBFBD>啣笆摨𠉛𤌍敶?
|
||||
- [ ] 迁移现有代码到对应目录
|
||||
- [ ] 为ASL、DC、RVW创建模块骨架
|
||||
- [ ] 更新import路径
|
||||
|
||||
**ASL璅∪<EFBFBD><EFBFBD>桀<EFBFBD>蝏𤘪<EFBFBD>嚗?*
|
||||
**ASL模块目录结构:**
|
||||
```
|
||||
modules/asl/
|
||||
├── api/
|
||||
<EFBFBD>? <20>鎿<EFBFBD><E98EBF><EFBFBD> projects.ts # 憿寧𤌍蝞∠<EFBFBD>API
|
||||
<EFBFBD>? <20>鎿<EFBFBD><E98EBF><EFBFBD> screening.ts # 蝑偦<EFBFBD>𡅅PI
|
||||
<EFBFBD>? <20>婙<EFBFBD><E5A999><EFBFBD> exports.ts # 撖澆枂API
|
||||
│ ├── projects.ts # 项目管理API
|
||||
│ ├── screening.ts # 筛选API
|
||||
│ └── exports.ts # 导出API
|
||||
├── services/
|
||||
<EFBFBD>? <20>鎿<EFBFBD><E98EBF><EFBFBD> project.service.ts
|
||||
<EFBFBD>? <20>鎿<EFBFBD><E98EBF><EFBFBD> screening.service.ts
|
||||
<EFBFBD>? <20>婙<EFBFBD><E5A999><EFBFBD> llm.service.ts # 撠<EFBFBD><EFBFBD>LLM蝵穃<EFBFBD>靚<EFBFBD>鍂
|
||||
│ ├── project.service.ts
|
||||
│ ├── screening.service.ts
|
||||
│ └── llm.service.ts # 封装LLM网关调用
|
||||
├── types/
|
||||
<EFBFBD>? <20>婙<EFBFBD><E5A999><EFBFBD> index.ts
|
||||
│ └── index.ts
|
||||
├── config/
|
||||
<EFBFBD>? <20>婙<EFBFBD><E5A999><EFBFBD> standalone.config.ts # <EFBFBD>祉<EFBFBD><EFBFBD>函蔡<EFBFBD>滨蔭
|
||||
│ └── standalone.config.ts # 独立部署配置
|
||||
└── index.ts # 模块入口
|
||||
```
|
||||
|
||||
#### Day 2嚗匁LM蝵穃<EFBFBD>摰䂿緵 潃?<3F>詨<EFBFBD>
|
||||
#### Day 2:LLM网关实现 ⭐ 核心
|
||||
|
||||
**銝箔<EFBFBD>銋𡿨LM蝵穃<EFBFBD>憒<EFBFBD>迨<EFBFBD>滩<EFBFBD>嚗?*
|
||||
**为什么LLM网关如此重要?**
|
||||
- ASL的标题摘要初筛完全依赖它
|
||||
- DC的智能清洗建议需要它
|
||||
- RVW的审稿评估需要它
|
||||
- 统一管理所有AI调用
|
||||
|
||||
**摰䂿緵隞餃𦛚嚗?*
|
||||
- [ ] 摰䂿緵BaseLLMAdapter<EFBFBD>質情蝐?
|
||||
**实现任务:**
|
||||
- [ ] 实现BaseLLMAdapter抽象类
|
||||
- [ ] 实现DeepSeekAdapter
|
||||
- [ ] 实现QwenAdapter
|
||||
- [ ] 摰䂿緵LLMGateway銝餅<EFBFBD><EFBFBD>?
|
||||
- [ ] 实现LLMGateway主服务
|
||||
- [ ] Feature Flag集成
|
||||
- [ ] <EFBFBD>漤<EFBFBD>璉<EFBFBD><EFBFBD>?
|
||||
- [ ] 配额检查
|
||||
|
||||
**<EFBFBD>詨<EFBFBD>隞<EFBFBD><EFBFBD>嚗?*
|
||||
**核心代码:**
|
||||
```typescript
|
||||
// common/llm/LLMGateway.ts
|
||||
export class LLMGateway {
|
||||
@@ -505,24 +505,24 @@ export class LLMGateway {
|
||||
messages: Message[],
|
||||
options?: LLMOptions
|
||||
): Promise<LLMResponse> {
|
||||
// 1. Feature Flag璉<EFBFBD><EFBFBD>?
|
||||
// 2. <EFBFBD>漤<EFBFBD>璉<EFBFBD><EFBFBD>?
|
||||
// 3. 靚<EFBFBD>鍂<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
|
||||
// 4. 霈啣<EFBFBD>雿輻鍂<EFBFBD>?
|
||||
// 1. Feature Flag检查
|
||||
// 2. 配额检查
|
||||
// 3. 调用适配器
|
||||
// 4. 记录使用量
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**撉峕𤣰<EFBFBD><EFBFBD><EFBFBD>嚗?*
|
||||
**验收标准:**
|
||||
- [ ] 可以调用DeepSeek和Qwen3
|
||||
- [ ] Feature Flag正常工作
|
||||
- [ ] <EFBFBD>漤<EFBFBD>璉<EFBFBD><EFBFBD>交迤撣?
|
||||
- [ ] 配额检查正常
|
||||
|
||||
---
|
||||
|
||||
### Day 3-5嚗𡁏芋<EFBFBD>㛖𡠺蝡钅<EFBFBD>蝵脰<EFBFBD><EFBFBD>?
|
||||
### Day 3-5:模块独立部署能力
|
||||
|
||||
#### Day 3嚗𡁶𡠺蝡钅<EFBFBD>蝵脤<EFBFBD>蝵?
|
||||
#### Day 3:独立部署配置
|
||||
|
||||
**为每个模块创建独立配置:**
|
||||
|
||||
@@ -540,7 +540,7 @@ export const ASLStandaloneConfig = {
|
||||
apiPrefix: '/api/asl',
|
||||
},
|
||||
|
||||
// 靘肽<EFBFBD><EFBFBD><EFBFBD><EFBFBD>鈭急<EFBFBD><EFBFBD>?
|
||||
// 依赖的共享服务
|
||||
dependencies: {
|
||||
auth: {
|
||||
required: true,
|
||||
@@ -552,7 +552,7 @@ export const ASLStandaloneConfig = {
|
||||
},
|
||||
},
|
||||
|
||||
// <EFBFBD>唳旿摨㯄<EFBFBD>蝵?
|
||||
// 数据库配置
|
||||
database: {
|
||||
schema: 'asl_schema',
|
||||
url: process.env.ASL_DATABASE_URL || process.env.DATABASE_URL,
|
||||
@@ -560,7 +560,7 @@ export const ASLStandaloneConfig = {
|
||||
};
|
||||
```
|
||||
|
||||
**隞餃𦛚皜<EFBFBD><EFBFBD>嚗?*
|
||||
**任务清单:**
|
||||
- [ ] 为ASL创建standalone.config.ts
|
||||
- [ ] 为DC创建standalone.config.ts
|
||||
- [ ] 为RVW创建standalone.config.ts
|
||||
@@ -568,23 +568,23 @@ export const ASLStandaloneConfig = {
|
||||
|
||||
#### Day 4:API路由隔离
|
||||
|
||||
**蝏煺<EFBFBD>API頝舐眏閫<EFBFBD><EFBFBD>嚗?*
|
||||
**统一API路由规范:**
|
||||
```
|
||||
/api/asl/* - AI智能文献
|
||||
/api/dc/* - 数据清洗
|
||||
/api/rvw/* - 审稿系统
|
||||
/api/aia/* - AI问答
|
||||
/api/pkb/* - <EFBFBD>亥<EFBFBD>摨?
|
||||
/api/pkb/* - 知识库
|
||||
```
|
||||
|
||||
**隞餃𦛚嚗?*
|
||||
**任务:**
|
||||
- [ ] 重构API路由,按模块划分
|
||||
- [ ] 摰䂿緵頝舐眏蝥批<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>鞉<EFBFBD><EFBFBD>?
|
||||
- [ ] 实现路由级别的权限检查
|
||||
- [ ] 为每个模块创建独立的API文档
|
||||
|
||||
#### Day 5嚗鋽ocker<EFBFBD>?+ <20>祉<EFBFBD><E7A589>函蔡瘚贝<E7989A>
|
||||
#### Day 5:Docker化 + 独立部署测试
|
||||
|
||||
**銝箸<EFBFBD>銝芣芋<EFBFBD>堒<EFBFBD>撱慣ockerfile嚗?*
|
||||
**为每个模块创建Dockerfile:**
|
||||
|
||||
```dockerfile
|
||||
# modules/asl/Dockerfile
|
||||
@@ -611,14 +611,14 @@ EXPOSE 3001
|
||||
CMD ["node", "dist/modules/asl/index.js"]
|
||||
```
|
||||
|
||||
**隞餃𦛚嚗?*
|
||||
**任务:**
|
||||
- [ ] 为ASL创建Dockerfile
|
||||
- [ ] 为DC创建Dockerfile
|
||||
- [ ] 为RVW创建Dockerfile
|
||||
- [ ] 创建docker-compose配置
|
||||
- [ ] 测试独立部署
|
||||
|
||||
**docker-compose.yml蝷箔<EFBFBD>嚗?*
|
||||
**docker-compose.yml示例:**
|
||||
```yaml
|
||||
version: '3.8'
|
||||
|
||||
@@ -648,51 +648,51 @@ services:
|
||||
|
||||
### Week 2 总结
|
||||
|
||||
**鈭支<EFBFBD><EFBFBD>鞉<EFBFBD>嚗?*
|
||||
1. <EFBFBD>?銝匧<E98A9D>隞<EFBFBD><E99A9E><EFBFBD>嗆<EFBFBD>撱箇<E692B1>摰峕<E691B0>
|
||||
2. <EFBFBD>?LLM蝵穃<EFBFBD>摰䂿緵摰峕<EFBFBD>
|
||||
3. <EFBFBD>?ASL<EFBFBD><EFBFBD>C<EFBFBD><EFBFBD>VW銝㗇芋<EFBFBD>埈𣈲<EFBFBD><EFBFBD>𡠺蝡钅<EFBFBD>蝵?
|
||||
4. <EFBFBD>?Docker<EFBFBD>硋<EFBFBD><EFBFBD>?
|
||||
**交付成果:**
|
||||
1. ✅ 三层代码架构建立完成
|
||||
2. ✅ LLM网关实现完成
|
||||
3. ✅ ASL、DC、RVW三模块支持独立部署
|
||||
4. ✅ Docker化完成
|
||||
|
||||
**撉峕𤣰<EFBFBD><EFBFBD><EFBFBD>嚗?*
|
||||
- [ ] 隞<EFBFBD><EFBFBD>蝏𤘪<EFBFBD>皜<EFBFBD>苊嚗䔶<EFBFBD>韏硋<EFBFBD>蝟餅迤蝖?
|
||||
**验收标准:**
|
||||
- [ ] 代码结构清晰,依赖关系正确
|
||||
- [ ] LLM网关可以正常调用
|
||||
- [ ] 銝匧之璅∪<EFBFBD><EFBFBD>臭誑<EFBFBD>祉<EFBFBD><EFBFBD>臬𢆡<EFBFBD>諹<EFBFBD>銵?
|
||||
- [ ] 三大模块可以独立启动和运行
|
||||
- [ ] Docker镜像可以正常构建
|
||||
|
||||
---
|
||||
|
||||
## <EFBFBD>㴓 <20>嗆挾3-4嚗鋫SL<53>詨<EFBFBD><E8A9A8>蠘<EFBFBD>撘<EFBFBD><E69298>𡢅<EFBFBD>Week 3-4嚗?
|
||||
## 🎯 阶段3-4:ASL核心功能开发(Week 3-4)
|
||||
|
||||
> **<EFBFBD>園𡢿嚗?* 2025-11-21 <EFBFBD>?2025-12-04嚗?<3F>剁<EFBFBD>
|
||||
> **<EFBFBD>格<EFBFBD>嚗?* 摰峕<E691B0>ASL<53><4C><EFBFBD><EFBFBD>䁅<EFBFBD><E48185>萘<EFBFBD> + <20>冽<EFBFBD>憭滨<E686AD>
|
||||
> **时间:** 2025-11-21 至 2025-12-04(2周)
|
||||
> **目标:** 完成ASL标题摘要初筛 + 全文复筛
|
||||
|
||||
**详细内容参考原计划,核心任务:**
|
||||
- Week 3嚗𡁻★<EFBFBD>桃恣<EFBFBD>?+ CSV撖澆<E69296> + <20><><EFBFBD><EFBFBD>䁅<EFBFBD><E48185>萘<EFBFBD>
|
||||
- Week 4嚗𡁜<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝑?+ PDF憭<EFBFBD><EFBFBD>
|
||||
- Week 3:项目管理 + CSV导入 + 标题摘要初筛
|
||||
- Week 4:全文复筛 + PDF处理
|
||||
|
||||
---
|
||||
|
||||
## <EFBFBD><EFBFBD> <20>嗆挾5嚗𡁜<E59A97>璅∪<E79285><E288AA>磰<EFBFBD>嚗Áeek 5嚗?
|
||||
## 🔗 阶段5:多模块联调(Week 5)
|
||||
|
||||
> **<EFBFBD>園𡢿嚗?* 2025-12-05 <EFBFBD>?2025-12-13嚗?憭抬<E686AD>
|
||||
> **<EFBFBD>格<EFBFBD>嚗?* 撉諹<E69289>銝匧之璅∪<E79285><E288AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>極雿𡏭<E99BBF><F0A18FAD>?
|
||||
> **时间:** 2025-12-05 至 2025-12-13(9天)
|
||||
> **目标:** 验证三大模块的协同工作能力
|
||||
|
||||
### 核心测试场景
|
||||
|
||||
**场景1:用户跨模块使用**
|
||||
- <EFBFBD>冽<EFBFBD><EFBFBD>餃<EFBFBD> <20>?雿輻鍂ASL蝑偦<E89D91>㗇<EFBFBD><E39787>?<3F>?雿輻鍂DC皜<43><E79A9C><EFBFBD>唳旿 <20>?雿輻鍂RVW摰∠阮
|
||||
- 用户登录 → 使用ASL筛选文献 → 使用DC清洗数据 → 使用RVW审稿
|
||||
|
||||
**<EFBFBD>箸艶2嚗𡁏㺭<EFBFBD>桀<EFBFBD>鈭急<EFBFBD>霂?*
|
||||
- ASL蝑偦<EFBFBD>匧枂<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?<3F>?撖澆枂<E6BE86>蚤C餈𥡝<E9A488><F0A5A19D>唳旿<E594B3>𣂼<EFBFBD>
|
||||
- DC皜<EFBFBD><EFBFBD><EFBFBD><EFBFBD>㺭<EFBFBD>?<3F>?<3F>其<EFBFBD>RVW<56><57>阮隞嗅<E99A9E>憭?
|
||||
**场景2:数据共享测试**
|
||||
- ASL筛选出的文献 → 导出到DC进行数据提取
|
||||
- DC清洗的数据 → 用于RVW的稿件准备
|
||||
|
||||
**<EFBFBD>箸艶3嚗𡁶𡠺蝡钅<EFBFBD>蝵脫<EFBFBD>霂?*
|
||||
- ASL<EFBFBD>祉<EFBFBD><EFBFBD>函蔡 <20>?靚<>鍂撟喳蝱霈方<E99C88><E696B9>滚𦛚 <20>?甇<>虜撌乩<E6928C>
|
||||
- DC<EFBFBD>祉<EFBFBD><EFBFBD>函蔡 <20>?靚<>鍂LLM蝵穃<E89DB5> <20>?甇<>虜撌乩<E6928C>
|
||||
**场景3:独立部署测试**
|
||||
- ASL独立部署 → 调用平台认证服务 → 正常工作
|
||||
- DC独立部署 → 调用LLM网关 → 正常工作
|
||||
|
||||
**隞餃𦛚皜<EFBFBD><EFBFBD>嚗?*
|
||||
- [ ] 蝡臬<EFBFBD>蝡舀<EFBFBD>霂?
|
||||
**任务清单:**
|
||||
- [ ] 端到端测试
|
||||
- [ ] 性能测试
|
||||
- [ ] 独立部署验证
|
||||
- [ ] 文档完善
|
||||
@@ -701,41 +701,41 @@ services:
|
||||
|
||||
## 📊 关键决策记录
|
||||
|
||||
### <EFBFBD>喟<EFBFBD>001嚗锭chema<EFBFBD>𠉛氖敹<EFBFBD>◆<EFBFBD>扯<EFBFBD> <20>?
|
||||
### 决策001:Schema隔离必须执行 ✅
|
||||
|
||||
**<EFBFBD>喟<EFBFBD>嚗?* Week 1敹<EFBFBD>◆摰峕<EFBFBD>Schema<EFBFBD>𠉛氖
|
||||
**决策:** Week 1必须完成Schema隔离
|
||||
|
||||
**<EFBFBD><EFBFBD>眏嚗?*
|
||||
1. <EFBFBD>祉<EFBFBD><EFBFBD>函蔡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>鞉辺隞?
|
||||
**理由:**
|
||||
1. 独立部署的前提条件
|
||||
2. 模块边界清晰
|
||||
3. 数据库级别的隔离
|
||||
4. <EFBFBD>舀<EFBFBD><EFBFBD>芣䔉<EFBFBD>祉<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
|
||||
4. 支持未来独立销售
|
||||
|
||||
**敶勗<EFBFBD>嚗?* Week 1<>券<EFBFBD><E588B8>其<EFBFBD><E585B6>嗆<EFBFBD><E59786>寥<EFBFBD>?
|
||||
**影响:** Week 1全部用于架构改造
|
||||
|
||||
---
|
||||
|
||||
### <EFBFBD>喟<EFBFBD>002嚗帋<EFBFBD>憭扳芋<EFBFBD>𦯀<EFBFBD><EFBFBD>?<3F>?
|
||||
### 决策002:三大模块优先 ✅
|
||||
|
||||
**<EFBFBD>喟<EFBFBD>嚗?* <20>滨<EFBFBD><E6BBA8>訫<EFBFBD>ASL<53><4C>C<EFBFBD><43>VW銝匧之璅∪<E79285>
|
||||
**决策:** 重点投入ASL、DC、RVW三大模块
|
||||
|
||||
**<EFBFBD><EFBFBD>眏嚗?*
|
||||
1. 90%<EFBFBD>祉<EFBFBD><EFBFBD>函蔡<EFBFBD><EFBFBD>瘙?
|
||||
2. <EFBFBD>詨<EFBFBD>撌桀<EFBFBD><EFBFBD>碶漣<EFBFBD>?
|
||||
**理由:**
|
||||
1. 90%独立部署需求
|
||||
2. 核心差异化产品
|
||||
3. 统一架构标准
|
||||
|
||||
**优先级:** ASL > DC = RVW
|
||||
|
||||
---
|
||||
|
||||
### <EFBFBD>喟<EFBFBD>003嚗匁LM蝵穃<EFBFBD>Week 2摰䂿緵 <20>?
|
||||
### 决策003:LLM网关Week 2实现 ✅
|
||||
|
||||
**<EFBFBD>喟<EFBFBD>嚗?* LLM蝵穃<E89DB5><E7A983>汾eek 2摰䂿緵嚗䔶<E59A97><E494B6>狸eek 1
|
||||
**决策:** LLM网关在Week 2实现,不是Week 1
|
||||
|
||||
**<EFBFBD><EFBFBD>眏嚗?*
|
||||
**理由:**
|
||||
1. Week 1专注Schema隔离
|
||||
2. LLM蝵穃<EFBFBD><EFBFBD><EFBFBD>閬<EFBFBD>chema摰峕<EFBFBD><EFBFBD>擧<EFBFBD><EFBFBD>賣迤蝖桅<EFBFBD>蝵?
|
||||
3. Week 2<EFBFBD>匧<EFBFBD>頞單𧒄<EFBFBD>游<EFBFBD><EFBFBD>?
|
||||
2. LLM网关需要Schema完成后才能正确配置
|
||||
3. Week 2有充足时间实现
|
||||
|
||||
---
|
||||
|
||||
@@ -746,7 +746,7 @@ services:
|
||||
| 指标 | 目标 | Week 1 | Week 2 | Week 3-4 | Week 5 |
|
||||
|------|------|--------|--------|----------|--------|
|
||||
| Schema隔离 | 100% | 100% | - | - | - |
|
||||
| 璅∪<EFBFBD><EFBFBD>𡝗沲<EFBFBD>?| 100% | 0% | 100% | - | - |
|
||||
| 模块化架构 | 100% | 0% | 100% | - | - |
|
||||
| LLM网关 | 100% | 0% | 100% | - | - |
|
||||
| ASL功能 | 100% | 0% | 0% | 100% | - |
|
||||
| 独立部署 | 100% | 0% | 80% | 80% | 100% |
|
||||
@@ -755,19 +755,19 @@ services:
|
||||
|
||||
## 🎯 成功标准
|
||||
|
||||
### <EFBFBD><EFBFBD><EFBFBD>舀<EFBFBD><EFBFBD>?
|
||||
### 技术标准
|
||||
|
||||
- [ ] 8銝杵chema<EFBFBD>券<EFBFBD><EFBFBD>𥕦遣撟嗆迤撣詨極雿?
|
||||
- [ ] 銝匧之璅∪<EFBFBD>嚗㇁SL<EFBFBD><EFBFBD>C<EFBFBD><EFBFBD>VW嚗匧虾隞亦𡠺蝡钅<EFBFBD>蝵?
|
||||
- [ ] 8个Schema全部创建并正常工作
|
||||
- [ ] 三大模块(ASL、DC、RVW)可以独立部署
|
||||
- [ ] LLM网关稳定可靠
|
||||
- [ ] ASL核心功能完整
|
||||
- [ ] 璅∪<EFBFBD><EFBFBD>游虾隞亙<EFBFBD><EFBFBD><EFBFBD>極雿?
|
||||
- [ ] 模块间可以协同工作
|
||||
|
||||
### 业务标准
|
||||
|
||||
- [ ] ASL可以完成文献筛选全流程
|
||||
- [ ] 筛选准确率 > 85%
|
||||
- [ ] <EFBFBD>舀<EFBFBD><EFBFBD>祉<EFBFBD><EFBFBD>函蔡撟嗅笆憭㚚<EFBFBD><EFBFBD>?
|
||||
- [ ] 支持独立部署并对外销售
|
||||
- [ ] 用户体验流畅
|
||||
|
||||
---
|
||||
@@ -776,44 +776,44 @@ services:
|
||||
|
||||
### 风险1:Schema迁移复杂度高
|
||||
|
||||
**憌𡡞埯蝑厩漣嚗?* 擃?
|
||||
**蝻栞圾<EFBFBD>芣鴌嚗?*
|
||||
- <EFBFBD>冽<EFBFBD>霂閧㴓憓<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>霂?
|
||||
- <EFBFBD><EFBFBD><EFBFBD>摰<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>皛𡁏䲮獢?
|
||||
**风险等级:** 高
|
||||
**缓解措施:**
|
||||
- 在测试环境充分验证
|
||||
- 准备完善的回滚方案
|
||||
- 分阶段迁移,降低风险
|
||||
|
||||
### 憌𡡞埯2嚗𡁏芋<EFBFBD>㛖𡠺蝡钅<EFBFBD>蝵脰<EFBFBD>霂訫𤌴<EFBFBD>?
|
||||
### 风险2:模块独立部署调试困难
|
||||
|
||||
**憌𡡞埯蝑厩漣嚗?* 銝?
|
||||
**蝻栞圾<EFBFBD>芣鴌嚗?*
|
||||
**风险等级:** 中
|
||||
**缓解措施:**
|
||||
- 先实现统一部署,再实现独立部署
|
||||
- 充分的日志和监控
|
||||
- 霂衣<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝵脫<EFBFBD>獢?
|
||||
- 详细的部署文档
|
||||
|
||||
### 憌𡡞埯3嚗𡁏𧒄<EFBFBD>游辣<EFBFBD>踹<EFBFBD>5<EFBFBD>?
|
||||
### 风险3:时间延长到5周
|
||||
|
||||
**憌𡡞埯蝑厩漣嚗?* 銝?
|
||||
**蝻栞圾<EFBFBD>芣鴌嚗?*
|
||||
**风险等级:** 中
|
||||
**缓解措施:**
|
||||
- 架构投入是必要的
|
||||
- 长期来看节省时间
|
||||
- Week 3-4<EFBFBD>臭誑撟嗉<EFBFBD>憭帋犖撘<EFBFBD><EFBFBD>?
|
||||
- Week 3-4可以并行多人开发
|
||||
|
||||
---
|
||||
|
||||
## 📚 相关文档
|
||||
|
||||
- [<EFBFBD>𣬚<EFBFBD>蝣? - <20>嗆<EFBFBD><E59786>寥<EFBFBD>髗(./02-<2D>𣬚<EFBFBD>蝣𤏸<E89DA3><F0A48FB8>?04-<2D>𣬚<EFBFBD>蝣?-<2D>嗆<EFBFBD><E59786>寥<EFBFBD>?md)
|
||||
- [Schema<EFBFBD>𠉛氖<EFBFBD>寞<EFBFBD>](../00-蝟餌<EFBFBD><EFBFBD>颱<EFBFBD>霈曇恣/05-Schema<EFBFBD>𠉛氖<EFBFBD>寞<EFBFBD>銝擧<EFBFBD><EFBFBD>砍<EFBFBD><EFBFBD>?md)
|
||||
- [里程碑4 - 架构改造](./02-里程碑规划/04-里程碑4-架构改造.md)
|
||||
- [Schema隔离方案](../00-系统总体设计/05-Schema隔离方案与成本分析.md)
|
||||
- [模块独立部署方案](../00-系统总体设计/06-模块独立部署与单机版方案.md)
|
||||
- [ASL快速上下文](../03-业务模块/ASL-AI智能文献/[AI对接]%20ASL快速上下文.md)
|
||||
|
||||
---
|
||||
|
||||
**制定人:** AI助手
|
||||
**摰⊥瓲鈭綽<EFBFBD>** 敺<EFBFBD>恣<EFBFBD>?
|
||||
**<EFBFBD>孵<EFBFBD>鈭綽<EFBFBD>** 敺<>鸌<EFBFBD>?
|
||||
**审核人:** 待审核
|
||||
**批准人:** 待批准
|
||||
**最后更新:** 2025-11-07
|
||||
**<EFBFBD><EFBFBD>𧋦嚗?* V2.0
|
||||
**版本:** V2.0
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user