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,8 +1,8 @@
|
||||
# 2025-11-06 架构设计总结
|
||||
|
||||
> **譌・譛滂シ?* 2025-11-06
|
||||
> **蟾・菴懃アサ蝙具シ?* 邉サ扈滓楔譫<E6A594>キア蠎ヲ隶セ隶。
|
||||
> **謌先棡<EFBFBD>?* 7荳ェ譬ク蠢<EFBDB8>楔譫<E6A594>枚譯」<E8ADAF>悟ョ梧紛逧<E7B49B>橿譛ッ譁ケ譯?
|
||||
> **日期:** 2025-11-06
|
||||
> **工作类型:** 系统架构深度设计
|
||||
> **成果:** 7个核心架构文档,完整的技术方案
|
||||
|
||||
---
|
||||
|
||||
@@ -13,143 +13,143 @@
|
||||
| # | 文档 | 核心内容 | 页数 |
|
||||
|---|------|---------|------|
|
||||
| 1 | [00-核心问题解答](./00-核心问题解答.md) | 部署模式、审稿系统独立性、数据库架构澄清 | 详尽 |
|
||||
| 2 | [01-邉サ扈滓楔譫<EFBFBD><EFBFBD>螻りョセ隶。](./01-邉サ扈滓楔譫<E6A594><E8ADAB>螻りョセ隶。.md) | 荳牙アよ楔譫<E6A594>?荳ェ荳壼苅讓。蝮励?荳ェ騾夂畑閭ス蜉<EFBDBD> | 900+ |
|
||||
| 3 | [02-譁<EFBFBD>。」菴鍋ウサ驥肴桷譁ケ譯<EFBFBD>2.0](./02-譁<>。」菴鍋ウサ驥肴桷譁ケ譯<EFBDB9>.md) | 譁ー譁<EFBDB0>。」扈捺桷縲?荳ェ讓。蝮励?遘埼Κ鄂イ譁ケ譯?| 790+ |
|
||||
| 4 | [03-謨ー謐ョ蠎捺楔譫<EFBFBD>ッエ譏讃(./03-謨ー謐ョ蠎捺楔譫<E6A594>ッエ譏?md) | PostgreSQL Docker驛ィ鄂イ縲∽ク、荳ェ迢ャ遶区焚謐ョ蠎<EFBFBD> | 434+ |
|
||||
| 5 | [04-霑占是邂。逅<EFBFBD>ォッ譫カ譫<EFBFBD>ョセ隶。](./04-霑占是邂。逅<EFBDA1>ォッ譫カ譫<EFBDB6>ョセ隶?md) | 15荳ェ蜉溯<E89C89>讓。蝮励?髦カ谿オ螳樊命 | 859+ |
|
||||
| 6 | [05-Schema髫皮ヲサ譁ケ譯井ク取<EFBFBD>譛ャ蛻<EFBFBD>梵](./05-Schema髫皮ヲサ譁ケ譯井ク取<EFBDB8>譛ャ蛻<EFBDAC><E89BBB>?md) | 騾サ霎宋s迚ゥ逅<EFBDA9>囈遖サ縲∵隼騾<E99ABC>謌先悽蟇ケ豈?| 1042+ |
|
||||
| 2 | [01-系统架构分层设计](./01-系统架构分层设计.md) | 三层架构、8个业务模块、5个通用能力 | 900+ |
|
||||
| 3 | [02-文档体系重构方案v2.0](./02-文档体系重构方案.md) | 新文档结构、8个模块、4种部署方案 | 790+ |
|
||||
| 4 | [03-数据库架构说明](./03-数据库架构说明.md) | PostgreSQL Docker部署、两个独立数据库 | 434+ |
|
||||
| 5 | [04-运营管理端架构设计](./04-运营管理端架构设计.md) | 15个功能模块、3阶段实施 | 859+ |
|
||||
| 6 | [05-Schema隔离方案与成本分析](./05-Schema隔离方案与成本分析.md) | 逻辑vs物理隔离、改造成本对比 | 1042+ |
|
||||
| 7 | [06-模块独立部署与单机版方案](./06-模块独立部署与单机版方案.md) | 完整打包、共享服务、Electron架构 | 1541+ |
|
||||
| 8 | [07-Monorepo譫カ譫<EFBFBD>ッ<EFBFBD>シー](./07-Monorepo譫カ譫<EFBFBD>ッ<EFBFBD>シー.md) | 蠖灘燕髦カ谿オ譏ッ蜷ヲ髴隕√∵<C280>譛ャ謾カ逶雁<E980B6>譫?| 555+ |
|
||||
| 8 | [07-Monorepo架构评估](./07-Monorepo架构评估.md) | 当前阶段是否需要、成本收益分析 | 555+ |
|
||||
|
||||
**諤サ隶。<EFBFBD>?* 6000+ 陦瑚ッヲ扈<EFBDA6>ョセ隶。譁<EFBDA1>。?
|
||||
**总计:** 6000+ 行详细设计文档
|
||||
|
||||
---
|
||||
|
||||
## 📊 核心架构决策
|
||||
|
||||
### 1. 邉サ扈滓楔譫<EFBFBD><EFBFBD>螻<EFBFBD> 箝絶ュ絶ュ絶ュ絶ュ?
|
||||
### 1. 系统架构分层 ⭐⭐⭐⭐⭐
|
||||
|
||||
**荳牙アよ楔譫<EFBFBD>シ?*
|
||||
**三层架构:**
|
||||
```
|
||||
笏娯楳笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏?
|
||||
笏? 荳壼苅讓。蝮怜アゑシ<E38291>8荳ェ讓。蝮暦シ<E69AA6> 笏?
|
||||
笏? AIA | ASL | PKB | DC | SSA | ST | RVW | ADMIN
|
||||
笏披楳笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏?
|
||||
竊?萓晁オ<E69981>
|
||||
笏娯楳笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏?
|
||||
笏? 騾夂畑閭ス蜉帛アゑシ<E38291>5荳ェ閭ス蜉幢シ<E5B9A2> 笏?
|
||||
笏? LLM鄂大<EFBFBD> | 譁<>。」螟<EFBDA3>炊 | RAG | ETL | NLP 笏?
|
||||
笏披楳笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏?
|
||||
竊?萓晁オ<E69981>
|
||||
笏娯楳笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏?
|
||||
笏? 蟷ウ蜿ー蝓コ遑螻? 笏?
|
||||
笏? 逕ィ謌キ譚<EFBDB7>剞 | 蟄伜お | 騾夂衍 | 逶第而 | 驟咲スョ 笏?
|
||||
笏披楳笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏?
|
||||
┌───────────────────────────────────────┐
|
||||
│ 业务模块层(8个模块) │
|
||||
│ AIA | ASL | PKB | DC | SSA | ST | RVW | ADMIN
|
||||
└───────────────────────────────────────┘
|
||||
↓ 依赖
|
||||
┌───────────────────────────────────────┐
|
||||
│ 通用能力层(5个能力) │
|
||||
│ LLM网关 | 文档处理 | RAG | ETL | NLP │
|
||||
└───────────────────────────────────────┘
|
||||
↓ 依赖
|
||||
┌───────────────────────────────────────┐
|
||||
│ 平台基础层 │
|
||||
│ 用户权限 | 存储 | 通知 | 监控 | 配置 │
|
||||
└───────────────────────────────────────┘
|
||||
```
|
||||
|
||||
**蜈ウ髞ョ豢槫ッ滂シ?*
|
||||
- 笨?LLM鄂大<EFBFBD><EFBFBD>?1%螟咲畑邇<E79591>シ<EFBFBD>5/7讓。蝮嶺セ晁オ厄シ?
|
||||
- 笨?譁<>。」螟<EFBDA3>炊<EFBFBD>?6%螟咲畑邇<E79591>シ<EFBFBD>6/7讓。蝮嶺セ晁オ厄シ?
|
||||
- 笨?讓。蝮礼峡遶区ァ<C280>啌VW縲、SL縲.C蜿ッ迢ャ遶矩楳蜚?
|
||||
**关键洞察:**
|
||||
- ✅ LLM网关:71%复用率(5/7模块依赖)
|
||||
- ✅ 文档处理:86%复用率(6/7模块依赖)
|
||||
- ✅ 模块独立性:RVW、ASL、DC可独立销售
|
||||
|
||||
---
|
||||
|
||||
### 2. 荳壼苅讓。蝮苓ァ<EFBFBD><EFBFBD><EFBFBD>?荳ェ讓。蝮暦シ<E69AA6>
|
||||
### 2. 业务模块规划(8个模块)
|
||||
|
||||
| 讓。蝮<EFBFBD> | 蜷咲ァー | 蝠<>ク壻サキ蛟?| 迢ャ遶区?| 迥カ諤?|
|
||||
| 模块 | 名称 | 商业价值 | 独立性 | 状态 |
|
||||
|------|------|---------|-------|------|
|
||||
| AIA | AI譎コ閭ス髣ョ遲<EFBFBD> | 箝絶ュ絶ュ絶ュ<E7B5B6> | 箝絶ュ絶ュ?| 笨?蟾イ螳梧<E89EB3>?|
|
||||
| ASL | AI譎コ閭ス譁<EFBFBD>鍵 | 箝絶ュ絶ュ絶ュ絶ュ?| 箝絶ュ絶ュ絶ュ絶ュ?| 竢?荳倶ク豁・驥咲<E9A9A5>?|
|
||||
| PKB | 荳ェ莠コ遏・隸<EFBFBD>コ?| 箝絶ュ絶ュ?| 箝絶ュ絶ュ?| 笨?蟾イ螳梧<E89EB3>?|
|
||||
| DC | 謨ー謐ョ貂<EFBFBD>エ玲紛逅<EFBFBD> | 箝絶ュ絶ュ絶ュ絶ュ?| 箝絶ュ絶ュ絶ュ絶ュ?| 竢?隗<><E99A97>荳?|
|
||||
| SSA | 譎コ閭ス扈溯ョ。蛻<EFBFBD>梵 | 箝絶ュ絶ュ絶ュ絶ュ?| 箝絶ュ絶ュ絶ュ<E7B5B6> | 竢?隗<><E99A97>荳?|
|
||||
| ST | 扈溯ョ。蛻<EFBFBD>梵蟾・蜈キ | 箝絶ュ絶ュ絶ュ<E7B5B6> | 箝絶ュ絶ュ絶ュ<E7B5B6> | 竢?隗<><E99A97>荳?|
|
||||
| RVW | 遞ソ莉カ螳。譟・邉サ扈<EFBFBD> | 箝絶ュ絶ュ絶ュ絶ュ?| 箝絶ュ絶ュ絶ュ絶ュ?| 笞?迢ャ遶狗ウサ扈<EFBDBB> |
|
||||
| **ADMIN** | 霑占是邂。逅<EFBFBD>ォ?| 箝絶ュ絶ュ絶ュ絶ュ?| 箝絶ュ絶ュ絶ュ絶ュ?| 箝?譁ー蠅<EFBDB0> |
|
||||
| AIA | AI智能问答 | ⭐⭐⭐⭐ | ⭐⭐⭐ | ✅ 已完成 |
|
||||
| ASL | AI智能文献 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⏳ 下一步重点 |
|
||||
| PKB | 个人知识库 | ⭐⭐⭐ | ⭐⭐⭐ | ✅ 已完成 |
|
||||
| DC | 数据清洗整理 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⏳ 规划中 |
|
||||
| SSA | 智能统计分析 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⏳ 规划中 |
|
||||
| ST | 统计分析工具 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⏳ 规划中 |
|
||||
| RVW | 稿件审查系统 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⚡ 独立系统 |
|
||||
| **ADMIN** | 运营管理端 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐ 新增 |
|
||||
|
||||
**譬ク蠢<EFBFBD>コョ轤ケ<EFBFBD>?*
|
||||
- 笨?譁ー蠅櫁ソ占是邂。逅<EFBDA1>ォッ<EFBDAB><EFBDAF>15荳ェ蜉溯<E89C89>讓。蝮暦シ<E69AA6>
|
||||
- 笨?3荳ェ讓。蝮玲栫蜈キ迢ャ遶矩楳蜚ョ莉キ蛟シ<E89B9F><EFBDBC>VW縲、SL縲.C<EFBC8E>?
|
||||
**核心亮点:**
|
||||
- ✅ 新增运营管理端(15个功能模块)
|
||||
- ✅ 3个模块极具独立销售价值(RVW、ASL、DC)
|
||||
|
||||
---
|
||||
|
||||
### 3. 驛ィ鄂イ譁ケ譯茨シ?遘肴ィ。蠑擾シ<E693BE>
|
||||
### 3. 部署方案(4种模式)
|
||||
|
||||
| 驛ィ鄂イ讓。蠑<EFBFBD> | 逶ョ譬<EFBDAE>畑謌キ | 謚譛ッ譁ケ譯?| 莉」遐∝、咲畑 | 莨伜<E88EA8>郤?|
|
||||
| 部署模式 | 目标用户 | 技术方案 | 代码复用 | 优先级 |
|
||||
|---------|---------|---------|---------|-------|
|
||||
| **云端SaaS** | 个人、小机构 | Node.js + PostgreSQL | 100% | P0(当前) |
|
||||
| **迢ャ遶倶コァ蜩∝<EFBFBD>?* | 迚ケ螳壼ョ「謌キ | Docker螳梧紛謇灘桁 | 80% | P1<EFBFBD>磯亳谿オ莠鯉シ?|
|
||||
| **Electron蜊墓惻迚?* | 荳ェ莠コ蛹サ逕<EFBDBB> | 蜑咲ォッ90%+蜷守ォッ80% | 85% | P2<EFBFBD>磯亳谿オ莠鯉シ?|
|
||||
| **遘∵怏蛹夜Κ鄂?* | 蛹サ髯「縲∵惻譫?| K8s/Docker | 100% | P1<EFBFBD>磯亳谿オ莠鯉シ?|
|
||||
| **独立产品包** | 特定客户 | Docker完整打包 | 80% | P1(阶段二) |
|
||||
| **Electron单机版** | 个人医生 | 前端90%+后端80% | 85% | P2(阶段二) |
|
||||
| **私有化部署** | 医院、机构 | K8s/Docker | 100% | P1(阶段二) |
|
||||
|
||||
**蜈ウ髞ョ豢槫ッ滂シ?*
|
||||
- 笨?Electron蜊墓惻迚井サ」遐∝、咲畑邇<EFBFBD>栫鬮假シ?5%+<EFBFBD>?
|
||||
- 笨?迢ャ遶倶コァ蜩∝桁謾ッ謖∵ィ。蝮怜喧髞蜚?
|
||||
- 笨?4遘埼Κ鄂イ隕<EFBDB2>尠蜈ィ驛ィ蟶ょ惻髴豎?
|
||||
**关键洞察:**
|
||||
- ✅ Electron单机版代码复用率极高(85%+)
|
||||
- ✅ 独立产品包支持模块化销售
|
||||
- ✅ 4种部署覆盖全部市场需求
|
||||
|
||||
---
|
||||
|
||||
### 4. 謨ー謐ョ蠎捺楔譫?
|
||||
### 4. 数据库架构
|
||||
|
||||
**当前状态:**
|
||||
- 笨?譛芽<E8AD9B>蟾ア迢ャ遶狗噪PostgreSQL謨ー謐ョ蠎難シ<E99BA3>ocker驛ィ鄂イ<E98482>?
|
||||
- 笨?16蠑<36>陦ィ<E999A6>悟<EFBFBD>驛ィ蝨ィpublic schema
|
||||
- 笶?髴隕ヾchema髫皮ヲサ<EFBDA6>域悴譚・蠕ョ譛榊苅諡<E88B85><E8ABA1>逧<EFBFBD>渕遑<E98191>?
|
||||
- ✅ 有自己独立的PostgreSQL数据库(Docker部署)
|
||||
- ✅ 16张表,全部在public schema
|
||||
- ❌ 需要Schema隔离(未来微服务拆分的基础)
|
||||
|
||||
**Schema髫皮ヲサ蜀ウ遲厄シ?*
|
||||
**Schema隔离决策:**
|
||||
|
||||
| 方案 | 成本 | 时机 | 建议 |
|
||||
|------|------|------|------|
|
||||
| 邇ー蝨ィ蛛夂黄逅<EFBFBD>囈遖?| 1蜻?| 謨ー謐ョ驥丞ー<E4B89E> | 箝絶ュ絶ュ絶ュ絶ュ?蠑コ辜域耳闕<E880B3> |
|
||||
| 扈ァ扈ュ騾サ霎鷹囈遖サ | 0 | 蠖灘燕 | 箝絶ュ絶ュ?蜿ッ謗・蜿?|
|
||||
| 譛ェ譚・蛛夂黄逅<EFBFBD>囈遖?| 3-5蜻?| 謨ー謐ョ驥丞、ァ | 笞<><E7AC9E><EFBFBD> 謌先悽5蛟?|
|
||||
| 现在做物理隔离 | 1周 | 数据量小 | ⭐⭐⭐⭐⭐ 强烈推荐 |
|
||||
| 继续逻辑隔离 | 0 | 当前 | ⭐⭐⭐ 可接受 |
|
||||
| 未来做物理隔离 | 3-5周 | 数据量大 | ⚠️ 成本5倍 |
|
||||
|
||||
**蜈ウ髞ョ豢槫ッ滂シ?*
|
||||
- 笨?邇ー蝨ィ蛛壽<E89B9B>譛ャ譛菴趣シ域焚謐ョ驥丞ー擾シ?
|
||||
- 笨?荳?荳ェ讓。蝮玲遠荳句撓螳槫渕遑
|
||||
- 笨?謾ッ謖∵ィ。蝮礼峡遶矩Κ鄂イ
|
||||
**关键洞察:**
|
||||
- ✅ 现在做成本最低(数据量小)
|
||||
- ✅ 为7个模块打下坚实基础
|
||||
- ✅ 支持模块独立部署
|
||||
|
||||
---
|
||||
|
||||
### 5. 霑占是邂。逅<EFBFBD>ォッ<EFBFBD>育ャ?荳ェ讓。蝮暦シ<E69AA6>
|
||||
### 5. 运营管理端(第8个模块)
|
||||
|
||||
**15个核心功能:**
|
||||
|
||||
**P0<EFBFBD>亥ソ<EFBFBD>。サ<EFBFBD>会シ?*
|
||||
**P0(必须):**
|
||||
1. 用户管理
|
||||
2. Feature Flag管理
|
||||
3. LLM模型管理
|
||||
4. 系统配置管理
|
||||
|
||||
**P1<EFBFBD>磯㍾隕<EFBFBD>シ会シ?*
|
||||
**P1(重要):**
|
||||
5. 智能体提示词管理
|
||||
6. 逶第而荳取律蠢?
|
||||
7. 謨ー謐ョ扈溯ョ。荳取冠陦?
|
||||
8. 謌先悽蛻<EFBFBD>梵荳手ョ。雍?
|
||||
6. 监控与日志
|
||||
7. 数据统计与报表
|
||||
8. 成本分析与计费
|
||||
|
||||
**P2<EFBFBD>域怏逕ィ<EFBFBD>会シ?*
|
||||
9-15. 遘滓姐邂。逅<EFBFBD>∝<EFBFBD>蜻翫∵枚譯」縲∝キ・蜊輔∝▼蠎キ譽譟・縲∝、<EFBFBD>サス縲∬ソ占是蛻<EFBFBD><EFBFBD>?
|
||||
**P2(有用):**
|
||||
9-15. 租户管理、公告、文档、工单、健康检查、备份、运营分析
|
||||
|
||||
**螳樊命隶。蛻抵シ?*
|
||||
- 髦カ谿オ荳<EFBFBD>?-2荳ェ譛茨シ会シ啀0蜉溯<E89C89>
|
||||
**实施计划:**
|
||||
- 阶段一(1-2个月):P0功能
|
||||
- 阶段二(1-2个月):P1功能
|
||||
- 阶段三(1-2个月):P2功能
|
||||
|
||||
**蜈ウ髞ョ豢槫ッ滂シ?*
|
||||
- 笨?蝠<>ク壽ィ。蠑冗噪謚譛ッ菫晞囿<E6999E><E59BBF>eature Flag縲∵<E7B8B2>譛ャ謗ァ蛻カ<E89BBB><EFBDB6>
|
||||
- 笨?迢ャ遶狗噪蜑咲ォッ蠎皮畑<E79AAE><E79591>https://admin.yizhengxun.com`<EFBFBD>?
|
||||
**关键洞察:**
|
||||
- ✅ 商业模式的技术保障(Feature Flag、成本控制)
|
||||
- ✅ 独立的前端应用(`https://admin.yizhengxun.com`)
|
||||
|
||||
---
|
||||
|
||||
### 6. 模块独立部署方案
|
||||
|
||||
**譁ケ譯井ク<EFBFBD>壼ョ梧紛謇灘桁<EFBFBD>育峡遶倶コァ蜩<EFBFBD>シ?*
|
||||
**方案一:完整打包(独立产品)**
|
||||
```
|
||||
审稿系统独立产品 =
|
||||
RVW讓。蝮<EFBFBD> + 蠢<>怙逧<E68099>ケウ蜿ー螻<EFBDB0> + 蠢<>怙逧<E68099><E980A7>蜉帛ア<E5B89B> + 迢ャ遶区焚謐ョ蠎?
|
||||
RVW模块 + 必需的平台层 + 必需的能力层 + 独立数据库
|
||||
```
|
||||
|
||||
**譁ケ譯井コ鯉シ壼<EFBFBD>莠ォ譛榊苅<EFBFBD>亥ケウ蜿ー蜀<EFBFBD>ィ。蝮暦シ?*
|
||||
**方案二:共享服务(平台内模块)**
|
||||
```
|
||||
API网关
|
||||
├─ AIA模块服务(独立部署)
|
||||
@@ -158,28 +158,28 @@ API网关
|
||||
```
|
||||
|
||||
**关键技术:**
|
||||
- 笨?Monorepo譫カ譫<EFBFBD>シ亥桁邂。逅<EFBFBD>∽サ」遐∝、咲畑<EFBFBD><EFBFBD>
|
||||
- 笨?騾画叫諤ァ蟇シ蜃コ<E89C83>育イセ邂迚亥ケウ蜿ー螻ゑシ?
|
||||
- 笨?Docker謇灘桁<EFBFBD>井ク髞ョ驛ィ鄂イ<EFBFBD><EFBFBD>
|
||||
- ✅ Monorepo架构(包管理、代码复用)
|
||||
- ✅ 选择性导出(精简版平台层)
|
||||
- ✅ Docker打包(一键部署)
|
||||
|
||||
---
|
||||
|
||||
### 7. Monorepo架构评估
|
||||
|
||||
**謌先悽蟇ケ豈費シ?*
|
||||
**成本对比:**
|
||||
|
||||
| 譁ケ譯<EFBFBD> | 遶句叉謌先悽 | 譛ェ譚・謌先悽 | 謚募<E8AC9A>莠ァ蜃コ豈?|
|
||||
| 方案 | 立即成本 | 未来成本 | 投入产出比 |
|
||||
|------|---------|---------|-----------|
|
||||
| **邇ー蝨ィ霓ャ謐「** | 2-3螟?| 0 | 箝絶ュ絶ュ絶ュ絶ュ?譫<>ォ<EFBFBD> |
|
||||
| **蟒カ蜷手スャ謐「** | 0 | 7-11螟?| 箝絶ュ<E7B5B6> 菴?|
|
||||
| **现在转换** | 2-3天 | 0 | ⭐⭐⭐⭐⭐ 极高 |
|
||||
| **延后转换** | 0 | 7-11天 | ⭐⭐ 低 |
|
||||
|
||||
**蟒コ隶ョ<EFBFBD>?* 邇ー蝨ィ霓ャ謐「 箝絶ュ絶ュ絶ュ絶ュ?
|
||||
**建议:** 现在转换 ⭐⭐⭐⭐⭐
|
||||
|
||||
**逅<EFBFBD>罰<EFBFBD>?*
|
||||
1. 笨?謚募<E8AC9A>蟆擾シ<E693BE>2-3螟ゥ<E89E9F>会シ梧噺逶雁、ァ<EFBDA4>郁鰍逵?-8螟ゥ<E89E9F><EFBDA9>
|
||||
2. 笨?豁」螟<EFBDA3>コ取怙菴ウ譌カ譛コ<E8AD9B>亥叉蟆<E58F89>シ蜿大、壽ィ。蝮暦シ?
|
||||
3. 笨?隨ヲ蜷域悴譚・隗<EFBDA5><E99A97><EFBFBD>郁ソ占是邂。逅<EFBDA1>ォッ縲∫峡遶倶コァ蜩<EFBDA7>シ<EFBFBD>
|
||||
4. 笨?蟄ヲ荵<EFBDA6>謌先悽蜿ッ謗ァ<E8AC97>域怏AI蜈ィ遞区欠蟇シ<E89F87>?
|
||||
**理由:**
|
||||
1. ✅ 投入小(2-3天),收益大(节省5-8天)
|
||||
2. ✅ 正处于最佳时机(即将开发多模块)
|
||||
3. ✅ 符合未来规划(运营管理端、独立产品)
|
||||
4. ✅ 学习成本可控(有AI全程指导)
|
||||
|
||||
---
|
||||
|
||||
@@ -187,37 +187,37 @@ API网关
|
||||
|
||||
### 决策1:Schema隔离
|
||||
|
||||
**蟒コ隶ョ<EFBFBD>夂鴫蝨ィ蛛夂黄逅<EFBFBD>囈遖サ** 箝絶ュ絶ュ絶ュ絶ュ?
|
||||
**建议:现在做物理隔离** ⭐⭐⭐⭐⭐
|
||||
|
||||
- 謌先悽<EFBFBD>?蜻?
|
||||
- 謾カ逶奇シ夐∩蜈肴悴譚?-5蜻ィ逧<EFBDA8>隼騾<E99ABC>謌先<E8AC8C>?
|
||||
- 成本:1周
|
||||
- 收益:避免未来3-5周的改造成本
|
||||
- 理由:数据量小,改造风险低
|
||||
|
||||
---
|
||||
|
||||
### 决策2:Monorepo架构
|
||||
|
||||
**蟒コ隶ョ<EFBFBD>夂鴫蝨ィ霓ャ謐?* 箝絶ュ絶ュ絶ュ絶ュ?
|
||||
**建议:现在转换** ⭐⭐⭐⭐⭐
|
||||
|
||||
- 謌先悽<EFBFBD>?-3螟?
|
||||
- 謾カ逶奇シ夊鰍逵∵悴譚?-8螟?
|
||||
- 成本:2-3天
|
||||
- 收益:节省未来5-8天
|
||||
- 理由:即将开发多个应用(运营管理端、ASL等)
|
||||
|
||||
---
|
||||
|
||||
### 蜀ウ遲<EFBFBD>3<EFBFBD>夐Κ鄂イ譁ケ譯?
|
||||
### 决策3:部署方案
|
||||
|
||||
**阶段一:专注云端SaaS**
|
||||
- 荳榊★豺キ蜷磯Κ鄂イ<EFBFBD>域橿譛ッ髫セ蠎ヲ譫<EFBFBD>ォ假シ碁怙豎ゆク肴<EFBFBD>遑ョ<EFBFBD>?
|
||||
- 不做混合部署(技术难度极高,需求不明确)
|
||||
- 暂缓Electron单机版(阶段二再做)
|
||||
|
||||
---
|
||||
|
||||
### 蜀ウ遲<EFBFBD>4<EFBFBD>壻ク倶ク豁・蠑蜿鷹㍾轤?
|
||||
### 决策4:下一步开发重点
|
||||
|
||||
**优先级:**
|
||||
1. P0<EFBFBD>哂SL讓。蝮暦シ<EFBFBD>I譎コ閭ス譁<EFBFBD>鍵<EFBFBD>?
|
||||
2. P0<EFBFBD>哭LM鄂大<EFBFBD><EFBFBD>亥膚荳壽ィ。蠑丞渕遑<EFBFBD>?
|
||||
1. P0:ASL模块(AI智能文献)
|
||||
2. P0:LLM网关(商业模式基础)
|
||||
3. P1:Schema隔离(可选,但强烈推荐)
|
||||
4. P1:Monorepo转换(可选,但强烈推荐)
|
||||
|
||||
@@ -225,20 +225,20 @@ API网关
|
||||
|
||||
## 📚 文档体系v2.0
|
||||
|
||||
### 譁ー譁<EFBFBD>。」扈捺<EFBFBD>?
|
||||
### 新文档结构
|
||||
|
||||
```
|
||||
docs/
|
||||
笏懌楳笏 00-邉サ扈滓サ菴楢ョセ隶。/ 笨?7荳ェ譬ク蠢<EFBDB8>枚譯?
|
||||
笏懌楳笏 01-蟷ウ蜿ー蝓コ遑螻?
|
||||
笏懌楳笏 02-騾夂畑閭ス蜉帛ア?
|
||||
笏懌楳笏 03-荳壼苅讓。蝮<EFBDA1>/ 笨?譁ー蠅暸DMIN讓。蝮暦シ亥<EFBDBC>8荳ェ<E88DB3><EFBDAA>
|
||||
笏懌楳笏 04-蠑蜿題ァ<E9A18C><EFBDA7>?
|
||||
笏懌楳笏 05-驛ィ鄂イ譁<EFBDB2>。」/ 笨?謇ゥ螻穂ク?遘埼Κ鄂イ譁ケ譯?
|
||||
├── 00-系统总体设计/ ✅ 7个核心文档
|
||||
├── 01-平台基础层/
|
||||
├── 02-通用能力层/
|
||||
├── 03-业务模块/ ✅ 新增ADMIN模块(共8个)
|
||||
├── 04-开发规范/
|
||||
├── 05-部署文档/ ✅ 扩展为4种部署方案
|
||||
├── 06-测试文档/
|
||||
├── 07-运维文档/
|
||||
├── 08-项目管理/
|
||||
笏披楳笏 09-譫カ譫<EFBDB6>ョ樊命/ 笨?譁ー蠅橸シ<E6A9B8>onorepo縲∵遠蛹<E981A0>∝セョ譛榊苅<E6A68A>?
|
||||
└── 09-架构实施/ ✅ 新增(Monorepo、打包、微服务)
|
||||
```
|
||||
|
||||
---
|
||||
@@ -249,48 +249,48 @@ docs/
|
||||
|
||||
**为什么?**
|
||||
```
|
||||
蝠<EFBFBD>ク壽ィ。蠑擾シ?
|
||||
- 蝓コ遑迚茨シ壼宵閭ス逕ィDeepSeek-V3<EFBFBD>按?/逋セ荳㏄okens<EFBFBD>?
|
||||
商业模式:
|
||||
- 基础版:只能用DeepSeek-V3(¥1/百万tokens)
|
||||
- 高级版:可用DeepSeek + Qwen3
|
||||
- 譌苓芦迚茨シ壼庄逕ィ謇譛画ィ。蝙?
|
||||
- 旗舰版:可用所有模型
|
||||
|
||||
謌先悽謗ァ蛻カ<EFBFBD>?
|
||||
- 扈滉ク逶第而縲<EFBFBD>剞豬√∬ョ。雍?
|
||||
成本控制:
|
||||
- 统一监控、限流、计费
|
||||
- 超出配额自动降级
|
||||
- 謖臥沿譛ャ蜉ィ諤∝<EFBFBD>謐「讓。蝙?
|
||||
- 按版本动态切换模型
|
||||
|
||||
5个模块依赖(71%复用率)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 2. 螳。遞ソ邉サ扈滓栫蜈キ迢ャ遶倶サキ蛟?
|
||||
### 2. 审稿系统极具独立价值
|
||||
|
||||
**荳コ莉荵磯ょ粋迢ャ遶具シ?*
|
||||
**为什么适合独立?**
|
||||
```
|
||||
1. 逕ィ謌キ鄒、螳悟<EFBFBD>荳榊酔<EFBFBD>域悄蛻顔シ冶セ鷹<EFBFBD>?vs 荳エ蠎雁現逕滂シ?
|
||||
1. 用户群完全不同(期刊编辑部 vs 临床医生)
|
||||
2. 业务逻辑完全独立
|
||||
3. 部署场景独立
|
||||
4. 蝠<EFBFBD>ク壽ィ。蠑冗峡遶具シ域潔譛溷<EFBFBD>隶「髦<EFBFBD>シ?
|
||||
4. 商业模式独立(按期刊订阅)
|
||||
|
||||
迢ャ遶矩楳蜚ョ莉キ蛟シ<EFBFBD>壺ュ絶ュ絶ュ絶ュ絶ュ?譫<>ォ<EFBFBD>
|
||||
独立销售价值:⭐⭐⭐⭐⭐ 极高
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 3. 邇ー蝨ィ譏ッ譛菴ウ謾ケ騾<EFBFBD>譌カ譛?
|
||||
### 3. 现在是最佳改造时机
|
||||
|
||||
**荳コ莉荵育鴫蝨ィ蛛夲シ?*
|
||||
**为什么现在做?**
|
||||
```
|
||||
Schema髫皮ヲサ<EFBFBD>?
|
||||
- 邇ー蝨ィ<EFBFBD>?蜻ィ<E89CBB>域焚謐ョ驥丞ー擾シ?
|
||||
- 譛ェ譚・<EFBFBD>?-5蜻ィ<E89CBB>域焚謐ョ驥丞、ァ<EFBDA4>梧<EFBFBD>譛?蛟搾シ<E690BE>
|
||||
Schema隔离:
|
||||
- 现在:1周(数据量小)
|
||||
- 未来:3-5周(数据量大,成本5倍)
|
||||
|
||||
Monorepo霓ャ謐「<EFBFBD>?
|
||||
- 邇ー蝨ィ<EFBFBD>?-3螟ゥ<E89E9F>井サ」遐<EFBDA3>㍼騾ゆクュ<EFBDB8>?
|
||||
- 譛ェ譚・<EFBFBD>?-11螟ゥ<E89E9F>亥、壼コ皮畑縲∽サ」遐<EFBDA3>㍼螟ァ<E89E9F><EFBDA7>
|
||||
Monorepo转换:
|
||||
- 现在:2-3天(代码量适中)
|
||||
- 未来:7-11天(多应用、代码量大)
|
||||
|
||||
諤サ扈難シ夊カ頑掠蛛夲シ梧<EFBFBD>譛ャ雜贋ス?
|
||||
总结:越早做,成本越低
|
||||
```
|
||||
|
||||
---
|
||||
@@ -299,211 +299,211 @@ Monorepo转换
|
||||
|
||||
**为什么可行?**
|
||||
```
|
||||
蜑咲ォッ螟咲畑<EFBFBD>?0%+
|
||||
前端复用:90%+
|
||||
- 所有React组件
|
||||
- UI蠎薙∫憾諤∫ョ。逅<EFBFBD>∬キッ逕?
|
||||
- UI库、状态管理、路由
|
||||
- 只需修改API调用层(1个文件)
|
||||
|
||||
蜷守ォッ螟咲畑<EFBFBD>?0%+
|
||||
- 謇譛唄ervice螻ゑシ井ク壼苅騾サ霎托シ?
|
||||
后端复用:80%+
|
||||
- 所有Service层(业务逻辑)
|
||||
- Prisma ORM
|
||||
- 蜿ェ髴騾る<EFBFBD><EFBFBD>唏TTP霍ッ逕ア 竊?IPC Handler
|
||||
- 只需适配:HTTP路由 → IPC Handler
|
||||
|
||||
諤サ螟咲畑邇<EFBFBD>シ?5%+
|
||||
謚譛ッ蜿ッ陦梧ァ<EFBFBD>壺ュ絶ュ絶ュ絶ュ絶ュ?
|
||||
总复用率:85%+
|
||||
技术可行性:⭐⭐⭐⭐⭐
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## <EFBFBD>噫 荳倶ク豁・陦悟勘蟒コ隶?
|
||||
## 🚀 下一步行动建议
|
||||
|
||||
### 譁ケ譯<EFBFBD><EFBFBD>壼ソォ騾滓耳霑帑ク壼苅<EFBFBD>域耳闕千サ呎慮髣エ邏ァ霑ォ逧<EFBFBD>ュ蜀オ<EFBFBD>?
|
||||
### 方案A:快速推进业务(推荐给时间紧迫的情况)
|
||||
|
||||
**譛ャ蜻ィ<EFBFBD>?*
|
||||
- 笨?遶句叉蠑蟋帰SL讓。蝮怜シ蜿?
|
||||
**本周:**
|
||||
- ✅ 立即开始ASL模块开发
|
||||
- ⚠️ 暂缓Schema隔离
|
||||
- ⚠️ 暂缓Monorepo转换
|
||||
|
||||
**隗ヲ蜿第擅莉カ<EFBFBD>?*
|
||||
**触发条件:**
|
||||
- 开发运营管理端时,必须转换Monorepo
|
||||
- 謨ー謐ョ驥剰カ<EFBFBD>ソ?0荳<30>。梧慮<E6A2A7>悟ソ<E6829F>。サ蛛售chema髫皮ヲサ
|
||||
- 数据量超过50万行时,必须做Schema隔离
|
||||
|
||||
**莨倡せ<EFBFBD>?* 遶句叉謗ィ霑帑ク壼苅
|
||||
**郛コ轤ケ<EFBFBD>?* 邏ッ遘ッ謚譛ッ蛟コ<E89B9F>梧悴譚・謌先悽鬮?
|
||||
**优点:** 立即推进业务
|
||||
**缺点:** 累积技术债,未来成本高
|
||||
|
||||
---
|
||||
|
||||
### 譁ケ譯<EFBFBD><EFBFBD>壼、ッ螳槫渕遑<EFBFBD>檎ィウ豁・謗ィ霑幢シ亥シコ辜域耳闕撰シ?
|
||||
### 方案B:夯实基础,稳步推进(强烈推荐)
|
||||
|
||||
**隨?蜻ィ<E89CBB>售chema髫皮ヲサ + Monorepo霓ャ謐「<EFBFBD>?-6螟ゥ<E89E9F><EFBDA9>**
|
||||
- Day 1-3<EFBFBD>售chema髫皮ヲサ<EFBFBD>磯サ霎鷹囈遖サ 竊?迚ゥ逅<EFBDA9>囈遖サ<E98196>?
|
||||
**第1周:Schema隔离 + Monorepo转换(5-6天)**
|
||||
- Day 1-3:Schema隔离(逻辑隔离 → 物理隔离)
|
||||
- Day 4-6:Monorepo转换
|
||||
|
||||
**隨?蜻ィ<E89CBB>壼シ蟋帰SL讓。蝮怜シ蜿?*
|
||||
- 莠ォ蜿祐chema髫皮ヲサ蟶ヲ譚・逧<EFBFBD>ク<EFBFBD>匆譫カ譫?
|
||||
- 莠ォ蜿柚onorepo蟶ヲ譚・逧<EFBFBD>サ」遐∝、咲畑萓ソ蛻?
|
||||
**第2周:开始ASL模块开发**
|
||||
- 享受Schema隔离带来的清晰架构
|
||||
- 享受Monorepo带来的代码复用便利
|
||||
|
||||
**莨倡せ<EFBFBD>?*
|
||||
- 笨?荳谺。諤ァ霑俶ク<E4BFB6>橿譛ッ蛟?
|
||||
- 笨?荳?荳ェ讓。蝮玲遠荳句撓螳槫渕遑
|
||||
- 笨?驕ソ蜈肴悴譚・螟ァ隗<EFBDA7>ィ。驥肴<E9A9A5>?
|
||||
**优点:**
|
||||
- ✅ 一次性还清技术债
|
||||
- ✅ 为7个模块打下坚实基础
|
||||
- ✅ 避免未来大规模重构
|
||||
|
||||
**郛コ轤ケ<EFBFBD>?*
|
||||
- 笞<EFBFBD><EFBFBD><EFBFBD> ASL讓。蝮怜サカ霑<EFBDB6>1蜻?
|
||||
**缺点:**
|
||||
- ⚠️ ASL模块延迟1周
|
||||
|
||||
**謚募<EFBFBD>莠ァ蜃コ豈費シ<EFBFBD>** 箝絶ュ絶ュ絶ュ絶ュ?譫<>ォ<EFBFBD>
|
||||
**投入产出比:** ⭐⭐⭐⭐⭐ 极高
|
||||
|
||||
---
|
||||
|
||||
### 譁ケ譯<EFBFBD><EFBFBD>壽釜荳ュ譁ケ譯茨シ域耳闕撰シ?
|
||||
### 方案C:折中方案(推荐)
|
||||
|
||||
**譛ャ蜻ィ<EFBFBD>?*
|
||||
- Day 1-3<EFBFBD>哺onorepo霓ャ謐「<EFBFBD>亥ソ<EFBFBD>。サ<EFBFBD>瑚ソ第悄蠑蜿題ソ占是邂。逅<EFBFBD>ォッ<EFBFBD>?
|
||||
- Day 4-7<EFBFBD>壼シ蟋帰SL讓。蝮怜シ蜿?
|
||||
**本周:**
|
||||
- Day 1-3:Monorepo转换(必须,近期开发运营管理端)
|
||||
- Day 4-7:开始ASL模块开发
|
||||
|
||||
**荳句捉<EFBFBD>?*
|
||||
- 扈ァ扈ュASL讓。蝮怜シ蜿?
|
||||
**下周:**
|
||||
- 继续ASL模块开发
|
||||
|
||||
**譛ェ譚・<EFBFBD>?-2荳ェ譛亥錘<E4BAA5>会シ?*
|
||||
**未来(1-2个月后):**
|
||||
- Schema隔离(数据量增长前)
|
||||
|
||||
**莨倡せ<EFBFBD>?*
|
||||
- 笨?隗」蜀ウ譛邏ァ霑ォ逧<EFBDAB>琉鬚假シ<E58187>onorepo<EFBFBD>?
|
||||
- 笨?蠢ォ騾滓耳霑帑ク壼苅<E5A3BC><E88B85>SL<53>?
|
||||
- 笨?蟒カ蜷惹ス<E683B9>ク肴叛蠑ゴchema髫皮ヲサ
|
||||
**优点:**
|
||||
- ✅ 解决最紧迫的问题(Monorepo)
|
||||
- ✅ 快速推进业务(ASL)
|
||||
- ✅ 延后但不放弃Schema隔离
|
||||
|
||||
**郛コ轤ケ<EFBFBD>?*
|
||||
- 笞<EFBFBD><EFBFBD><EFBFBD> Schema髫皮ヲサ謌先悽莨壼「槫<EFBFBD>?
|
||||
**缺点:**
|
||||
- ⚠️ Schema隔离成本会增加
|
||||
|
||||
---
|
||||
|
||||
## <EFBFBD>投 謚募<E8AC9A>莠ァ蜃コ豈泌<E8B188>譫?
|
||||
## 📊 投入产出比分析
|
||||
|
||||
| 投入 | 成本 | 收益 | ROI |
|
||||
|------|------|------|-----|
|
||||
| **Schema髫皮ヲサ** | 1蜻?| 驕ソ蜈肴悴譚・3-5蜻ィ謾ケ騾?| 300-500% |
|
||||
| **Monorepo霓ャ謐「** | 2-3螟?| 驕ソ蜈肴悴譚・7-11螟ゥ謾ケ騾?| 300-400% |
|
||||
| **譫カ譫<EFBFBD>ョセ隶。** | 1螟?| 貂<>匆逧<E58C86>橿譛ッ霍ッ郤ソ蝗セ | 譌<>莉キ |
|
||||
| **Schema隔离** | 1周 | 避免未来3-5周改造 | 300-500% |
|
||||
| **Monorepo转换** | 2-3天 | 避免未来7-11天改造 | 300-400% |
|
||||
| **架构设计** | 1天 | 清晰的技术路线图 | 无价 |
|
||||
|
||||
**諤サ謚募<EFBFBD>莠ァ蜃コ豈費シ?* 箝絶ュ絶ュ絶ュ絶ュ?譫<>ォ<EFBFBD>
|
||||
**总投入产出比:** ⭐⭐⭐⭐⭐ 极高
|
||||
|
||||
---
|
||||
|
||||
## <EFBFBD>識 謌醍噪譛扈亥サコ隶?
|
||||
## 🎯 我的最终建议
|
||||
|
||||
### 推荐:方案B(夯实基础)⭐⭐⭐⭐⭐
|
||||
|
||||
**譬ク蠢<EFBFBD>炊逕ア<EFBFBD>?*
|
||||
**核心理由:**
|
||||
|
||||
**1. 投入1周,节省未来1个月**
|
||||
```
|
||||
邇ー蝨ィ謚募<EFBFBD><EFBFBD>?
|
||||
- Schema髫皮ヲサ<EFBFBD>?螟?
|
||||
- Monorepo霓ャ謐「<EFBFBD>?螟?
|
||||
- 諤サ隶。<EFBFBD>?螟ゥ<E89E9F><EFBDA9>1蜻ィ<E89CBB><EFBDA8>
|
||||
现在投入:
|
||||
- Schema隔离:3天
|
||||
- Monorepo转换:3天
|
||||
- 总计:6天(1周)
|
||||
|
||||
譛ェ譚・闃ら怐<EFBFBD>?
|
||||
- Schema髫皮ヲサ<EFBFBD>?5-25螟ゥ<E89E9F><EFBDA9>3-5蜻ィ<E89CBB><EFBDA8>
|
||||
- Monorepo霓ャ謐「<EFBFBD>?-11螟?
|
||||
- 諤サ隶。<EFBFBD>?2-36螟ゥ<E89E9F><EFBDA9>1荳ェ譛<EFBDAA>+<2B>?
|
||||
未来节省:
|
||||
- Schema隔离:15-25天(3-5周)
|
||||
- Monorepo转换:7-11天
|
||||
- 总计:22-36天(1个月+)
|
||||
|
||||
投入产出比:300-500%
|
||||
```
|
||||
|
||||
**2. 豁」螟<EFBFBD>コ取怙菴ウ譌カ譛?*
|
||||
**2. 正处于最佳时机**
|
||||
```
|
||||
蠖灘燕<EFBFBD>?
|
||||
- 謨ー謐ョ驥丞ー擾シ? 1荳<31>。鯉シ?
|
||||
当前:
|
||||
- 数据量小(< 1万行)
|
||||
- 代码量适中
|
||||
- 蜊ウ蟆<EFBFBD>シ蜿大、壻クェ讓。蝮?
|
||||
- 即将开发多个模块
|
||||
- 团队小,沟通成本低
|
||||
|
||||
譛ェ譚・<EFBFBD>?
|
||||
- 謨ー謐ョ驥丞、ァ<EFBFBD>?00荳<30>。<EFBFBD>+<2B>?
|
||||
未来:
|
||||
- 数据量大(100万行+)
|
||||
- 代码量大
|
||||
- 多个应用同时运行
|
||||
- 驥肴桷蠖ア蜩崎激蝗エ螟?
|
||||
- 重构影响范围大
|
||||
```
|
||||
|
||||
**3. 荳?荳ェ讓。蝮玲遠荳句撓螳槫渕遑**
|
||||
**3. 为7个模块打下坚实基础**
|
||||
```
|
||||
ASL、DC、SSA、ST、RVW、ADMIN等模块:
|
||||
- 逶エ謗・莠ォ蜿祐chema髫皮ヲサ逧<EFBFBD>・ス螟?
|
||||
- 逶エ謗・莠ォ蜿柚onorepo逧<EFBFBD>サ」遐∝、咲<EFBFBD>?
|
||||
- 驕ソ蜈埼㍾螟埼<EFBFBD>霓ョ蟄?
|
||||
- 直接享受Schema隔离的好处
|
||||
- 直接享受Monorepo的代码复用
|
||||
- 避免重复造轮子
|
||||
```
|
||||
|
||||
**4. 驕ソ蜈肴橿譛ッ蛟コ邏ッ遘?*
|
||||
**4. 避免技术债累积**
|
||||
```
|
||||
謚譛ッ蛟コ逧<EFBFBD>音轤ケ<EFBFBD>?
|
||||
- 譌カ髣エ雜贋ケ<EFBFBD>シ悟茜諱ッ雜企ォ?
|
||||
- 謾ケ騾<EFBFBD>謌先悽謌仙榊「樣<EFBFBD>?
|
||||
技术债的特点:
|
||||
- 时间越久,利息越高
|
||||
- 改造成本成倍增长
|
||||
- 影响业务创新速度
|
||||
|
||||
邇ー蝨ィ謾ケ騾?= 荳谺。諤ァ霑俶ク?
|
||||
现在改造 = 一次性还清
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 笨?莉頑律螳梧<E89EB3>貂<EFBFBD>黒
|
||||
## ✅ 今日完成清单
|
||||
|
||||
### 譫カ譫<EFBFBD>ョセ隶。<EFBFBD>?00%螳梧<E89EB3><E6A2A7>?
|
||||
### 架构设计(100%完成)
|
||||
|
||||
- [x] 系统架构分层设计
|
||||
- [x] 文档体系重构方案v2.0
|
||||
- [x] 謨ー謐ョ蠎捺楔譫<EFBFBD>ッエ譏?
|
||||
- [x] 霑占是邂。逅<EFBFBD>ォッ譫カ譫<EFBFBD>ョセ隶?
|
||||
- [x] Schema髫皮ヲサ譁ケ譯井ク取<EFBFBD>譛ャ蛻<EFBFBD><EFBFBD>?
|
||||
- [x] 数据库架构说明
|
||||
- [x] 运营管理端架构设计
|
||||
- [x] Schema隔离方案与成本分析
|
||||
- [x] 模块独立部署与单机版方案
|
||||
- [x] Monorepo架构评估
|
||||
|
||||
### 蜈ウ髞ョ蜀ウ遲厄シ?00%螳梧<E89EB3><E6A2A7>?
|
||||
### 关键决策(100%完成)
|
||||
|
||||
- [x] 三层架构设计
|
||||
- [x] 8荳ェ荳壼苅讓。蝮苓ァ<EFBFBD><EFBFBD>?
|
||||
- [x] 4遘埼Κ鄂イ譁ケ譯郁ョセ隶?
|
||||
- [x] 8个业务模块规划
|
||||
- [x] 4种部署方案设计
|
||||
- [x] Schema隔离时机建议
|
||||
- [x] Monorepo转换时机建议
|
||||
|
||||
### 譁<EFBFBD>。」莠ァ蜃コ<EFBFBD>?00%螳梧<E89EB3><E6A2A7>?
|
||||
### 文档产出(100%完成)
|
||||
|
||||
- [x] 7荳ェ譬ク蠢<EFBFBD>楔譫<EFBFBD>枚譯?
|
||||
- [x] 6000+陦瑚ッヲ扈<EFBFBD>ョセ隶?
|
||||
- [x] 螳梧紛逧<EFBFBD>橿譛ッ譁ケ譯?
|
||||
- [x] 7个核心架构文档
|
||||
- [x] 6000+行详细设计
|
||||
- [x] 完整的技术方案
|
||||
|
||||
---
|
||||
|
||||
## <EFBFBD>脂 諱ュ蝟懶シ?
|
||||
## 🎉 恭喜!
|
||||
|
||||
**今天完成了非常扎实和深入的架构设计工作!**
|
||||
|
||||
我们从零开始,构建了一个:
|
||||
- 笨?貂<>匆逧<E58C86>ク牙アよ楔譫?
|
||||
- 笨?螳梧紛逧?荳ェ荳壼苅讓。蝮苓ァ<E88B93><EFBDA7>?
|
||||
- 笨?4遘埼Κ鄂イ譁ケ譯?
|
||||
- 笨?隸ヲ扈<EFBDA6>噪螳樊命霍ッ蠕?
|
||||
- ✅ 清晰的三层架构
|
||||
- ✅ 完整的8个业务模块规划
|
||||
- ✅ 4种部署方案
|
||||
- ✅ 详细的实施路径
|
||||
|
||||
**霑吩コ帶楔譫<EFBFBD>ョセ隶。蟆<EFBFBD>欠蟇シ譛ェ譚?-12荳ェ譛育噪蠑蜿大キ・菴懶シ<E687B6>**
|
||||
**这些架构设计将指导未来6-12个月的开发工作!**
|
||||
|
||||
---
|
||||
|
||||
## 📌 明天开始可以做的事
|
||||
|
||||
### 騾画叫1<EFBFBD>夂ォ句叉蠑蟋句シ蜿?
|
||||
- ASL讓。蝮怜シ蜿?
|
||||
### 选择1:立即开始开发
|
||||
- ASL模块开发
|
||||
- 使用现有架构
|
||||
|
||||
### 选择2:夯实基础(强烈推荐)
|
||||
- Week 1:Schema隔离 + Monorepo转换
|
||||
- Week 2<EFBFBD>哂SL讓。蝮怜シ蜿?
|
||||
- Week 2:ASL模块开发
|
||||
|
||||
### 騾画叫3<EFBFBD>壽釜荳ュ譁ケ譯?
|
||||
### 选择3:折中方案
|
||||
- Day 1-3:Monorepo转换
|
||||
- Day 4+<EFBFBD>哂SL讓。蝮怜シ蜿?
|
||||
- Day 4+:ASL模块开发
|
||||
|
||||
---
|
||||
|
||||
**謔ィ逧<EFBFBD>画叫<EFBFBD>?* <20><>
|
||||
**您的选择?** 😊
|
||||
|
||||
我已经准备好全程协助您实施任何一个方案!
|
||||
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
# 核心问题解答
|
||||
|
||||
> **鍒涘缓鏃ユ湡锛?* 2025-11-06
|
||||
> **鏂囨。鐩<EFBFBD>殑锛?* 鍥炵瓟鐢ㄦ埛鎻愬嚭鐨勫叧閿<E58FA7>灦鏋勯棶棰?
|
||||
> **创建日期:** 2025-11-06
|
||||
> **文档目的:** 回答用户提出的关键架构问题
|
||||
|
||||
---
|
||||
|
||||
## 📋 您提出的问题
|
||||
|
||||
鎮ㄦ彁鍑轰簡闈炲父鏍稿績鐨勬灦鏋勯棶棰橈紝杩欎簺闂<EFBFBD><EFBFBD>鐩存帴褰卞搷浜嗘暣涓<EFBFBD>郴缁熺殑璁捐<EFBFBD>銆傝<EFBFBD>鎴戦€愪竴娣卞叆瑙g瓟锛?
|
||||
您提出了非常核心的架构问题,这些问题直接影响了整个系统的设计。让我逐一深入解答:
|
||||
|
||||
---
|
||||
|
||||
@@ -15,12 +15,12 @@
|
||||
|
||||
### 您的建议
|
||||
|
||||
> 锛?锛夌郴缁熸€讳綋鏋舵瀯銆佹€讳綋闇€姹侾RD銆佺郴缁熸€讳綋璁捐<E79281>銆佺郴缁熸€讳綋閮ㄧ讲绛夛紝搴旇<E690B4>鏄<EFBFBD>竴涓<E7ABB4>嫭绔嬬殑鏂囦欢澶?
|
||||
> 锛?锛?涓<>ā鍧楀簲璇ユ槸鐙<E6A7B8>珛鐨?涓<>枃浠跺す锛屾瘡涓<E798A1>ā鍧楁湁锛氶」鐩<E3808D><E990A9>杩般€佽<E282AC>璁℃枃妗c€佷笟鍔¤<E98D94>鍒欍€佸紑鍙戣<E98D99>鍒掋€佹瘡鏃ヨ繘搴︺€侀儴缃叉枃妗?
|
||||
> (1)系统总体架构、总体需求PRD、系统总体设计、系统总体部署等,应该是一个独立的文件夹
|
||||
> (2)7个模块应该是独立的7个文件夹,每个模块有:项目概述、设计文档、业务规则、开发计划、每日进度、部署文档
|
||||
|
||||
### 我的回复
|
||||
|
||||
鉁?**瀹屽叏璁ゅ悓锛佽繖鏄<E7B996>潪甯告<E794AF>纭<EFBFBD>殑鏋舵瀯鎬濊矾锛?*
|
||||
✅ **完全认同!这是非常正确的架构思路!**
|
||||
|
||||
我已经创建了详细的文档重构方案:
|
||||
- 📄 [文档体系重构方案](./02-文档体系重构方案.md)
|
||||
@@ -28,20 +28,20 @@
|
||||
**新文档结构:**
|
||||
```
|
||||
docs/
|
||||
鈹溾攢鈹€ 00-绯荤粺鎬讳綋璁捐<E79281>/ # 鉁?鎬讳綋鐙<E7B68B>珛
|
||||
鈹? 鈹溾攢鈹€ 01-绯荤粺鏋舵瀯鍒嗗眰璁捐<E79281>.md
|
||||
鈹? 鈹溾攢鈹€ 02-鏂囨。浣撶郴閲嶆瀯鏂规<E98F82>.md
|
||||
鈹? 鈹溾攢鈹€ 03-鎬讳綋闇€姹傛枃妗?PRD).md
|
||||
鈹? 鈹溾攢鈹€ 04-鎶€鏈<E282AC>灦鏋勭櫧鐨<E6ABA7>功.md
|
||||
鈹? 鈹斺攢鈹€ 05-閮ㄧ讲鏋舵瀯璁捐<E79281>.md
|
||||
鈹?
|
||||
鈹溾攢鈹€ 01-骞冲彴鍩虹<E98DA9>灞? # 骞冲彴灞傦紙鐢ㄦ埛鏉冮檺銆佸瓨鍌ㄣ€侀€氱煡绛夛級
|
||||
鈹溾攢鈹€ 02-閫氱敤鑳藉姏灞? # 閫氱敤鑳藉姏锛圠LM缃戝叧銆佹枃妗e<E5A697>鐞嗐€丷AG绛夛級
|
||||
鈹?
|
||||
鈹斺攢鈹€ 03-涓氬姟妯″潡/ # 鉁?7涓<37>ā鍧楃嫭绔?
|
||||
├── 00-系统总体设计/ # ✅ 总体独立
|
||||
│ ├── 01-系统架构分层设计.md
|
||||
│ ├── 02-文档体系重构方案.md
|
||||
│ ├── 03-总体需求文档(PRD).md
|
||||
│ ├── 04-技术架构白皮书.md
|
||||
│ └── 05-部署架构设计.md
|
||||
│
|
||||
├── 01-平台基础层/ # 平台层(用户权限、存储、通知等)
|
||||
├── 02-通用能力层/ # 通用能力(LLM网关、文档处理、RAG等)
|
||||
│
|
||||
└── 03-业务模块/ # ✅ 7个模块独立
|
||||
├── AIA-AI智能问答/
|
||||
├── ASL-AI智能文献/
|
||||
鈹溾攢鈹€ PKB-涓<>汉鐭ヨ瘑搴?
|
||||
├── PKB-个人知识库/
|
||||
├── DC-数据清洗整理/
|
||||
├── SSA-智能统计分析/
|
||||
├── ST-统计分析工具/
|
||||
@@ -51,21 +51,21 @@ docs/
|
||||
**每个模块的标准结构:**
|
||||
```
|
||||
XXX-模块名称/
|
||||
鈹溾攢鈹€ 00-椤圭洰姒傝堪/ # PRD銆佸姛鑳芥竻鍗曘€佺敤鎴锋晠浜?
|
||||
├── 00-项目概述/ # PRD、功能清单、用户故事
|
||||
├── 01-设计文档/ # 技术架构、数据库、API、前端组件、UI原型
|
||||
鈹溾攢鈹€ 02-涓氬姟瑙勫垯/ # 涓氬姟瑙勫垯銆侀獙璇佽<E79287>鍒?
|
||||
鈹溾攢鈹€ 03-寮€鍙戣<E98D99>鍒? # 閲岀▼纰戙€佷换鍔″垎瑙?
|
||||
鈹溾攢鈹€ 04-娴嬭瘯鏂囨。/ # 娴嬭瘯璁″垝銆佹祴璇曠敤渚?
|
||||
鈹溾攢鈹€ 05-閮ㄧ讲鏂囨。/ # 閮ㄧ讲鎸囧崡銆侀厤缃<E58EA4><E7BC83>鏄?
|
||||
鈹溾攢鈹€ 06-寮€鍙戣繘搴? # 姣忔棩/姣忓懆杩涘害锛堝彲閫夛級
|
||||
├── 02-业务规则/ # 业务规则、验证规则
|
||||
├── 03-开发计划/ # 里程碑、任务分解
|
||||
├── 04-测试文档/ # 测试计划、测试用例
|
||||
├── 05-部署文档/ # 部署指南、配置说明
|
||||
├── 06-开发进度/ # 每日/每周进度(可选)
|
||||
└── README.md # 模块导航
|
||||
```
|
||||
|
||||
**鏍稿績浼樺娍锛?*
|
||||
- 鉁?鎬讳綋涓庢ā鍧楀垎绂?
|
||||
- 鉁?灞傛<E7819E>娓呮櫚锛堝钩鍙板眰銆侀€氱敤鑳藉姏灞傘€佷笟鍔℃ā鍧楀眰锛?
|
||||
- 鉁?鏀<>寔妯″潡鐙<E6BDA1>珛閿€鍞<E282AC>紙姣忎釜妯″潡鏂囨。鍙<E38082>嫭绔嬫墦鍖咃級
|
||||
- 鉁?鏄撲簬鎵╁睍锛堟柊澧炴ā鍧楀<E98DA7>鍒舵ā鏉垮嵆鍙<E5B586>級
|
||||
**核心优势:**
|
||||
- ✅ 总体与模块分离
|
||||
- ✅ 层次清晰(平台层、通用能力层、业务模块层)
|
||||
- ✅ 支持模块独立销售(每个模块文档可独立打包)
|
||||
- ✅ 易于扩展(新增模块复制模板即可)
|
||||
|
||||
---
|
||||
|
||||
@@ -77,60 +77,60 @@ XXX-模块名称/
|
||||
|
||||
### 我的回复
|
||||
|
||||
鉁?**瀹屽叏璧炲悓锛佹贩鍚堥儴缃叉妧鏈<E5A6A7>毦搴︽瀬楂橈紝闇€姹備笉鏄庣‘锛屽簲璇ユ殏缂撱€?*
|
||||
✅ **完全赞同!混合部署技术难度极高,需求不明确,应该暂缓。**
|
||||
|
||||
**璋冩暣鍚庣殑閮ㄧ讲妯″紡锛?*
|
||||
| 閮ㄧ讲妯″紡 | 鐩<>爣鐢ㄦ埛 | 鎶€鏈<E282AC>毦搴?| 浼樺厛绾?|
|
||||
**调整后的部署模式:**
|
||||
| 部署模式 | 目标用户 | 技术难度 | 优先级 |
|
||||
|---------|---------|---------|-------|
|
||||
| **浜戠<EFBFBD>SaaS鐗?* | 涓<>汉鐢ㄦ埛銆佸皬鏈烘瀯 | 猸愨瓙猸?涓<>瓑 | P0锛堝綋鍓嶏級 |
|
||||
| **绉佹湁鍖栭儴缃?* | 鍖婚櫌銆佸ぇ鏈烘瀯 | 猸愨瓙猸愨瓙 楂?| P1锛堥樁娈典簩锛?|
|
||||
| **鍗曟満鐗堬紙Electron锛?* | 涓<>汉鍖荤敓 | 猸愨瓙猸愨瓙猸?寰堥珮 | P2锛堥樁娈典簩锛?|
|
||||
| ~~娣峰悎閮ㄧ讲~~ | ~~楂樼骇瀹㈡埛~~ | ~~猸愨瓙猸愨瓙猸?鏋侀珮~~ | 鉂?涓嶈€冭檻 |
|
||||
| **云端SaaS版** | 个人用户、小机构 | ⭐⭐⭐ 中等 | P0(当前) |
|
||||
| **私有化部署** | 医院、大机构 | ⭐⭐⭐⭐ 高 | P1(阶段二) |
|
||||
| **单机版(Electron)** | 个人医生 | ⭐⭐⭐⭐⭐ 很高 | P2(阶段二) |
|
||||
| ~~混合部署~~ | ~~高级客户~~ | ~~⭐⭐⭐⭐⭐ 极高~~ | ❌ 不考虑 |
|
||||
|
||||
**简化后的好处:**
|
||||
- 鉁?闄嶄綆鎶€鏈<E282AC><E98F88>鏉傚害
|
||||
- 鉁?鑱氱劍鏍稿績鍦烘櫙
|
||||
- 鉁?鍔犲揩寮€鍙戦€熷害
|
||||
- 鉁?闄嶄綆缁存姢鎴愭湰
|
||||
- ✅ 降低技术复杂度
|
||||
- ✅ 聚焦核心场景
|
||||
- ✅ 加快开发速度
|
||||
- ✅ 降低维护成本
|
||||
|
||||
**闃舵<EFBFBD>瑙勫垝锛?*
|
||||
**阶段规划:**
|
||||
```
|
||||
闃舵<EFBFBD>涓€锛堝綋鍓?6涓<36>湀锛夛細浜戠<E6B59C>SaaS鐗?
|
||||
阶段一(当前-6个月):云端SaaS版
|
||||
- 专注云端部署
|
||||
- 楠岃瘉甯傚満闇€姹?
|
||||
- 蹇<EFBFBD>€熻凯浠?
|
||||
- 验证市场需求
|
||||
- 快速迭代
|
||||
|
||||
闃舵<EFBFBD>浜岋紙6-18涓<38>湀锛夛細绉佹湁鍖栭儴缃?
|
||||
阶段二(6-18个月):私有化部署
|
||||
- 触发条件:有客户明确要求
|
||||
- 引入K8s
|
||||
- Docker涓€閿<EFBFBD>儴缃?
|
||||
- Docker一键部署
|
||||
|
||||
阶段三(18个月+):单机版(可选)
|
||||
- 瑙﹀彂鏉′欢锛氭湁澶ч噺鍗曟満鐗堥渶姹?
|
||||
- 触发条件:有大量单机版需求
|
||||
- 开发Electron应用
|
||||
- 鏈<EFBFBD>湴鍖栬繍琛?
|
||||
- 本地化运行
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3锔忊儯 瀹$ǹ绯荤粺鐨勭嫭绔嬫€?
|
||||
## 3️⃣ 审稿系统的独立性
|
||||
|
||||
### 您的计划
|
||||
|
||||
> 鏈<EFBFBD>潵杩樹細澧炲姞涓€涓<EFBFBD><EFBFBD>绋跨郴缁熺殑寮€鍙戯紝鐩<EFBFBD>墠宸茬粡鏈夋牳蹇冨<EFBFBD>绋垮姛鑳戒簡锛屽彲鑳介渶瑕佺嫭绔嬫垚涓€涓<EFBFBD>郴缁?
|
||||
> 未来还会增加一个审稿系统的开发,目前已经有核心审稿功能了,可能需要独立成一个系统
|
||||
|
||||
### 我的回复
|
||||
|
||||
鉁?**瀹$ǹ绯荤粺闈炲父閫傚悎鐙<E6828E>珛锛佽繖鏄<E7B996>竴涓<E7ABB4>瀬鍏峰晢涓氫环鍊肩殑鍐崇瓥锛?*
|
||||
✅ **审稿系统非常适合独立!这是一个极具商业价值的决策!**
|
||||
|
||||
**涓轰粈涔堝<EFBFBD>绋跨郴缁熼€傚悎鐙<EFBFBD>珛锛?*
|
||||
**为什么审稿系统适合独立?**
|
||||
|
||||
**1. 鐢ㄦ埛缇ゅ畬鍏ㄤ笉鍚?*
|
||||
**1. 用户群完全不同**
|
||||
```
|
||||
涓诲钩鍙扮敤鎴凤細涓村簥鍖荤敓銆佺爺绌惰€?
|
||||
瀹$ǹ绯荤粺鐢ㄦ埛锛氭湡鍒婄紪杈戦儴銆佸嚭鐗堢ぞ銆佸<EFBFBD>浼?
|
||||
主平台用户:临床医生、研究者
|
||||
审稿系统用户:期刊编辑部、出版社、学会
|
||||
|
||||
鈫?涓ょ被鐢ㄦ埛娌℃湁浜ら泦锛屽畬鍏ㄧ嫭绔?
|
||||
→ 两类用户没有交集,完全独立
|
||||
```
|
||||
|
||||
**2. 业务逻辑完全独立**
|
||||
@@ -138,7 +138,7 @@ XXX-模块名称/
|
||||
主平台:科研全流程(统计分析、文献筛选、数据清洗)
|
||||
审稿系统:稿件审查流程(投稿、审稿、修改、决策)
|
||||
|
||||
鈫?涓氬姟閫昏緫鏃犲叧鑱?
|
||||
→ 业务逻辑无关联
|
||||
```
|
||||
|
||||
**3. 部署场景独立**
|
||||
@@ -146,42 +146,42 @@ XXX-模块名称/
|
||||
主平台:云端SaaS为主,部分私有化
|
||||
审稿系统:期刊编辑部独立部署
|
||||
|
||||
鈫?閮ㄧ讲闇€姹備笉鍚?
|
||||
→ 部署需求不同
|
||||
```
|
||||
|
||||
**4. 商业模式独立**
|
||||
```
|
||||
涓诲钩鍙帮細鎸夌増鏈<EFBFBD><EFBFBD>闃咃紙鍩虹<EFBFBD>鐗堛€侀珮绾х増銆佹棗鑸扮増锛?
|
||||
瀹$ǹ绯荤粺锛氭寜鏈熷垔璁㈤槄锛屾垨鎸夌ǹ浠舵暟閲忚<EFBFBD>璐?
|
||||
主平台:按版本订阅(基础版、高级版、旗舰版)
|
||||
审稿系统:按期刊订阅,或按稿件数量计费
|
||||
|
||||
鈫?鍟嗕笟妯″紡瀹屽叏涓嶅悓
|
||||
→ 商业模式完全不同
|
||||
```
|
||||
|
||||
**当前状态:**
|
||||
- 鉁?鏍稿績鍔熻兘宸插疄鐜帮紙鏂囨。鎻愬彇銆佽<E98A86>鑼冩€ц瘎浼般€佹柟娉曞<E5A889>璇勪及锛?
|
||||
- 鉁?鏁版嵁搴撹〃宸茬嫭绔嬶紙review_tasks锛?
|
||||
- ✅ 核心功能已实现(文档提取、规范性评估、方法学评估)
|
||||
- ✅ 数据库表已独立(review_tasks)
|
||||
- ⚠️ 需要扩展(审稿人管理、审稿流程、多轮审稿)
|
||||
|
||||
**寤鸿<EFBFBD>锛?*
|
||||
**建议:**
|
||||
```
|
||||
鐭<EFBFBD>湡锛堝綋鍓嶏級锛?
|
||||
- 瀹$ǹ绯荤粺浣滀负涓诲钩鍙扮殑涓€涓<EFBFBD>ā鍧?
|
||||
- 浣嗗湪鏋舵瀯璁捐<EFBFBD>涓婁繚鎸佺嫭绔嬶紙鐙<EFBFBD>珛Schema銆佺嫭绔婣PI锛?
|
||||
短期(当前):
|
||||
- 审稿系统作为主平台的一个模块
|
||||
- 但在架构设计上保持独立(独立Schema、独立API)
|
||||
|
||||
涓<EFBFBD>湡锛?-12涓<32>湀锛夛細
|
||||
中期(6-12个月):
|
||||
- 开发完整审稿系统(审稿人、流程、多轮审稿)
|
||||
- 楠岃瘉甯傚満闇€姹?
|
||||
- 验证市场需求
|
||||
|
||||
闀挎湡锛?2涓<32>湀+锛夛細
|
||||
- 瀹屽叏鐙<EFBFBD>珛涓哄崟鐙<EFBFBD>骇鍝?AI杈呭姪瀹$ǹ绯荤粺"
|
||||
- 鐙<EFBFBD>珛閮ㄧ讲銆佺嫭绔嬮攢鍞?
|
||||
长期(12个月+):
|
||||
- 完全独立为单独产品"AI辅助审稿系统"
|
||||
- 独立部署、独立销售
|
||||
- 目标客户:期刊编辑部、出版社
|
||||
```
|
||||
|
||||
**鐙<EFBFBD>珛閿€鍞<EFBFBD>环鍊硷細猸愨瓙猸愨瓙猸?鏋侀珮锛?*
|
||||
**独立销售价值:⭐⭐⭐⭐⭐ 极高!**
|
||||
- 市场空白:国内缺乏AI审稿工具
|
||||
- 鍒氶渶锛氭湡鍒婄紪杈戦儴瀹$ǹ鍘嬪姏澶?
|
||||
- 浠樿垂鑳藉姏寮猴細鏈熷垔鏈夐<EFBFBD>绠?
|
||||
- 刚需:期刊编辑部审稿压力大
|
||||
- 付费能力强:期刊有预算
|
||||
|
||||
---
|
||||
|
||||
@@ -197,186 +197,186 @@ XXX-模块名称/
|
||||
这是最核心的架构问题!我已经创建了详细的架构分层设计:
|
||||
- 📄 [系统架构分层设计](./01-系统架构分层设计.md)
|
||||
|
||||
**涓夊眰鏋舵瀯鎬昏<EFBFBD>锛?*
|
||||
**三层架构总览:**
|
||||
|
||||
### 绗<EFBFBD>竴灞傦細骞冲彴鍩虹<EFBFBD>灞傦紙Platform Layer锛?
|
||||
### 第一层:平台基础层(Platform Layer)
|
||||
|
||||
**瀹氫箟锛?* 鎵€鏈変笟鍔℃ā鍧楃殑鍦板熀锛屾彁渚涢€氱敤鐨勫熀纭€璁炬柦鑳藉姏
|
||||
**定义:** 所有业务模块的地基,提供通用的基础设施能力
|
||||
|
||||
**鍖呭惈妯″潡锛?*
|
||||
1. 鉁?**鐢ㄦ埛涓庢潈闄愪腑蹇冿紙UAM锛?* - 鐢ㄦ埛璁よ瘉銆佹潈闄愮<E99784>鐞嗐€丗eature Flag
|
||||
2. 鉁?**瀛樺偍鏈嶅姟** - 鏂囦欢涓婁紶涓嬭浇銆丱SS/鏈<>湴鏂囦欢绯荤粺
|
||||
3. 鉁?**閫氱煡鏈嶅姟** - 绔欏唴娑堟伅銆侀偖浠躲€乄ebSocket鎺ㄩ€?
|
||||
4. 鉁?**鐩戞帶涓庢棩蹇?* - 鎿嶄綔鏃ュ織銆侀敊璇<E6958A>棩蹇椼€佸<E282AC>璁℃棩蹇?
|
||||
5. 鉁?**绯荤粺閰嶇疆** - 绯荤粺绾ч厤缃<EFBFBD><EFBFBD>鐞?
|
||||
**包含模块:**
|
||||
1. ✅ **用户与权限中心(UAM)** - 用户认证、权限管理、Feature Flag
|
||||
2. ✅ **存储服务** - 文件上传下载、OSS/本地文件系统
|
||||
3. ✅ **通知服务** - 站内消息、邮件、WebSocket推送
|
||||
4. ✅ **监控与日志** - 操作日志、错误日志、审计日志
|
||||
5. ✅ **系统配置** - 系统级配置管理
|
||||
|
||||
**鐗瑰緛锛?*
|
||||
- 鉁?鍏ㄥ眬鍞<E79CAC>竴锛堟暣涓<E69AA3>钩鍙板彧鏈変竴濂楋級
|
||||
- 鉁?涓氬姟鏃犲叧锛堜笉娑夊強鍏蜂綋涓氬姟閫昏緫锛?
|
||||
- 鉁?寮轰緷璧栨€э紙鎵€鏈変笟鍔℃ā鍧楅兘蹇呴』渚濊禆锛?
|
||||
- 鉁?绋冲畾鎬ч珮锛堝緢灏戝彉鍔<E5BD89>級
|
||||
**特征:**
|
||||
- ✅ 全局唯一(整个平台只有一套)
|
||||
- ✅ 业务无关(不涉及具体业务逻辑)
|
||||
- ✅ 强依赖性(所有业务模块都必须依赖)
|
||||
- ✅ 稳定性高(很少变动)
|
||||
|
||||
---
|
||||
|
||||
### 绗<EFBFBD>簩灞傦細閫氱敤鑳藉姏灞傦紙Capability Layer锛?
|
||||
### 第二层:通用能力层(Capability Layer)
|
||||
|
||||
**瀹氫箟锛?* 璺ㄤ笟鍔℃ā鍧楀叡浜<E58FA1>殑鏍稿績鎶€鏈<E282AC>兘鍔?
|
||||
**定义:** 跨业务模块共享的核心技术能力
|
||||
|
||||
**鍖呭惈鑳藉姏锛?*
|
||||
**包含能力:**
|
||||
|
||||
#### 1. LLM澶фā鍨嬬綉鍏?猸愨瓙猸愨瓙猸?**鏈€鏍稿績**
|
||||
#### 1. LLM大模型网关 ⭐⭐⭐⭐⭐ **最核心**
|
||||
|
||||
**鑱岃矗锛?*
|
||||
**职责:**
|
||||
- 统一管理所有LLM调用
|
||||
- 鏍规嵁鐢ㄦ埛鐗堟湰鍔ㄦ€佸垏鎹㈡ā鍨?
|
||||
- 鎴愭湰鎺у埗涓庨檺娴?
|
||||
- Token璁℃暟涓庤<EFBFBD>璐?
|
||||
- 根据用户版本动态切换模型
|
||||
- 成本控制与限流
|
||||
- Token计数与计费
|
||||
|
||||
**浣跨敤妯″潡锛?*
|
||||
- 鉁?AIA锛圓I鏅鸿兘闂<EFBFBD>瓟锛?
|
||||
- 鉁?ASL锛圓I鏅鸿兘鏂囩尞锛?
|
||||
- 鉁?PKB锛堜釜浜虹煡璇嗗簱锛?
|
||||
- 鉁?DC锛堟暟鎹<E69A9F>竻娲楋級
|
||||
- 鉁?RVW锛堢ǹ浠跺<EFBFBD>鏌ワ級
|
||||
**使用模块:**
|
||||
- ✅ AIA(AI智能问答)
|
||||
- ✅ ASL(AI智能文献)
|
||||
- ✅ PKB(个人知识库)
|
||||
- ✅ DC(数据清洗)
|
||||
- ✅ RVW(稿件审查)
|
||||
|
||||
**复用率:** 5/7 = 71%
|
||||
|
||||
**涓轰粈涔堟槸鏍稿績锛?*
|
||||
**为什么是核心?**
|
||||
```
|
||||
这是商业模式的技术保障:
|
||||
- 鍩虹<EFBFBD>鐗堬細鍙<EFBFBD>兘鐢―eepSeek-V3锛埪?/鐧句竾tokens锛?
|
||||
- 基础版:只能用DeepSeek-V3(¥1/百万tokens)
|
||||
- 高级版:可用DeepSeek + Qwen3
|
||||
- 旗舰版:可用DeepSeek + Qwen3 + Qwen-Long + Claude
|
||||
|
||||
鎴愭湰鎺у埗锛?
|
||||
成本控制:
|
||||
- 统一监控所有LLM API调用
|
||||
- 超出配额自动限流
|
||||
- 鎸夌増鏈<EFBFBD><EFBFBD>璐?
|
||||
- 按版本计费
|
||||
```
|
||||
|
||||
**褰撳墠鐘舵€侊細** 鉂?鏈<>疄鐜帮紙P0浼樺厛绾э級
|
||||
**当前状态:** ❌ 未实现(P0优先级)
|
||||
|
||||
---
|
||||
|
||||
#### 2. 鏂囨。澶勭悊寮曟搸 猸愨瓙猸愨瓙猸?**鏈€鏍稿績**
|
||||
#### 2. 文档处理引擎 ⭐⭐⭐⭐⭐ **最核心**
|
||||
|
||||
**鑱岃矗锛?*
|
||||
- 澶氭牸寮忔枃妗f彁鍙栵紙PDF/Docx/Txt/Excel锛?
|
||||
**职责:**
|
||||
- 多格式文档提取(PDF/Docx/Txt/Excel)
|
||||
- 文本清洗与预处理
|
||||
- OCR处理
|
||||
- 表格提取
|
||||
|
||||
**浣跨敤妯″潡锛?*
|
||||
- 鉁?ASL锛堟枃鐚甈DF鎻愬彇锛?
|
||||
- 鉁?PKB锛堢煡璇嗗簱鏂囨。锛?
|
||||
- 鉁?DC锛圗xcel/Docx瀵煎叆锛?
|
||||
- 鉁?SSA锛堟暟鎹<EFBFBD><EFBFBD>鍏ワ級
|
||||
- 鉁?ST锛堟暟鎹<E69A9F><E98EB9>鍏ワ級
|
||||
- 鉁?RVW锛堢ǹ浠舵彁鍙栵級
|
||||
**使用模块:**
|
||||
- ✅ ASL(文献PDF提取)
|
||||
- ✅ PKB(知识库文档)
|
||||
- ✅ DC(Excel/Docx导入)
|
||||
- ✅ SSA(数据导入)
|
||||
- ✅ ST(数据导入)
|
||||
- ✅ RVW(稿件提取)
|
||||
|
||||
**复用率:** 6/7 = 86%
|
||||
|
||||
**褰撳墠鐘舵€侊細** 鉁?宸插疄鐜帮紙Python寰<6E>湇鍔★級
|
||||
**当前状态:** ✅ 已实现(Python微服务)
|
||||
|
||||
---
|
||||
|
||||
#### 3. RAG引擎 ⭐⭐⭐⭐ **核心**
|
||||
|
||||
**鑱岃矗锛?*
|
||||
- 鍚戦噺鍖栧瓨鍌<EFBFBD>紙Embedding锛?
|
||||
- 璇<EFBFBD>箟妫€绱<EFBFBD>紙Semantic Search锛?
|
||||
- 妫€绱㈠<EFBFBD>寮虹敓鎴愶紙RAG锛?
|
||||
**职责:**
|
||||
- 向量化存储(Embedding)
|
||||
- 语义检索(Semantic Search)
|
||||
- 检索增强生成(RAG)
|
||||
|
||||
**浣跨敤妯″潡锛?*
|
||||
- 鉁?PKB锛堜釜浜虹煡璇嗗簱闂<EFBFBD>瓟锛?
|
||||
- 鉁?ASL锛堟枃鐚<EFBFBD>唴瀹规<EFBFBD>绱<EFBFBD>級
|
||||
- 鉁?AIA锛園鐭ヨ瘑搴撻棶绛旓級
|
||||
**使用模块:**
|
||||
- ✅ PKB(个人知识库问答)
|
||||
- ✅ ASL(文献内容检索)
|
||||
- ✅ AIA(@知识库问答)
|
||||
|
||||
**复用率:** 3/7 = 43%
|
||||
|
||||
**褰撳墠鐘舵€侊細** 鉁?宸插疄鐜帮紙鍩轰簬Dify锛?
|
||||
**当前状态:** ✅ 已实现(基于Dify)
|
||||
|
||||
---
|
||||
|
||||
#### 4. 鏁版嵁ETL寮曟搸 猸愨瓙猸?**涓<>瓑**
|
||||
#### 4. 数据ETL引擎 ⭐⭐⭐ **中等**
|
||||
|
||||
**鑱岃矗锛?*
|
||||
**职责:**
|
||||
- Excel多表JOIN
|
||||
- 数据清洗
|
||||
- 数据转换
|
||||
|
||||
**浣跨敤妯″潡锛?*
|
||||
- 鉁?DC锛堟暟鎹<E69A9F>竻娲楋級
|
||||
- 鉁?SSA锛堢粺璁″垎鏋愭暟鎹<EFBFBD><EFBFBD>澶勭悊锛?
|
||||
**使用模块:**
|
||||
- ✅ DC(数据清洗)
|
||||
- ✅ SSA(统计分析数据预处理)
|
||||
|
||||
**复用率:** 2/7 = 29%
|
||||
|
||||
**褰撳墠鐘舵€侊細** 鉂?鏈<>疄鐜帮紙P2浼樺厛绾э級
|
||||
**当前状态:** ❌ 未实现(P2优先级)
|
||||
|
||||
---
|
||||
|
||||
#### 5. 鍖诲<EFBFBD>NLP寮曟搸 猸愨瓙猸?**涓<>瓑**
|
||||
#### 5. 医学NLP引擎 ⭐⭐⭐ **中等**
|
||||
|
||||
**鑱岃矗锛?*
|
||||
- 鍖诲<EFBFBD>瀹炰綋璇嗗埆锛圢ER锛?
|
||||
- 鍖诲<EFBFBD>鏈<EFBFBD><EFBFBD>鏍囧噯鍖?
|
||||
**职责:**
|
||||
- 医学实体识别(NER)
|
||||
- 医学术语标准化
|
||||
|
||||
**浣跨敤妯″潡锛?*
|
||||
- 鉁?DC锛堢梾渚嬫暟鎹甆ER鎻愬彇锛?
|
||||
**使用模块:**
|
||||
- ✅ DC(病例数据NER提取)
|
||||
|
||||
**复用率:** 1/7 = 14%
|
||||
|
||||
**褰撳墠鐘舵€侊細** 鉂?鏈<>疄鐜帮紙P2浼樺厛绾э級
|
||||
**当前状态:** ❌ 未实现(P2优先级)
|
||||
|
||||
---
|
||||
|
||||
### 绗<EFBFBD>笁灞傦細涓氬姟妯″潡灞傦紙Product Layer锛?
|
||||
### 第三层:业务模块层(Product Layer)
|
||||
|
||||
**瀹氫箟锛?* 闈㈠悜鐢ㄦ埛鐨勪骇鍝佸姛鑳斤紝姣忎釜妯″潡閮芥槸鐙<E6A7B8>珛鐨勪骇鍝佸崟鍏?
|
||||
**定义:** 面向用户的产品功能,每个模块都是独立的产品单元
|
||||
|
||||
**7个业务模块:**
|
||||
|
||||
| 妯″潡 | 鍚嶇О | 鍟嗕笟浠峰€?| 鐙<>珛鎬?| 鐘舵€?|
|
||||
| 模块 | 名称 | 商业价值 | 独立性 | 状态 |
|
||||
|------|------|---------|-------|------|
|
||||
| **AIA** | AI鏅鸿兘闂<EFBFBD>瓟 | 猸愨瓙猸愨瓙 | 猸愨瓙猸?| 鉁?宸插畬鎴?|
|
||||
| **ASL** | AI鏅鸿兘鏂囩尞 | 猸愨瓙猸愨瓙猸?| 猸愨瓙猸愨瓙猸?| 鈴?涓嬩竴姝ラ噸鐐?|
|
||||
| **PKB** | 涓<EFBFBD>汉鐭ヨ瘑搴?| 猸愨瓙猸?| 猸愨瓙猸?| 鉁?宸插畬鎴?|
|
||||
| **DC** | 鏁版嵁娓呮礂鏁寸悊 | 猸愨瓙猸愨瓙猸?| 猸愨瓙猸愨瓙猸?| 鈴?瑙勫垝涓?|
|
||||
| **SSA** | 鏅鸿兘缁熻<EFBFBD>鍒嗘瀽 | 猸愨瓙猸愨瓙猸?| 猸愨瓙猸愨瓙 | 鈴?瑙勫垝涓?|
|
||||
| **ST** | 缁熻<EFBFBD>鍒嗘瀽宸ュ叿 | 猸愨瓙猸愨瓙 | 猸愨瓙猸愨瓙 | 鈴?瑙勫垝涓?|
|
||||
| **RVW** | 绋夸欢瀹℃煡绯荤粺 | 猸愨瓙猸愨瓙猸?| 猸愨瓙猸愨瓙猸?| 鈿?鐙<>珛绯荤粺 |
|
||||
| **AIA** | AI智能问答 | ⭐⭐⭐⭐ | ⭐⭐⭐ | ✅ 已完成 |
|
||||
| **ASL** | AI智能文献 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⏳ 下一步重点 |
|
||||
| **PKB** | 个人知识库 | ⭐⭐⭐ | ⭐⭐⭐ | ✅ 已完成 |
|
||||
| **DC** | 数据清洗整理 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⏳ 规划中 |
|
||||
| **SSA** | 智能统计分析 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⏳ 规划中 |
|
||||
| **ST** | 统计分析工具 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⏳ 规划中 |
|
||||
| **RVW** | 稿件审查系统 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⚡ 独立系统 |
|
||||
|
||||
**鐗瑰緛锛?*
|
||||
- 鉁?鐙<>珛閮ㄧ讲锛氬彲浠ュ崟鐙<E5B49F>墦鍖呴儴缃?
|
||||
- 鉁?鐙<>珛閿€鍞<E282AC>細鍙<E7B4B0>互鍗曠嫭鍞<E5ABAD>崠
|
||||
- 鉁?浣庤€﹀悎锛氭ā鍧楅棿涓嶇洿鎺ヤ緷璧?
|
||||
- 鉁?楂樺唴鑱氾細妯″潡鍐呭姛鑳藉畬鏁?
|
||||
**特征:**
|
||||
- ✅ 独立部署:可以单独打包部署
|
||||
- ✅ 独立销售:可以单独售卖
|
||||
- ✅ 低耦合:模块间不直接依赖
|
||||
- ✅ 高内聚:模块内功能完整
|
||||
|
||||
---
|
||||
|
||||
### 可复用能力总结
|
||||
|
||||
| 鑳藉姏 | 浣跨敤棰戠巼 | 澶嶇敤妯″潡鏁?| 浼樺厛绾?| 鐘舵€?|
|
||||
| 能力 | 使用频率 | 复用模块数 | 优先级 | 状态 |
|
||||
|------|---------|-----------|--------|------|
|
||||
| **LLM缃戝叧** | 71% | 5/7 | P0 | 鉂?寰呭疄鐜?|
|
||||
| **鏂囨。澶勭悊寮曟搸** | 86% | 6/7 | P0 | 鉁?宸插疄鐜?|
|
||||
| **RAG寮曟搸** | 43% | 3/7 | P1 | 鉁?宸插疄鐜?|
|
||||
| **ETL寮曟搸** | 29% | 2/7 | P2 | 鉂?寰呭疄鐜?|
|
||||
| **鍖诲<EFBFBD>NLP** | 14% | 1/7 | P2 | 鉂?寰呭疄鐜?|
|
||||
| **LLM网关** | 71% | 5/7 | P0 | ❌ 待实现 |
|
||||
| **文档处理引擎** | 86% | 6/7 | P0 | ✅ 已实现 |
|
||||
| **RAG引擎** | 43% | 3/7 | P1 | ✅ 已实现 |
|
||||
| **ETL引擎** | 29% | 2/7 | P2 | ❌ 待实现 |
|
||||
| **医学NLP** | 14% | 1/7 | P2 | ❌ 待实现 |
|
||||
|
||||
---
|
||||
|
||||
## 5锔忊儯 鏁版嵁搴撴灦鏋?
|
||||
## 5️⃣ 数据库架构
|
||||
|
||||
### 您的问题
|
||||
|
||||
> 璁捐<EFBFBD>澶歋chema鏋舵瀯鏄<EFBFBD>潪甯稿繀瑕佺殑銆?
|
||||
> 设计多Schema架构是非常必要的。
|
||||
> 目前当前系统的数据库似乎是DIFY的?
|
||||
> 鐩<EFBFBD>墠鎴戜滑鏈夎嚜宸辩嫭绔嬬殑鏁版嵁搴撳悧锛?
|
||||
> 目前我们有自己独立的数据库吗?
|
||||
|
||||
### 我的回复
|
||||
|
||||
鉁?**鎴戜滑鏈夎嚜宸辩嫭绔嬬殑PostgreSQL鏁版嵁搴擄紝涓嶆槸Dify鐨勶紒**
|
||||
✅ **我们有自己独立的PostgreSQL数据库,不是Dify的!**
|
||||
|
||||
**当前数据库情况:**
|
||||
|
||||
@@ -391,17 +391,17 @@ datasource db {
|
||||
**当前表结构:**
|
||||
```
|
||||
当前数据库(PostgreSQL,独立于Dify):
|
||||
鈹溾攢鈹€ users # 鐢ㄦ埛琛?
|
||||
鈹溾攢鈹€ projects # 椤圭洰琛?
|
||||
鈹溾攢鈹€ conversations # 瀵硅瘽琛<EFBFBD>紙AI闂<EFBFBD>瓟锛?
|
||||
鈹溾攢鈹€ messages # 娑堟伅琛?
|
||||
├── users # 用户表
|
||||
├── projects # 项目表
|
||||
├── conversations # 对话表(AI问答)
|
||||
├── messages # 消息表
|
||||
├── knowledge_bases # 知识库表
|
||||
鈹溾攢鈹€ documents # 鏂囨。琛?
|
||||
鈹溾攢鈹€ admin_logs # 绠$悊鍛樻棩蹇?
|
||||
├── documents # 文档表
|
||||
├── admin_logs # 管理员日志
|
||||
├── general_conversations # 通用对话
|
||||
├── general_messages # 通用消息
|
||||
鈹溾攢鈹€ batch_tasks # 鎵瑰<EFBFBD>鐞嗕换鍔★紙Phase 3锛?
|
||||
鈹溾攢鈹€ batch_results # 鎵瑰<EFBFBD>鐞嗙粨鏋?
|
||||
├── batch_tasks # 批处理任务(Phase 3)
|
||||
├── batch_results # 批处理结果
|
||||
├── task_templates # 任务模板
|
||||
└── review_tasks # 稿件审查任务
|
||||
|
||||
@@ -410,22 +410,22 @@ Dify数据库(完全独立):
|
||||
└── 通过Dify API调用,不直接访问
|
||||
```
|
||||
|
||||
**鍏抽敭婢勬竻锛?*
|
||||
- 鉁?鎴戜滑鏈夎嚜宸辩殑PostgreSQL鏁版嵁搴?
|
||||
- 鉁?Dify鏈夎嚜宸辩殑鏁版嵁搴擄紙鎴戜滑涓嶇洿鎺ヨ<EFBFBD>闂<EFBFBD>級
|
||||
- 鉁?鎴戜滑閫氳繃Dify API璋冪敤锛圚TTP REST API锛?
|
||||
- 鉁?涓や釜鏁版嵁搴撳畬鍏ㄧ嫭绔?
|
||||
**关键澄清:**
|
||||
- ✅ 我们有自己的PostgreSQL数据库
|
||||
- ✅ Dify有自己的数据库(我们不直接访问)
|
||||
- ✅ 我们通过Dify API调用(HTTP REST API)
|
||||
- ✅ 两个数据库完全独立
|
||||
|
||||
**但是存在的问题:**
|
||||
- 鉂?**鎵€鏈夎〃鍦ㄥ悓涓€Schema锛坧ublic锛?*
|
||||
- 鉂?鏈<>潵寰<E6BDB5>湇鍔℃媶鍒嗗洶闅?
|
||||
- 鉂?涓嶆敮鎸佹ā鍧楃嫭绔嬮儴缃?
|
||||
- ❌ **所有表在同一Schema(public)**
|
||||
- ❌ 未来微服务拆分困难
|
||||
- ❌ 不支持模块独立部署
|
||||
|
||||
---
|
||||
|
||||
### Schema隔离方案
|
||||
|
||||
**鐩<EFBFBD>爣鏋舵瀯锛?*
|
||||
**目标架构:**
|
||||
```sql
|
||||
-- 平台层Schema
|
||||
CREATE SCHEMA platform_schema;
|
||||
@@ -454,7 +454,7 @@ CREATE SCHEMA asl_schema; -- AI智能文献
|
||||
├── asl_screening_results
|
||||
└── ...
|
||||
|
||||
CREATE SCHEMA pkb_schema; -- 涓<EFBFBD>汉鐭ヨ瘑搴?
|
||||
CREATE SCHEMA pkb_schema; -- 个人知识库
|
||||
├── pkb_knowledge_bases
|
||||
└── pkb_documents
|
||||
|
||||
@@ -481,12 +481,12 @@ CREATE SCHEMA review_schema; -- 稿件审查
|
||||
|
||||
### 迁移策略
|
||||
|
||||
**闃舵<EFBFBD>涓€锛氶€昏緫闅旂<EFBFBD>锛堝綋鍓嶉樁娈碉紝绔嬪嵆瀹炴柦锛?*
|
||||
**阶段一:逻辑隔离(当前阶段,立即实施)**
|
||||
```
|
||||
目标:在代码层面按Schema组织,但数据库还是public
|
||||
方式:Prisma中使用@@map指定表名前缀
|
||||
|
||||
渚嬪<EFBFBD>锛?
|
||||
例如:
|
||||
model AiaProject {
|
||||
id String @id @default(uuid())
|
||||
// ...
|
||||
@@ -506,10 +506,10 @@ model DcProject {
|
||||
}
|
||||
```
|
||||
|
||||
**濂藉<EFBFBD>锛?*
|
||||
- 鉁?绔嬪嵆鍙<E5B586>疄鏂斤紝鏃犻渶鏁版嵁杩佺Щ
|
||||
- 鉁?涓烘湭鏉ョ墿鐞嗛殧绂绘墦鍩虹<E98DA9>
|
||||
- 鉁?浠g爜灞傞潰宸茬粡鎸夋ā鍧楃粍缁?
|
||||
**好处:**
|
||||
- ✅ 立即可实施,无需数据迁移
|
||||
- ✅ 为未来物理隔离打基础
|
||||
- ✅ 代码层面已经按模块组织
|
||||
|
||||
---
|
||||
|
||||
@@ -518,47 +518,47 @@ model DcProject {
|
||||
目标:真正创建独立Schema
|
||||
时机:当需要拆分某个模块为独立微服务时
|
||||
|
||||
姝ラ<EFBFBD>锛?
|
||||
步骤:
|
||||
1. CREATE SCHEMA xxx_schema;
|
||||
2. CREATE TABLE xxx_schema.table_name ...
|
||||
3. INSERT INTO xxx_schema.table SELECT * FROM public.old_table;
|
||||
4. 鏇存柊Prisma Schema锛堟寚瀹歴chema锛?
|
||||
4. 更新Prisma Schema(指定schema)
|
||||
5. 测试验证
|
||||
6. 切换生产
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6锔忊儯 涓嬩竴姝ュ紑鍙戦噸鐐?
|
||||
## 6️⃣ 下一步开发重点
|
||||
|
||||
### 您的决策
|
||||
|
||||
> 涓嬩竴姝ョ潃閲嶅紑鍙戠殑鍔熻兘鑲<EFBFBD>畾鏄疉I鏅鸿兘鏂囩尞妯″潡銆?
|
||||
> 褰撶劧鍦ㄦ€讳綋鏋舵瀯璁ㄨ<EFBFBD>娓呮<EFBFBD>鍓嶏紝鎴戜滑鍏堜笉寮€鍙戙€?
|
||||
> 下一步着重开发的功能肯定是AI智能文献模块。
|
||||
> 当然在总体架构讨论清楚前,我们先不开发。
|
||||
|
||||
### 我的回复
|
||||
|
||||
鉁?**瀹屽叏璧炲悓锛丄I鏅鸿兘鏂囩尞鏄<E5B09E>牳蹇冪珵浜夊姏锛屽簲璇ユ槸涓嬩竴姝ラ噸鐐广€?*
|
||||
✅ **完全赞同!AI智能文献是核心竞争力,应该是下一步重点。**
|
||||
|
||||
**开发顺序建议:**
|
||||
|
||||
**第一步:架构设计(本周,1-2天)**
|
||||
```
|
||||
P0鏂囨。锛堝繀椤诲畬鎴愶級锛?
|
||||
1. 鉁?绯荤粺鏋舵瀯鍒嗗眰璁捐<E79281>锛堝凡瀹屾垚锛?
|
||||
2. 鉁?鏂囨。浣撶郴閲嶆瀯鏂规<E98F82>锛堝凡瀹屾垚锛?
|
||||
3. 鈿狅笍 LLM澶фā鍨嬬綉鍏宠<EFBFBD>璁★紙鍏抽敭锛?
|
||||
P0文档(必须完成):
|
||||
1. ✅ 系统架构分层设计(已完成)
|
||||
2. ✅ 文档体系重构方案(已完成)
|
||||
3. ⚠️ LLM大模型网关设计(关键)
|
||||
4. ⚠️ 数据库Schema隔离方案(关键)
|
||||
```
|
||||
|
||||
**第二步:文档整理(本周,1-2天)**
|
||||
```
|
||||
1. 调整ASL模块文档结构(按新模板)
|
||||
2. 琛ュ厖缂哄け鐨勮<EFBFBD>璁℃枃妗?
|
||||
2. 补充缺失的设计文档
|
||||
3. 明确开发里程碑
|
||||
```
|
||||
|
||||
**绗<EFBFBD>笁姝ワ細鍏抽敭鎶€鏈<EFBFBD>獙璇侊紙涓嬪懆锛?-2澶╋級**
|
||||
**第三步:关键技术验证(下周,1-2天)**
|
||||
```
|
||||
1. ⚠️ R语言技术验证(SSA模块需要,可延后)
|
||||
2. ⚠️ LLM Gateway原型验证
|
||||
@@ -580,65 +580,65 @@ P0文档(必须完成)
|
||||
|
||||
### 核心原则
|
||||
|
||||
**1. 鏋舵瀯鍏堣<EFBFBD>锛屾枃妗e厛琛?*
|
||||
**1. 架构先行,文档先行**
|
||||
```
|
||||
鉁?鍏堟妸鎬讳綋鏋舵瀯璁ㄨ<E79281>娓呮<E5A893>
|
||||
鉁?鍏堟妸鏂囨。缁撴瀯璋冩暣濂?
|
||||
鉁?鐒跺悗鍐嶅紑濮嬪紑鍙?
|
||||
✅ 先把总体架构讨论清楚
|
||||
✅ 先把文档结构调整好
|
||||
✅ 然后再开始开发
|
||||
```
|
||||
|
||||
**2. 聚焦核心,逐步扩展**
|
||||
```
|
||||
闃舵<EFBFBD>涓€锛堝綋鍓?6涓<36>湀锛夛細
|
||||
- 浜戠<EFBFBD>SaaS鐗?
|
||||
阶段一(当前-6个月):
|
||||
- 云端SaaS版
|
||||
- 核心模块:ASL、DC、AIA优化
|
||||
- 关键能力:LLM网关、Schema隔离
|
||||
|
||||
阶段二(6-18个月):
|
||||
- 绉佹湁鍖栭儴缃?
|
||||
- 私有化部署
|
||||
- 扩展模块:SSA、ST
|
||||
- 独立系统:RVW(审稿系统)
|
||||
|
||||
阶段三(18个月+):
|
||||
- 单机版(可选)
|
||||
- 鍏ㄩ潰寰<EFBFBD>湇鍔?
|
||||
- 全面微服务
|
||||
```
|
||||
|
||||
**3. 妯″潡鐙<EFBFBD>珛锛岃兘鍔涘<EFBFBD>鐢?*
|
||||
**3. 模块独立,能力复用**
|
||||
```
|
||||
鉁?涓氬姟妯″潡鐙<E6BDA1>珛璁捐<E79281>锛堜綆鑰﹀悎锛?
|
||||
鉁?閫氱敤鑳藉姏缁熶竴鎻愪緵锛堥珮澶嶇敤锛?
|
||||
鉁?鏀<>寔妯″潡鐙<E6BDA1>珛閿€鍞?
|
||||
✅ 业务模块独立设计(低耦合)
|
||||
✅ 通用能力统一提供(高复用)
|
||||
✅ 支持模块独立销售
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 鉁?绔嬪嵆琛屽姩娓呭崟
|
||||
## ✅ 立即行动清单
|
||||
|
||||
### 鏈<EFBFBD>懆琛屽姩锛圥0锛?
|
||||
### 本周行动(P0)
|
||||
|
||||
**1. 鏋舵瀯璁捐<EFBFBD>锛?-2澶╋級**
|
||||
- [x] 绯荤粺鏋舵瀯鍒嗗眰璁捐<EFBFBD> 鉁?
|
||||
- [x] 鏂囨。浣撶郴閲嶆瀯鏂规<EFBFBD> 鉁?
|
||||
- [ ] LLM澶фā鍨嬬綉鍏宠<EFBFBD>璁?
|
||||
**1. 架构设计(1-2天)**
|
||||
- [x] 系统架构分层设计 ✅
|
||||
- [x] 文档体系重构方案 ✅
|
||||
- [ ] LLM大模型网关设计
|
||||
- [ ] 数据库Schema隔离方案
|
||||
|
||||
**2. 鏂囨。杩佺Щ锛?-2澶╋級**
|
||||
**2. 文档迁移(1-2天)**
|
||||
- [ ] 创建新文件夹结构
|
||||
- [ ] 迁移ASL模块文档
|
||||
- [ ] 调整文档结构(按新模板)
|
||||
|
||||
---
|
||||
|
||||
### 涓嬪懆琛屽姩锛圥1锛?
|
||||
### 下周行动(P1)
|
||||
|
||||
**3. 鍏抽敭鏂囨。琛ュ厖锛?-3澶╋級**
|
||||
**3. 关键文档补充(2-3天)**
|
||||
- [ ] ASL模块缺失文档
|
||||
- [ ] LLM网关详细设计
|
||||
- [ ] RVW独立系统规划
|
||||
|
||||
**4. 寮€濮婣SL妯″潡寮€鍙戯紙鍚<EFBFBD>姩锛?*
|
||||
- [ ] 鏁版嵁搴撹〃璁捐<EFBFBD>锛坅sl_schema锛?
|
||||
**4. 开始ASL模块开发(启动)**
|
||||
- [ ] 数据库表设计(asl_schema)
|
||||
- [ ] API设计
|
||||
- [ ] 前端组件设计
|
||||
|
||||
@@ -646,41 +646,41 @@ P0文档(必须完成)
|
||||
|
||||
## 📊 总结
|
||||
|
||||
### 鎮ㄧ殑鎯虫硶闈炲父姝g‘锛?
|
||||
### 您的想法非常正确!
|
||||
|
||||
1. 鉁?**鏂囨。绯荤粺閲嶆瀯**锛氭€讳綋鐙<E7B68B>珛锛屾ā鍧楃嫭绔?
|
||||
2. 鉁?**涓嶈€冭檻娣峰悎閮ㄧ讲**锛氱畝鍖栨妧鏈<E5A6A7><E98F88>鏉傚害
|
||||
3. 鉁?**瀹$ǹ绯荤粺鐙<E7B2BA>珛**锛氭瀬鍏峰晢涓氫环鍊?
|
||||
4. 鉁?**鏋舵瀯鍒嗗眰娓呮櫚**锛氬钩鍙板眰銆侀€氱敤鑳藉姏灞傘€佷笟鍔℃ā鍧楀眰
|
||||
5. 鉁?**Schema闅旂<EFBFBD>蹇呰<EFBFBD>**锛氭敮鎸佹ā鍧楃嫭绔嬪拰寰<E68BB0>湇鍔℃媶鍒?
|
||||
6. 鉁?**ASL鏄<EFBFBD>笅涓€姝ラ噸鐐?*锛氭牳蹇冪珵浜夊姏
|
||||
1. ✅ **文档系统重构**:总体独立,模块独立
|
||||
2. ✅ **不考虑混合部署**:简化技术复杂度
|
||||
3. ✅ **审稿系统独立**:极具商业价值
|
||||
4. ✅ **架构分层清晰**:平台层、通用能力层、业务模块层
|
||||
5. ✅ **Schema隔离必要**:支持模块独立和微服务拆分
|
||||
6. ✅ **ASL是下一步重点**:核心竞争力
|
||||
|
||||
### 褰撳墠鏈€鍏抽敭鐨勫伐浣?
|
||||
### 当前最关键的工作
|
||||
|
||||
**P0锛堟湰鍛<EFBFBD>級锛?*
|
||||
1. 瀹屾垚鏋舵瀯璁捐<EFBFBD>鏂囨。锛圠LM缃戝叧銆丼chema闅旂<EFBFBD>锛?
|
||||
2. 璋冩暣鏂囨。缁撴瀯锛堣縼绉籄SL妯″潡锛?
|
||||
**P0(本周):**
|
||||
1. 完成架构设计文档(LLM网关、Schema隔离)
|
||||
2. 调整文档结构(迁移ASL模块)
|
||||
|
||||
**P1锛堜笅鍛<EFBFBD>級锛?*
|
||||
**P1(下周):**
|
||||
3. 补充关键文档
|
||||
4. 寮€濮婣SL妯″潡寮€鍙?
|
||||
4. 开始ASL模块开发
|
||||
|
||||
### 鎴戜滑涓嶇潃鎬ワ紝鍏堟妸鎬讳綋鎬濊矾娌熼€氭竻妤?
|
||||
### 我们不着急,先把总体思路沟通清楚
|
||||
|
||||
鉁?**瀹屽叏璁ゅ悓鎮ㄧ殑鎯虫硶锛?*
|
||||
✅ **完全认同您的想法!**
|
||||
|
||||
鏋舵瀯璁捐<EFBFBD>鏄<EFBFBD>湴鍩猴紝鍦板熀涓嶇墷锛屽悗闈㈠紑鍙戜細寰堢棝鑻︺€?
|
||||
架构设计是地基,地基不牢,后面开发会很痛苦。
|
||||
|
||||
鎴戜滑鍏堟妸鏋舵瀯鍜屾枃妗f⒊鐞嗘竻妤氾紝鍐嶅紑濮嬪紑鍙戙€?
|
||||
我们先把架构和文档梳理清楚,再开始开发。
|
||||
|
||||
---
|
||||
|
||||
**接下来您想讨论什么?**
|
||||
1. LLM澶фā鍨嬬綉鍏崇殑璇︾粏璁捐<EFBFBD>锛?
|
||||
1. LLM大模型网关的详细设计?
|
||||
2. 数据库Schema隔离的具体实施?
|
||||
3. ASL模块的开发计划?
|
||||
4. 审稿系统的独立规划?
|
||||
5. 鍏朵粬鏋舵瀯闂<EFBFBD><EFBFBD>锛?
|
||||
5. 其他架构问题?
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
# AIclinicalresearch 系统当前状态与开发指南
|
||||
|
||||
> **文档版本:** v3.4
|
||||
> **文档版本:** v3.5
|
||||
> **创建日期:** 2025-11-28
|
||||
> **维护者:** 开发团队
|
||||
> **最后更新:** 2026-01-14
|
||||
> **重大进展:** 🏆 **通用能力层重大升级!AIA V2.0发布!**
|
||||
> - 🆕 StreamingService(OpenAI Compatible)
|
||||
> - 🆕 Chat组件V2(Ant Design X深度集成)
|
||||
> - 🎨 AIA模块全新UI(100%还原原型图)
|
||||
> - ✨ 12个智能体配置完成
|
||||
> **最后更新:** 2026-01-16
|
||||
> **重大进展:** 🎉 **运营管理端用户管理完成!模块权限系统架构升级!**
|
||||
> - 🆕 用户管理功能(CRUD + 租户管理 + 模块权限配置)
|
||||
> - 🏆 模块权限系统改造(版本系统 → 模块代码系统)
|
||||
> - ✅ user_modules 表(精细化权限控制)
|
||||
> - ✅ 登录API返回模块列表,前端导航智能过滤
|
||||
> **部署状态:** ✅ 生产环境运行中 | 公网地址:http://8.140.53.236/
|
||||
> **文档目的:** 快速了解系统当前状态,为新AI助手提供上下文
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
| **SSA** | 智能统计分析 | 队列/预测模型/RCT分析 | ⭐⭐⭐⭐⭐ | 📋 规划中 | P2 |
|
||||
| **ST** | 统计分析工具 | 100+轻量化统计工具 | ⭐⭐⭐⭐ | 📋 规划中 | P2 |
|
||||
| **RVW** | 稿件审查系统 | 方法学评估、审稿流程、Word导出 | ⭐⭐⭐⭐ | ✅ **开发完成(95%)** | P3 |
|
||||
| **ADMIN** | 运营管理端 | Prompt管理、租户管理、用户管理 | ⭐⭐⭐⭐⭐ | 🚧 **Prompt管理83%完成** | **P0** |
|
||||
| **ADMIN** | 运营管理端 | Prompt管理、租户管理、用户管理 | ⭐⭐⭐⭐⭐ | 🎉 **Phase 4.1完成(75%)** - 用户管理+模块权限系统 | **P0** |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -1,157 +1,157 @@
|
||||
# 系统总体设计 - 阅读指南
|
||||
|
||||
> **鏂囨。鏃ユ湡锛?* 2025-11-06
|
||||
> **鏂囨。鐩<EFBFBD>殑锛?* 蹇<>€熷<E282AC>鑸<EFBFBD>紝鎵惧埌鎮ㄩ渶瑕佺殑鏂囨。
|
||||
> **文档日期:** 2025-11-06
|
||||
> **文档目的:** 快速导航,找到您需要的文档
|
||||
|
||||
---
|
||||
|
||||
## 🎯 如果您想...
|
||||
|
||||
### 快速了解今天的成果
|
||||
馃憠 **蹇呰<E8B987>锛?* [00-浠婃棩鏋舵瀯璁捐<E79281>鎬荤粨](./00-浠婃棩鏋舵瀯璁捐<E79281>鎬荤粨.md)
|
||||
👉 **必读:** [00-今日架构设计总结](./00-今日架构设计总结.md)
|
||||
- 7个核心文档总览
|
||||
- 关键决策总结
|
||||
- 涓嬩竴姝ュ缓璁?
|
||||
- 下一步建议
|
||||
|
||||
---
|
||||
|
||||
### 了解整个系统架构
|
||||
馃憠 **蹇呰<E8B987>锛?* [08-鏋舵瀯璁捐<E79281>鍏ㄦ櫙鍥綸(./08-鏋舵瀯璁捐<E79281>鍏ㄦ櫙鍥?md)
|
||||
- 涓€鍥剧湅鎳傚畬鏁存灦鏋?
|
||||
👉 **必读:** [08-架构设计全景图](./08-架构设计全景图.md)
|
||||
- 一图看懂完整架构
|
||||
- 四种部署模式
|
||||
- 代码组织结构
|
||||
|
||||
馃憠 **璇︾粏浜嗚В锛?* [01-绯荤粺鏋舵瀯鍒嗗眰璁捐<EFBFBD>](./01-绯荤粺鏋舵瀯鍒嗗眰璁捐<E79281>.md)
|
||||
👉 **详细了解:** [01-系统架构分层设计](./01-系统架构分层设计.md)
|
||||
- 三层架构详细设计
|
||||
- 8涓<EFBFBD>笟鍔℃ā鍧?
|
||||
- 8个业务模块
|
||||
- 5个通用能力
|
||||
- 依赖关系分析
|
||||
|
||||
---
|
||||
|
||||
### 鍋氬嚭涓嬩竴姝ヨ<EFBFBD>鍔ㄥ喅绛?
|
||||
馃憠 **蹇呰<E8B987>锛?* [99-涓嬩竴姝ヨ<E5A79D>鍔ㄥ喅绛栧缓璁甝(./99-涓嬩竴姝ヨ<E5A79D>鍔ㄥ喅绛栧缓璁?md)
|
||||
- 3涓<33>柟妗堝<E5A697>姣旓紙绔嬪嵆寮€鍙?vs 鍏堟敼閫?vs 鎶樹腑锛?
|
||||
### 做出下一步行动决策
|
||||
👉 **必读:** [99-下一步行动决策建议](./99-下一步行动决策建议.md)
|
||||
- 3个方案对比(立即开发 vs 先改造 vs 折中)
|
||||
- 成本收益分析
|
||||
- 明确的建议和实施计划
|
||||
|
||||
---
|
||||
|
||||
### 浜嗚В鏁版嵁搴撴灦鏋?
|
||||
馃憠 **鍏堢湅锛?* [03-鏁版嵁搴撴灦鏋勮<EFBFBD>鏄嶿(./03-鏁版嵁搴撴灦鏋勮<E98F8B>鏄?md)
|
||||
- PostgreSQL鏄疍ocker閮ㄧ讲鐨?
|
||||
### 了解数据库架构
|
||||
👉 **先看:** [03-数据库架构说明](./03-数据库架构说明.md)
|
||||
- PostgreSQL是Docker部署的
|
||||
- 您有自己独立的数据库
|
||||
- 与Dify数据库的关系
|
||||
|
||||
馃憠 **娣卞叆浜嗚В锛?* [05-Schema闅旂<EFBFBD>鏂规<EFBFBD>涓庢垚鏈<EFBFBD>垎鏋怾(./05-Schema闅旂<E99785>鏂规<E98F82>涓庢垚鏈<E59E9A>垎鏋?md)
|
||||
👉 **深入了解:** [05-Schema隔离方案与成本分析](./05-Schema隔离方案与成本分析.md)
|
||||
- 逻辑隔离 vs 物理隔离
|
||||
- 鏀归€犳垚鏈<E59E9A><E98F88>姣旓紙鐜板湪1鍛?vs 鏈<>潵3-5鍛<35>級
|
||||
- 改造成本对比(现在1周 vs 未来3-5周)
|
||||
- 实施方案
|
||||
|
||||
---
|
||||
|
||||
### 了解如何模块独立部署
|
||||
馃憠 **蹇呰<E8B987>锛?* [06-妯″潡鐙<EFBFBD>珛閮ㄧ讲涓庡崟鏈虹増鏂规<EFBFBD>](./06-妯″潡鐙<E6BDA1>珛閮ㄧ讲涓庡崟鏈虹増鏂规<E98F82>.md)
|
||||
👉 **必读:** [06-模块独立部署与单机版方案](./06-模块独立部署与单机版方案.md)
|
||||
- 完整打包方案(独立产品)
|
||||
- 鍏变韩鏈嶅姟鏂规<EFBFBD>锛堝钩鍙板唴妯″潡锛?
|
||||
- Electron鍗曟満鐗堟灦鏋?
|
||||
- 浠g爜澶嶇敤鐜囧垎鏋愶紙85%+锛?
|
||||
- 共享服务方案(平台内模块)
|
||||
- Electron单机版架构
|
||||
- 代码复用率分析(85%+)
|
||||
|
||||
---
|
||||
|
||||
### 浜嗚В杩愯惀绠$悊绔?
|
||||
馃憠 **蹇呰<E8B987>锛?* [04-杩愯惀绠$悊绔<E6828A>灦鏋勮<E98F8B>璁<EFBFBD>(./04-杩愯惀绠$悊绔<E6828A>灦鏋勮<E98F8B>璁?md)
|
||||
- 15涓<35>姛鑳芥ā鍧?
|
||||
### 了解运营管理端
|
||||
👉 **必读:** [04-运营管理端架构设计](./04-运营管理端架构设计.md)
|
||||
- 15个功能模块
|
||||
- 3阶段实施计划
|
||||
- 瀵圭郴缁熺殑6澶у奖鍝?
|
||||
- 对系统的6大影响
|
||||
|
||||
---
|
||||
|
||||
### 了解是否需要Monorepo
|
||||
馃憠 **蹇呰<E8B987>锛?* [07-Monorepo鏋舵瀯璇勪及](./07-Monorepo鏋舵瀯璇勪及.md)
|
||||
- 褰撳墠闃舵<EFBFBD>闇€瑕佸悧锛?
|
||||
- 鎴愭湰瀵规瘮锛堢幇鍦?-3澶?vs 鏈<>潵7-11澶╋級
|
||||
👉 **必读:** [07-Monorepo架构评估](./07-Monorepo架构评估.md)
|
||||
- 当前阶段需要吗?
|
||||
- 成本对比(现在2-3天 vs 未来7-11天)
|
||||
- 实施方案
|
||||
|
||||
---
|
||||
|
||||
### 了解文档体系如何重构
|
||||
馃憠 **蹇呰<E8B987>锛?* [02-鏂囨。浣撶郴閲嶆瀯鏂规<E98F82>v2.0](./02-鏂囨。浣撶郴閲嶆瀯鏂规<EFBFBD>.md)
|
||||
- 鏂版枃妗g粨鏋勮<EFBFBD>璁?
|
||||
👉 **必读:** [02-文档体系重构方案v2.0](./02-文档体系重构方案.md)
|
||||
- 新文档结构设计
|
||||
- 8个模块的标准文档模板
|
||||
- 迁移计划
|
||||
|
||||
---
|
||||
|
||||
### 了解所有架构问题的答案
|
||||
馃憠 **蹇呰<E8B987>锛?* [00-鏍稿績闂<E7B8BE><E99782>瑙g瓟](./00-鏍稿績闂<E7B8BE><E99782>瑙g瓟.md)
|
||||
- 閮ㄧ讲妯″紡璋冩暣锛?绉嶏紝涓嶈€冭檻娣峰悎閮ㄧ讲锛?
|
||||
- 瀹$ǹ绯荤粺鐙<EFBFBD>珛鎬у垎鏋?
|
||||
- 鏁版嵁搴撴灦鏋勬緞娓?
|
||||
👉 **必读:** [00-核心问题解答](./00-核心问题解答.md)
|
||||
- 部署模式调整(3种,不考虑混合部署)
|
||||
- 审稿系统独立性分析
|
||||
- 数据库架构澄清
|
||||
|
||||
---
|
||||
|
||||
## 📊 文档阅读顺序建议
|
||||
|
||||
### 璺<EFBFBD>緞1锛氬揩閫熶簡瑙o紙20鍒嗛挓锛?
|
||||
### 路径1:快速了解(20分钟)
|
||||
|
||||
1. [00-今日架构设计总结](./00-今日架构设计总结.md) - 5分钟
|
||||
2. [08-鏋舵瀯璁捐<EFBFBD>鍏ㄦ櫙鍥綸(./08-鏋舵瀯璁捐<E79281>鍏ㄦ櫙鍥?md) - 10鍒嗛挓
|
||||
3. [99-涓嬩竴姝ヨ<EFBFBD>鍔ㄥ喅绛栧缓璁甝(./99-涓嬩竴姝ヨ<E5A79D>鍔ㄥ喅绛栧缓璁?md) - 5鍒嗛挓
|
||||
2. [08-架构设计全景图](./08-架构设计全景图.md) - 10分钟
|
||||
3. [99-下一步行动决策建议](./99-下一步行动决策建议.md) - 5分钟
|
||||
|
||||
---
|
||||
|
||||
### 璺<EFBFBD>緞2锛氬叏闈㈢悊瑙o紙1-2灏忔椂锛?
|
||||
### 路径2:全面理解(1-2小时)
|
||||
|
||||
1. [00-今日架构设计总结](./00-今日架构设计总结.md) - 10分钟
|
||||
2. [01-系统架构分层设计](./01-系统架构分层设计.md) - 30分钟
|
||||
3. [05-Schema闅旂<EFBFBD>鏂规<EFBFBD>涓庢垚鏈<EFBFBD>垎鏋怾(./05-Schema闅旂<E99785>鏂规<E98F82>涓庢垚鏈<E59E9A>垎鏋?md) - 20鍒嗛挓
|
||||
3. [05-Schema隔离方案与成本分析](./05-Schema隔离方案与成本分析.md) - 20分钟
|
||||
4. [07-Monorepo架构评估](./07-Monorepo架构评估.md) - 15分钟
|
||||
5. [99-涓嬩竴姝ヨ<EFBFBD>鍔ㄥ喅绛栧缓璁甝(./99-涓嬩竴姝ヨ<E5A79D>鍔ㄥ喅绛栧缓璁?md) - 10鍒嗛挓
|
||||
5. [99-下一步行动决策建议](./99-下一步行动决策建议.md) - 10分钟
|
||||
|
||||
---
|
||||
|
||||
### 璺<EFBFBD>緞3锛氭繁鍏ョ爺绌讹紙3-4灏忔椂锛?
|
||||
### 路径3:深入研究(3-4小时)
|
||||
|
||||
鎸夐『搴忛槄璇绘墍鏈?0涓<30>枃妗?
|
||||
按顺序阅读所有10个文档
|
||||
|
||||
---
|
||||
|
||||
## 🎯 关键结论速查
|
||||
|
||||
### Schema隔离
|
||||
- **寤鸿<EFBFBD>锛?* 鐜板湪鍋?猸愨瓙猸愨瓙猸?
|
||||
- **鎴愭湰锛?* 1鍛?vs 鏈<EFBFBD>潵3-5鍛?
|
||||
- **ROI锛?* 300-500%
|
||||
- **建议:** 现在做 ⭐⭐⭐⭐⭐
|
||||
- **成本:** 1周 vs 未来3-5周
|
||||
- **ROI:** 300-500%
|
||||
|
||||
### Monorepo
|
||||
- **寤鸿<EFBFBD>锛?* 鐜板湪杞<E6B9AA>崲 猸愨瓙猸愨瓙猸?
|
||||
- **鎴愭湰锛?* 2-3澶?vs 鏈<EFBFBD>潵7-11澶?
|
||||
- **ROI锛?* 300-400%
|
||||
- **瑙﹀彂鏉′欢锛?* 杩戞湡寮€鍙戣繍钀ョ<E99280>鐞嗙<E9909E>锛屽繀椤昏浆鎹?
|
||||
- **建议:** 现在转换 ⭐⭐⭐⭐⭐
|
||||
- **成本:** 2-3天 vs 未来7-11天
|
||||
- **ROI:** 300-400%
|
||||
- **触发条件:** 近期开发运营管理端,必须转换
|
||||
|
||||
### 涓嬩竴姝ヨ<EFBFBD>鍔?
|
||||
- **鏂规<EFBFBD>A锛?* 绔嬪嵆寮€鍙慉SL锛堢疮绉<E796AE>妧鏈<E5A6A7>€猴級
|
||||
- **鏂规<EFBFBD>B锛?* 鍏堟敼閫犳灦鏋勶紝鍐嶅紑鍙慉SL锛堝己鐑堟帹鑽愶級猸愨瓙猸愨瓙猸?
|
||||
- **鏂规<EFBFBD>C锛?* 鍙<>仛Monorepo锛屽欢鍚嶴chema闅旂<EFBFBD>
|
||||
### 下一步行动
|
||||
- **方案A:** 立即开发ASL(累积技术债)
|
||||
- **方案B:** 先改造架构,再开发ASL(强烈推荐)⭐⭐⭐⭐⭐
|
||||
- **方案C:** 只做Monorepo,延后Schema隔离
|
||||
|
||||
---
|
||||
|
||||
## 📝 今日成果
|
||||
|
||||
**完成的文档:**
|
||||
1. 鉁?00-鏍稿績闂<EFBFBD><EFBFBD>瑙g瓟.md
|
||||
2. 鉁?01-绯荤粺鏋舵瀯鍒嗗眰璁捐<EFBFBD>.md锛?00+琛岋級
|
||||
3. 鉁?02-鏂囨。浣撶郴閲嶆瀯鏂规<EFBFBD>v2.0.md锛?90+琛岋級
|
||||
4. 鉁?03-鏁版嵁搴撴灦鏋勮<EFBFBD>鏄?md锛?34+琛岋級
|
||||
5. 鉁?04-杩愯惀绠$悊绔<EFBFBD>灦鏋勮<EFBFBD>璁?md锛?59+琛岋級
|
||||
6. 鉁?05-Schema闅旂<EFBFBD>鏂规<EFBFBD>涓庢垚鏈<EFBFBD>垎鏋?md锛?042+琛岋級
|
||||
7. 鉁?06-妯″潡鐙<EFBFBD>珛閮ㄧ讲涓庡崟鏈虹増鏂规<EFBFBD>.md锛?541+琛岋級
|
||||
8. 鉁?07-Monorepo鏋舵瀯璇勪及.md锛?55+琛岋級
|
||||
9. 鉁?08-鏋舵瀯璁捐<EFBFBD>鍏ㄦ櫙鍥?md
|
||||
10. 鉁?99-涓嬩竴姝ヨ<EFBFBD>鍔ㄥ喅绛栧缓璁?md
|
||||
1. ✅ 00-核心问题解答.md
|
||||
2. ✅ 01-系统架构分层设计.md(900+行)
|
||||
3. ✅ 02-文档体系重构方案v2.0.md(790+行)
|
||||
4. ✅ 03-数据库架构说明.md(434+行)
|
||||
5. ✅ 04-运营管理端架构设计.md(859+行)
|
||||
6. ✅ 05-Schema隔离方案与成本分析.md(1042+行)
|
||||
7. ✅ 06-模块独立部署与单机版方案.md(1541+行)
|
||||
8. ✅ 07-Monorepo架构评估.md(555+行)
|
||||
9. ✅ 08-架构设计全景图.md
|
||||
10. ✅ 99-下一步行动决策建议.md
|
||||
|
||||
**鎬昏<EFBFBD>锛?* 6000+琛岃<E7909B>缁嗚<E7BC81>璁?
|
||||
**总计:** 6000+行详细设计
|
||||
|
||||
---
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,19 +1,19 @@
|
||||
# <EFBFBD>唳旿摨𤘪沲<EFBFBD><EFBFBD>秩<EFBFBD>?
|
||||
# 数据库架构说明
|
||||
|
||||
> **<EFBFBD>𥕦遣<EFBFBD>交<EFBFBD>嚗?* 2025-11-06
|
||||
> **<EFBFBD><EFBFBD>﹝<EFBFBD>桃<EFBFBD>嚗?* 瞉<><E79E89><EFBFBD>唳旿摨㯄<E691A8>蝵脫䲮撘誩<E69298><E8AAA9>嗆<EFBFBD>
|
||||
> **创建日期:** 2025-11-06
|
||||
> **文档目的:** 澄清数据库部署方式和架构
|
||||
|
||||
---
|
||||
|
||||
## 📋 核心澄清
|
||||
|
||||
### <EFBFBD>?<3F>冽<EFBFBD><E586BD>芸楛<E88AB8>祉<EFBFBD><E7A589><EFBFBD>ostgreSQL<EFBFBD>唳旿摨橒<EFBFBD>
|
||||
### ✅ 您有自己独立的PostgreSQL数据库!
|
||||
|
||||
**<EFBFBD>喲睸鈭见<EFBFBD>嚗?*
|
||||
1. <EFBFBD>?PostgreSQL<EFBFBD>舫<EFBFBD>朞<EFBFBD>Docker<EFBFBD>函蔡<EFBFBD><EFBFBD><EFBFBD>`docker-compose.yml`嚗?
|
||||
2. <EFBFBD>?餈蹱糓<E8B9B1>券★<E588B8>桃<EFBFBD><E6A183>祉<EFBFBD><E7A589>唳旿摨橒<E691A8>銝齿糓Dify<EFBFBD>?
|
||||
3. <EFBFBD>?Dify<EFBFBD>㕑䌊撌勗<EFBFBD><EFBFBD>函𡠺蝡讠<EFBFBD><EFBFBD>唳旿摨橒<EFBFBD><EFBFBD>灼dify/docker/`<EFBFBD>桀<EFBFBD>銝页<EFBFBD>
|
||||
4. <EFBFBD>?<3F>其<EFBFBD><E585B6><EFBFBD>閬<EFBFBD><E996AC><EFBFBD>典<EFBFBD>鋆<EFBFBD>ostgreSQL嚗㷉ocker隡朞䌊<EFBFBD>典<EFBFBD>撱?
|
||||
**关键事实:**
|
||||
1. ✅ PostgreSQL是通过Docker部署的(`docker-compose.yml`)
|
||||
2. ✅ 这是您项目的独立数据库,不是Dify的
|
||||
3. ✅ Dify有自己完全独立的数据库(在`dify/docker/`目录下)
|
||||
4. ✅ 您不需要手动安装PostgreSQL,Docker会自动创建
|
||||
|
||||
---
|
||||
|
||||
@@ -25,18 +25,18 @@
|
||||
# 位置:AIclinicalresearch/docker-compose.yml
|
||||
|
||||
services:
|
||||
# PostgreSQL <EFBFBD>唳旿摨?
|
||||
# PostgreSQL 数据库
|
||||
postgres:
|
||||
image: postgres:15-alpine # 使用官方PostgreSQL镜像
|
||||
container_name: ai-clinical-postgres
|
||||
environment:
|
||||
POSTGRES_DB: ai_clinical_research # 数据库名
|
||||
POSTGRES_USER: postgres # <EFBFBD>冽<EFBFBD><EFBFBD>?
|
||||
POSTGRES_USER: postgres # 用户名
|
||||
POSTGRES_PASSWORD: postgres123 # 密码
|
||||
ports:
|
||||
- "5432:5432" # 端口映射
|
||||
volumes:
|
||||
- postgres_data:/var/lib/postgresql/data # <EFBFBD>唳旿<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
|
||||
- postgres_data:/var/lib/postgresql/data # 数据持久化
|
||||
networks:
|
||||
- ai-clinical-network
|
||||
healthcheck:
|
||||
@@ -58,14 +58,14 @@ services:
|
||||
|
||||
volumes:
|
||||
postgres_data: # PostgreSQL数据卷(数据持久化存储)
|
||||
redis_data: # Redis<EFBFBD>唳旿<EFBFBD>?
|
||||
redis_data: # Redis数据卷
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚀 启动流程
|
||||
|
||||
### 銝<EFBFBD><EFBFBD>桀鍳<EFBFBD>刻<EFBFBD><EFBFBD>穿<EFBFBD>銝<EFBFBD><EFBFBD>桀鍳<EFBFBD>?bat嚗?
|
||||
### 一键启动脚本(一键启动.bat)
|
||||
|
||||
```batch
|
||||
[步骤2/7] 启动PostgreSQL和Redis容器
|
||||
@@ -79,14 +79,14 @@ docker-compose up -d
|
||||
5. 启动容器并在后台运行
|
||||
```
|
||||
|
||||
**<EFBFBD>其<EFBFBD><EFBFBD><EFBFBD>閬<EFBFBD><EFBFBD><EFBFBD>典<EFBFBD>鋆<EFBFBD>ostgreSQL嚗?*
|
||||
- <EFBFBD>?Docker隡朞䌊<EFBFBD>典<EFBFBD>撱箏<EFBFBD>蝞∠<EFBFBD>
|
||||
- <EFBFBD>?<3F>唳旿摮睃<E691AE><E79D83>求ocker<65>唳旿<E594B3>瑚葉嚗䔶<E59A97>隡帋腺憭?
|
||||
- <EFBFBD>?<3F>臭誑<E887AD>朞<EFBFBD>`localhost:5432`餈墧𦻖
|
||||
**您不需要手动安装PostgreSQL!**
|
||||
- ✅ Docker会自动创建和管理
|
||||
- ✅ 数据存储在Docker数据卷中,不会丢失
|
||||
- ✅ 可以通过`localhost:5432`连接
|
||||
|
||||
---
|
||||
|
||||
## <EFBFBD><EFBFBD>儭?<3F>唳旿摨栞<E691A8><E6A09E>乩縑<E4B9A9>?
|
||||
## 🗄️ 数据库连接信息
|
||||
|
||||
### 连接配置
|
||||
|
||||
@@ -95,18 +95,18 @@ docker-compose up -d
|
||||
postgresql://postgres:postgres123@localhost:5432/ai_clinical_research
|
||||
```
|
||||
|
||||
**<EFBFBD><EFBFBD>圾嚗?*
|
||||
- **<EFBFBD>讛悅嚗?* postgresql://
|
||||
**拆解:**
|
||||
- **协议:** postgresql://
|
||||
- **用户名:** postgres
|
||||
- **撖<EFBFBD><EFBFBD>嚗?* postgres123
|
||||
- **銝餅㦤嚗?* localhost嚗㇄ocker<EFBFBD>惩<EFBFBD><EFBFBD>唳𧋦<EFBFBD>堆<EFBFBD>
|
||||
- **蝡臬藁嚗?* 5432
|
||||
- **<EFBFBD>唳旿摨枏<EFBFBD>嚗?* ai_clinical_research
|
||||
- **密码:** postgres123
|
||||
- **主机:** localhost(Docker映射到本地)
|
||||
- **端口:** 5432
|
||||
- **数据库名:** ai_clinical_research
|
||||
|
||||
### <EFBFBD>𡒊垢<EFBFBD>滨蔭嚗Ê̄ackend/.env嚗?
|
||||
### 后端配置(backend/.env)
|
||||
|
||||
```bash
|
||||
# <EFBFBD>唳旿摨栞<EFBFBD><EFBFBD>?
|
||||
# 数据库连接
|
||||
DATABASE_URL=postgresql://postgres:postgres123@localhost:5432/ai_clinical_research
|
||||
|
||||
# 这个连接的是您自己的PostgreSQL,不是Dify的!
|
||||
@@ -118,85 +118,85 @@ DATABASE_URL=postgresql://postgres:postgres123@localhost:5432/ai_clinical_resear
|
||||
|
||||
### 系统对比
|
||||
|
||||
| 憿寧𤌍 | <20>函<EFBFBD><E587BD>唳旿摨?| Dify<66><79>㺭<EFBFBD>桀<EFBFBD> |
|
||||
| 项目 | 您的数据库 | Dify的数据库 |
|
||||
|------|----------|-------------|
|
||||
| **位置** | `AIclinicalresearch/docker-compose.yml` | `dify/docker/docker-compose.yml` |
|
||||
| **摰孵膥<EFBFBD>?* | `ai-clinical-postgres` | `dify-db`嚗<EFBFBD><EFBFBD>瘚页<EFBFBD> |
|
||||
| **容器名** | `ai-clinical-postgres` | `dify-db`(猜测) |
|
||||
| **端口** | `5432` | 可能是`5433`或不暴露 |
|
||||
| **数据库名** | `ai_clinical_research` | `dify` |
|
||||
| **<EFBFBD>券<EFBFBD>?* | 摮睃<E691AE><E79D83>券★<E588B8>桃<EFBFBD>銝𡁜𦛚<F0A1819C>唳旿 | 摮睃<E691AE>Dify<66><79>㺭<EFBFBD>?|
|
||||
| **用途** | 存储您项目的业务数据 | 存储Dify的数据 |
|
||||
| **访问方式** | 直接Prisma访问 | 通过Dify API访问 |
|
||||
|
||||
### <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>? AIclinicalresearch憿寧𤌍 <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><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><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <EFBFBD>?
|
||||
<EFBFBD>? <20>? Backend <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? PostgreSQL <EFBFBD>? <EFBFBD>?
|
||||
<EFBFBD>? <20>? (Node.js) <EFBFBD>?SQL <EFBFBD>? (Docker) <EFBFBD>? <EFBFBD>?
|
||||
<EFBFBD>? <20>? <EFBFBD>? <20>? <EFBFBD>? <EFBFBD>?
|
||||
<EFBFBD>? <20>? Prisma <EFBFBD>? <EFBFBD>?Port: 5432 <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>? <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>?HTTP API <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><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <EFBFBD>?
|
||||
<EFBFBD>? <20>? Dify <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>> Dify<EFBFBD>芸楛<EFBFBD><EFBFBD>ostgreSQL <EFBFBD>?
|
||||
<EFBFBD>? <20>? (Docker) <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><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
|
||||
┌─────────────────────────────────────────────────────────┐
|
||||
│ AIclinicalresearch项目 │
|
||||
│ │
|
||||
│ ┌──────────────┐ ┌──────────────┐ │
|
||||
│ │ Backend │──────│ PostgreSQL │ │
|
||||
│ │ (Node.js) │ SQL │ (Docker) │ │
|
||||
│ │ │ │ │ │
|
||||
│ │ Prisma │ │ Port: 5432 │ │
|
||||
│ └──────────────┘ └──────────────┘ │
|
||||
│ │ │
|
||||
│ │ HTTP API │
|
||||
│ ↓ │
|
||||
│ ┌──────────────┐ │
|
||||
│ │ Dify │──────> Dify自己的PostgreSQL │
|
||||
│ │ (Docker) │ (完全独立) │
|
||||
│ └──────────────┘ │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📊 当前数据库表结构
|
||||
|
||||
### <EFBFBD>函<EFBFBD>PostgreSQL銝剔<EFBFBD>銵?
|
||||
### 您的PostgreSQL中的表
|
||||
|
||||
```sql
|
||||
-- 来源:backend/prisma/schema.prisma
|
||||
|
||||
-- 用户模块
|
||||
users -- <EFBFBD>冽<EFBFBD>銵?
|
||||
users -- 用户表
|
||||
|
||||
-- 项目模块
|
||||
projects -- 憿寧𤌍銵?
|
||||
projects -- 项目表
|
||||
|
||||
-- AI问答模块
|
||||
conversations -- 撖寡<EFBFBD>銵?
|
||||
messages -- 瘨<EFBFBD><EFBFBD>銵?
|
||||
general_conversations -- <EFBFBD>𡁶鍂撖寡<EFBFBD>銵?
|
||||
general_messages -- <EFBFBD>𡁶鍂瘨<EFBFBD><EFBFBD>銵?
|
||||
conversations -- 对话表
|
||||
messages -- 消息表
|
||||
general_conversations -- 通用对话表
|
||||
general_messages -- 通用消息表
|
||||
|
||||
-- <20>亥<EFBFBD>摨𤘪芋<F0A498AA>?
|
||||
-- 知识库模块
|
||||
knowledge_bases -- 知识库表
|
||||
documents -- <EFBFBD><EFBFBD>﹝銵?
|
||||
documents -- 文档表
|
||||
|
||||
-- <20>孵<EFBFBD><E5ADB5><EFBFBD>芋<EFBFBD>梹<EFBFBD>Phase 3嚗?
|
||||
-- 批处理模块(Phase 3)
|
||||
batch_tasks -- 批处理任务表
|
||||
batch_results -- 批处理结果表
|
||||
task_templates -- 隞餃𦛚璅⊥踎銵?
|
||||
task_templates -- 任务模板表
|
||||
|
||||
-- 稿件审查模块
|
||||
review_tasks -- 蝔蹂辣摰⊥䰻隞餃𦛚銵?
|
||||
review_tasks -- 稿件审查任务表
|
||||
|
||||
-- 运营管理模块
|
||||
admin_logs -- 管理员日志表
|
||||
```
|
||||
|
||||
**<EFBFBD>餉恣嚗?6撘㰘”嚗<E2809D><E59A97><EFBFBD>典銁<E585B8>刻䌊撌梁<E6928C>PostgreSQL銝准<EFBFBD>?*
|
||||
**总计:16张表,全部在您自己的PostgreSQL中。**
|
||||
|
||||
---
|
||||
|
||||
## 🔧 常用操作
|
||||
|
||||
### <EFBFBD>亦<EFBFBD>Docker摰孵膥<EFBFBD>嗆<EFBFBD>?
|
||||
### 查看Docker容器状态
|
||||
|
||||
```bash
|
||||
# <20>亦<EFBFBD><E4BAA6><EFBFBD><EFBFBD>匧捆<E58CA7>?
|
||||
# 查看所有容器
|
||||
docker ps
|
||||
|
||||
# 应该能看到:
|
||||
@@ -211,15 +211,15 @@ docker ps
|
||||
# 进入PostgreSQL容器
|
||||
docker exec -it ai-clinical-postgres psql -U postgres -d ai_clinical_research
|
||||
|
||||
# <EFBFBD>嗅<EFBFBD><EFBFBD>臭誑<EFBFBD>扯<EFBFBD>SQL嚗?
|
||||
# 然后可以执行SQL:
|
||||
\dt # 查看所有表
|
||||
\d users # <EFBFBD>亦<EFBFBD>users銵函<EFBFBD><EFBFBD>?
|
||||
\d users # 查看users表结构
|
||||
SELECT * FROM users LIMIT 10;
|
||||
```
|
||||
|
||||
**<EFBFBD>寞<EFBFBD>2嚗帋蝙<EFBFBD>冽㺭<EFBFBD>桀<EFBFBD>摰X<EFBFBD>蝡?*
|
||||
**方法2:使用数据库客户端**
|
||||
- **DBeaver** / **pgAdmin** / **DataGrip** / **Navicat**
|
||||
- 餈墧𦻖靽⊥<E99DBD>嚗?
|
||||
- 连接信息:
|
||||
- Host: `localhost`
|
||||
- Port: `5432`
|
||||
- Database: `ai_clinical_research`
|
||||
@@ -239,7 +239,7 @@ docker-compose up -d
|
||||
docker-compose restart postgres
|
||||
```
|
||||
|
||||
### <EFBFBD>亦<EFBFBD><EFBFBD>唳旿摨𤘪𠯫敹?
|
||||
### 查看数据库日志
|
||||
|
||||
```bash
|
||||
# 查看PostgreSQL日志
|
||||
@@ -251,7 +251,7 @@ docker logs -f ai-clinical-postgres
|
||||
|
||||
---
|
||||
|
||||
## <EFBFBD>𠒣 <20>唳旿<E594B3><E697BF><EFBFBD><EFBFBD>?
|
||||
## 💾 数据持久化
|
||||
|
||||
### 数据存储位置
|
||||
|
||||
@@ -260,22 +260,22 @@ docker logs -f ai-clinical-postgres
|
||||
postgres_data:/var/lib/postgresql/data
|
||||
```
|
||||
|
||||
**摰鮋<EFBFBD>摮睃<EFBFBD>雿滨蔭嚗?*
|
||||
**实际存储位置:**
|
||||
- Windows: `C:\ProgramData\Docker\volumes\aiclinicalresearch_postgres_data\_data`
|
||||
- Mac/Linux: `/var/lib/docker/volumes/aiclinicalresearch_postgres_data/_data`
|
||||
|
||||
**<EFBFBD>滩<EFBFBD>嚗?*
|
||||
- <20>?<3F>喃蝙<E59683>𣳇膄摰孵膥嚗Ǒdocker-compose down`嚗㚁<EFBFBD><EFBFBD>唳旿銝滢<EFBFBD>銝W仃
|
||||
- <EFBFBD>?<3F>唳旿摮睃<E691AE><E79D83>求ocker<65>唳旿<E594B3>瑚葉嚗峕<E59A97>銋<EFBFBD><E98A8B>靽嘥<E99DBD>
|
||||
- <EFBFBD>𩤃<EFBFBD> <20>芣<EFBFBD><E88AA3>扯<EFBFBD>`docker-compose down -v`嚗<EFBFBD><EFBFBD><EFBFBD>斗㺭<EFBFBD>桀㭘嚗㗇<EFBFBD>隡𡁏<EFBFBD>蝛箸㺭<EFBFBD>?
|
||||
**重要:**
|
||||
- ✅ 即使删除容器(`docker-compose down`),数据不会丢失
|
||||
- ✅ 数据存储在Docker数据卷中,持久化保存
|
||||
- ⚠️ 只有执行`docker-compose down -v`(删除数据卷)才会清空数据
|
||||
|
||||
### 憭<EFBFBD>遢<EFBFBD>唳旿摨?
|
||||
### 备份数据库
|
||||
|
||||
```bash
|
||||
# 憭<EFBFBD>遢嚗<EFBFBD>紡<EFBFBD>搴QL嚗?
|
||||
# 备份(导出SQL)
|
||||
docker exec ai-clinical-postgres pg_dump -U postgres ai_clinical_research > backup.sql
|
||||
|
||||
# <EFBFBD>W<EFBFBD>嚗<EFBFBD>紡<EFBFBD>兄QL嚗?
|
||||
# 恢复(导入SQL)
|
||||
docker exec -i ai-clinical-postgres psql -U postgres ai_clinical_research < backup.sql
|
||||
```
|
||||
|
||||
@@ -283,7 +283,7 @@ docker exec -i ai-clinical-postgres psql -U postgres ai_clinical_research < back
|
||||
|
||||
## 🎯 未来:Schema隔离计划
|
||||
|
||||
### 敶枏<EFBFBD><EFBFBD>嗆<EFBFBD>?
|
||||
### 当前状态
|
||||
|
||||
```sql
|
||||
-- 所有表都在public schema
|
||||
@@ -296,7 +296,7 @@ public.review_tasks
|
||||
...
|
||||
```
|
||||
|
||||
### <EFBFBD>格<EFBFBD><EFBFBD>嗆<EFBFBD>嚗𠄎chema<EFBFBD>𠉛氖嚗?
|
||||
### 目标架构(Schema隔离)
|
||||
|
||||
```sql
|
||||
-- 平台层Schema
|
||||
@@ -311,7 +311,7 @@ aia_schema.projects
|
||||
aia_schema.conversations
|
||||
aia_schema.messages
|
||||
|
||||
CREATE SCHEMA pkb_schema; -- 銝芯犖<EFBFBD>亥<EFBFBD>摨?
|
||||
CREATE SCHEMA pkb_schema; -- 个人知识库
|
||||
pkb_schema.knowledge_bases
|
||||
pkb_schema.documents
|
||||
|
||||
@@ -325,15 +325,15 @@ review_schema.review_tasks
|
||||
review_schema.review_journals
|
||||
```
|
||||
|
||||
**摰墧鴌霈∪<EFBFBD>嚗?*
|
||||
- **<EFBFBD>嗆挾銝<EFBFBD>嚗<EFBFBD><EFBFBD><EFBFBD>喉<EFBFBD>嚗?* <20>餉<EFBFBD><E9A489>𠉛氖嚗䔶蝙<E494B6>刻”<E588BB>滚<EFBFBD>蝻<EFBFBD>嚗Ǒaia_projects`, `asl_projects`嚗?
|
||||
**实施计划:**
|
||||
- **阶段一(立即):** 逻辑隔离,使用表名前缀(`aia_projects`, `asl_projects`)
|
||||
- **阶段二(微服务拆分时):** 物理隔离,创建真正的Schema
|
||||
|
||||
---
|
||||
|
||||
## <EFBFBD><EFBFBD> Dify<EFBFBD>唳旿摨橒<EFBFBD><EFBFBD>祉<EFBFBD>蝟餌<EFBFBD>嚗?
|
||||
## 🔍 Dify数据库(独立系统)
|
||||
|
||||
### Dify<EFBFBD><EFBFBD><EFBFBD>蝵?
|
||||
### Dify的部署
|
||||
|
||||
```
|
||||
dify/docker/docker-compose.yml
|
||||
@@ -345,17 +345,17 @@ dify/docker/docker-compose.yml
|
||||
```
|
||||
|
||||
**关键点:**
|
||||
- <EFBFBD>?Dify<EFBFBD>㕑䌊撌勗<EFBFBD><EFBFBD>函𡠺蝡讠<EFBFBD>docker-compose.yml
|
||||
- <EFBFBD>?Dify<EFBFBD><EFBFBD>ostgreSQL<EFBFBD>舐𡠺蝡讠<EFBFBD>摰孵膥
|
||||
- <EFBFBD>?<3F>函<EFBFBD>憿寧𤌍銝滨凒<E6BBA8>亥挪<E4BAA5>唏ify<66><79>㺭<EFBFBD>桀<EFBFBD>
|
||||
- <EFBFBD>?<3F>朞<EFBFBD>Dify API嚗𠃍TTP REST嚗㕑<EFBFBD><EFBFBD>求ify<EFBFBD>蠘<EFBFBD>
|
||||
- ✅ Dify有自己完全独立的docker-compose.yml
|
||||
- ✅ Dify的PostgreSQL是独立的容器
|
||||
- ✅ 您的项目不直接访问Dify的数据库
|
||||
- ✅ 通过Dify API(HTTP REST)调用Dify功能
|
||||
|
||||
### 您的项目如何使用Dify
|
||||
|
||||
```typescript
|
||||
// 不是直接访问Dify数据库,而是通过API
|
||||
|
||||
// <EFBFBD>𥕦遣<EFBFBD>亥<EFBFBD>摨?
|
||||
// 创建知识库
|
||||
const response = await fetch('http://localhost/v1/datasets', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@@ -363,7 +363,7 @@ const response = await fetch('http://localhost/v1/datasets', {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
body: JSON.stringify({
|
||||
name: '<EFBFBD>𤑳<EFBFBD><EFBFBD>亥<EFBFBD>摨?
|
||||
name: '我的知识库'
|
||||
})
|
||||
});
|
||||
|
||||
@@ -379,12 +379,12 @@ await fetch(`http://localhost/v1/datasets/${datasetId}/document/create-by-file`,
|
||||
});
|
||||
```
|
||||
|
||||
**<EFBFBD>函<EFBFBD><EFBFBD>唳旿摨㮖葉摮睃<EFBFBD>嚗?*
|
||||
**您的数据库中存储:**
|
||||
```sql
|
||||
-- knowledge_bases銵?
|
||||
-- knowledge_bases表
|
||||
{
|
||||
id: 'uuid',
|
||||
name: '<EFBFBD>𤑳<EFBFBD><EFBFBD>亥<EFBFBD>摨?,
|
||||
name: '我的知识库',
|
||||
dify_dataset_id: 'xxx' -- 关联Dify的dataset_id
|
||||
}
|
||||
```
|
||||
@@ -395,39 +395,39 @@ await fetch(`http://localhost/v1/datasets/${datasetId}/document/create-by-file`,
|
||||
|
||||
### 核心要点
|
||||
|
||||
1. <EFBFBD>?**<2A>冽<EFBFBD><E586BD>芸楛<E88AB8><E6A59B>ostgreSQL<EFBFBD>唳旿摨?*
|
||||
- <EFBFBD>朞<EFBFBD>Docker<EFBFBD>函蔡嚗Ǒdocker-compose.yml`嚗?
|
||||
1. ✅ **您有自己的PostgreSQL数据库**
|
||||
- 通过Docker部署(`docker-compose.yml`)
|
||||
- 容器名:`ai-clinical-postgres`
|
||||
- 数据库名:`ai_clinical_research`
|
||||
|
||||
2. <EFBFBD>?**<2A>其<EFBFBD><E585B6><EFBFBD>閬<EFBFBD><E996AC><EFBFBD>典<EFBFBD>鋆<EFBFBD>ostgreSQL**
|
||||
- `docker-compose up -d`隡朞䌊<EFBFBD>典<EFBFBD>撱?
|
||||
2. ✅ **您不需要手动安装PostgreSQL**
|
||||
- `docker-compose up -d`会自动创建
|
||||
- 数据持久化存储在Docker数据卷中
|
||||
|
||||
3. <EFBFBD>?**Dify<EFBFBD>臬<EFBFBD><EFBFBD>函𡠺蝡讠<EFBFBD>蝟餌<EFBFBD>**
|
||||
- <EFBFBD>㕑䌊撌梁<EFBFBD>PostgreSQL<EFBFBD>唳旿摨?
|
||||
- <EFBFBD>券<EFBFBD>朞<EFBFBD>Dify API霈輸䔮嚗䔶<EFBFBD><EFBFBD>湔𦻖霈輸䔮<EFBFBD>唳旿摨?
|
||||
3. ✅ **Dify是完全独立的系统**
|
||||
- 有自己的PostgreSQL数据库
|
||||
- 您通过Dify API访问,不直接访问数据库
|
||||
|
||||
4. <EFBFBD>?**敶枏<E695B6>16撘㰘”<E3B098>券<EFBFBD><E588B8>冽<EFBFBD><E586BD><EFBFBD>ostgreSQL銝?*
|
||||
4. ✅ **当前16张表全部在您的PostgreSQL中**
|
||||
- 用户、项目、对话、知识库、文档、批处理、稿件审查等
|
||||
- 全部在`public` schema(未来需要隔离)
|
||||
|
||||
### 銝箔<EFBFBD>銋<EFBFBD><EFBFBD>銝滩扇敺堒<EFBFBD>鋆<EFBFBD>ostgreSQL嚗?
|
||||
### 为什么您不记得安装PostgreSQL?
|
||||
|
||||
**因为您根本没有手动安装!** 😊
|
||||
|
||||
- <EFBFBD>?Docker<EFBFBD>芸𢆡銝贝蝸<EFBFBD>𨅯<EFBFBD>
|
||||
- <EFBFBD>?Docker<EFBFBD>芸𢆡<EFBFBD>𥕦遣摰孵膥
|
||||
- <EFBFBD>?銝<><E98A9D>桀鍳<E6A180>刻<EFBFBD><E588BB>祈䌊<E7A588>典鍳<E585B8>?
|
||||
- <EFBFBD>?<3F>典蘨<E585B8><E898A8>閬<EFBFBD><E996AC>銵䈣銝<E488A3><E98A9D>桀鍳<E6A180>?bat`
|
||||
- ✅ Docker自动下载镜像
|
||||
- ✅ Docker自动创建容器
|
||||
- ✅ 一键启动脚本自动启动
|
||||
- ✅ 您只需要运行`一键启动.bat`
|
||||
|
||||
**这就是Docker的魔力!**
|
||||
|
||||
---
|
||||
|
||||
**<EFBFBD><EFBFBD>閬<EFBFBD><EFBFBD>銝<EFBFBD>甇乩<EFBFBD>閫<EFBFBD><EFBFBD><EFBFBD><EFBFBD>捆嚗?*
|
||||
1. 憒<EFBFBD><EFBFBD>憭<EFBFBD>遢<EFBFBD>峕<EFBFBD>憭齿㺭<EFBFBD>桀<EFBFBD>嚗?
|
||||
2. 憒<EFBFBD><EFBFBD>餈<EFBFBD>宏<EFBFBD>訕chema<EFBFBD>𠉛氖<EFBFBD>嗆<EFBFBD>嚗?
|
||||
**需要进一步了解的内容:**
|
||||
1. 如何备份和恢复数据库?
|
||||
2. 如何迁移到Schema隔离架构?
|
||||
3. 如何连接数据库进行手动查询?
|
||||
4. Prisma如何管理数据库迁移?
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,15 +1,15 @@
|
||||
# Monorepo架构评估 - 当前阶段是否需要?
|
||||
|
||||
> **鏂囨。鐗堟湰锛?* v1.0
|
||||
> **鍒涘缓鏃ユ湡锛?* 2025-11-06
|
||||
> **鏂囨。鐩<EFBFBD>殑锛?* 璇勪及褰撳墠闃舵<E99783>閲囩敤Monorepo鏋舵瀯鐨勫繀瑕佹€у拰鎴愭湰
|
||||
> **文档版本:** v1.0
|
||||
> **创建日期:** 2025-11-06
|
||||
> **文档目的:** 评估当前阶段采用Monorepo架构的必要性和成本
|
||||
|
||||
---
|
||||
|
||||
## 🤔 核心问题
|
||||
|
||||
1. 当前阶段需要使用Monorepo架构吗?
|
||||
2. 瀵瑰綋鍓嶉樁娈电殑鎴愭湰楂樺悧锛?
|
||||
2. 对当前阶段的成本高吗?
|
||||
3. 什么时候是最佳时机?
|
||||
|
||||
---
|
||||
@@ -20,32 +20,32 @@
|
||||
|
||||
```
|
||||
AIclinicalresearch/
|
||||
鈹溾攢鈹€ frontend/ # 鍓嶇<EFBFBD>锛圧eact + Vite锛?
|
||||
鈹? 鈹溾攢鈹€ src/
|
||||
鈹? 鈹溾攢鈹€ package.json
|
||||
鈹? 鈹斺攢鈹€ node_modules/
|
||||
鈹?
|
||||
鈹溾攢鈹€ backend/ # 鍚庣<EFBFBD>锛圢ode.js + Fastify锛?
|
||||
鈹? 鈹溾攢鈹€ src/
|
||||
鈹? 鈹溾攢鈹€ package.json
|
||||
鈹? 鈹斺攢鈹€ node_modules/
|
||||
鈹?
|
||||
├── frontend/ # 前端(React + Vite)
|
||||
│ ├── src/
|
||||
│ ├── package.json
|
||||
│ └── node_modules/
|
||||
│
|
||||
├── backend/ # 后端(Node.js + Fastify)
|
||||
│ ├── src/
|
||||
│ ├── package.json
|
||||
│ └── node_modules/
|
||||
│
|
||||
├── extraction_service/ # Python文档提取服务
|
||||
鈹? 鈹溾攢鈹€ main.py
|
||||
鈹? 鈹溾攢鈹€ requirements.txt
|
||||
鈹? 鈹斺攢鈹€ venv/
|
||||
鈹?
|
||||
│ ├── main.py
|
||||
│ ├── requirements.txt
|
||||
│ └── venv/
|
||||
│
|
||||
├── docker-compose.yml # Docker配置
|
||||
└── ...
|
||||
```
|
||||
|
||||
**褰撳墠鐗圭偣锛?*
|
||||
- 鉁?缁撴瀯绠€鍗曪紝鏄撲簬鐞嗚В
|
||||
- 鉁?鍓嶅悗绔<E68297>垎绂伙紝鑱岃矗娓呮櫚
|
||||
- 鉁?鍚勮嚜鐙<E59A9C>珛鐨勪緷璧栫<E792A7>鐞?
|
||||
- 鉂?娌℃湁浠g爜鍏变韩鏈哄埗
|
||||
- 鉂?閲嶅<E996B2>鐨勯厤缃<E58EA4>枃浠?
|
||||
- 鉂?涓嶆敮鎸佹ā鍧楃嫭绔嬫墦鍖?
|
||||
**当前特点:**
|
||||
- ✅ 结构简单,易于理解
|
||||
- ✅ 前后端分离,职责清晰
|
||||
- ✅ 各自独立的依赖管理
|
||||
- ❌ 没有代码共享机制
|
||||
- ❌ 重复的配置文件
|
||||
- ❌ 不支持模块独立打包
|
||||
|
||||
---
|
||||
|
||||
@@ -55,59 +55,59 @@ AIclinicalresearch/
|
||||
|
||||
```
|
||||
AIclinicalresearch/
|
||||
鈹溾攢鈹€ packages/ # 鍏变韩鍖?
|
||||
鈹? 鈹溾攢鈹€ platform-core/ # 骞冲彴鏍稿績锛堝彲澶嶇敤锛?
|
||||
鈹? 鈹? 鈹溾攢鈹€ auth/
|
||||
鈹? 鈹? 鈹溾攢鈹€ storage/
|
||||
鈹? 鈹? 鈹溾攢鈹€ package.json
|
||||
鈹? 鈹? 鈹斺攢鈹€ tsconfig.json
|
||||
鈹? 鈹?
|
||||
鈹? 鈹溾攢鈹€ capabilities-core/ # 閫氱敤鑳藉姏锛堝彲澶嶇敤锛?
|
||||
鈹? 鈹? 鈹溾攢鈹€ llm-gateway/
|
||||
鈹? 鈹? 鈹溾攢鈹€ document-processor/
|
||||
鈹? 鈹? 鈹溾攢鈹€ package.json
|
||||
鈹? 鈹? 鈹斺攢鈹€ tsconfig.json
|
||||
鈹? 鈹?
|
||||
鈹? 鈹斺攢鈹€ shared-types/ # 鍏变韩绫诲瀷瀹氫箟
|
||||
鈹? 鈹溾攢鈹€ src/
|
||||
鈹? 鈹溾攢鈹€ package.json
|
||||
鈹? 鈹斺攢鈹€ tsconfig.json
|
||||
鈹?
|
||||
├── packages/ # 共享包
|
||||
│ ├── platform-core/ # 平台核心(可复用)
|
||||
│ │ ├── auth/
|
||||
│ │ ├── storage/
|
||||
│ │ ├── package.json
|
||||
│ │ └── tsconfig.json
|
||||
│ │
|
||||
│ ├── capabilities-core/ # 通用能力(可复用)
|
||||
│ │ ├── llm-gateway/
|
||||
│ │ ├── document-processor/
|
||||
│ │ ├── package.json
|
||||
│ │ └── tsconfig.json
|
||||
│ │
|
||||
│ └── shared-types/ # 共享类型定义
|
||||
│ ├── src/
|
||||
│ ├── package.json
|
||||
│ └── tsconfig.json
|
||||
│
|
||||
├── apps/ # 应用
|
||||
鈹? 鈹溾攢鈹€ frontend/ # Web鍓嶇<EFBFBD>
|
||||
鈹? 鈹? 鈹溾攢鈹€ src/
|
||||
鈹? 鈹? 鈹斺攢鈹€ package.json
|
||||
鈹? 鈹?
|
||||
鈹? 鈹溾攢鈹€ backend/ # Web鍚庣<EFBFBD>
|
||||
鈹? 鈹? 鈹溾攢鈹€ src/
|
||||
鈹? 鈹? 鈹斺攢鈹€ package.json
|
||||
鈹? 鈹?
|
||||
鈹? 鈹斺攢鈹€ admin-frontend/ # 杩愯惀绠$悊绔<EFBFBD>紙鏈<EFBFBD>潵锛?
|
||||
鈹? 鈹溾攢鈹€ src/
|
||||
鈹? 鈹斺攢鈹€ package.json
|
||||
鈹?
|
||||
│ ├── frontend/ # Web前端
|
||||
│ │ ├── src/
|
||||
│ │ └── package.json
|
||||
│ │
|
||||
│ ├── backend/ # Web后端
|
||||
│ │ ├── src/
|
||||
│ │ └── package.json
|
||||
│ │
|
||||
│ └── admin-frontend/ # 运营管理端(未来)
|
||||
│ ├── src/
|
||||
│ └── package.json
|
||||
│
|
||||
├── products/ # 独立产品打包(未来)
|
||||
鈹? 鈹溾攢鈹€ review-system/
|
||||
鈹? 鈹斺攢鈹€ literature-system/
|
||||
鈹?
|
||||
鈹溾攢鈹€ package.json # 鏍筽ackage.json锛圵orkspace閰嶇疆锛?
|
||||
│ ├── review-system/
|
||||
│ └── literature-system/
|
||||
│
|
||||
├── package.json # 根package.json(Workspace配置)
|
||||
├── pnpm-workspace.yaml # Workspace配置
|
||||
└── tsconfig.base.json # 共享TS配置
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 馃挵 鎴愭湰鍒嗘瀽锛氱幇鍦?vs 浠ュ悗
|
||||
## 💰 成本分析:现在 vs 以后
|
||||
|
||||
### 方案A:现在转换Monorepo
|
||||
|
||||
#### 鎴愭湰锛?-3澶╋級
|
||||
#### 成本(2-3天)
|
||||
|
||||
**Day 1锛氬<EFBFBD>涔犲拰璁捐<EFBFBD>锛?.5-1澶╋級**
|
||||
**Day 1:学习和设计(0.5-1天)**
|
||||
```
|
||||
瀛︿範鍐呭<EFBFBD>锛?
|
||||
- pnpm workspaces 鎴?npm workspaces
|
||||
- 鍖呬緷璧栫<EFBFBD>鐞嗭紙workspace:*锛?
|
||||
学习内容:
|
||||
- pnpm workspaces 或 npm workspaces
|
||||
- 包依赖管理(workspace:*)
|
||||
- TypeScript path mapping
|
||||
- 共享配置(tsconfig, eslint等)
|
||||
|
||||
@@ -117,7 +117,7 @@ AIclinicalresearch/
|
||||
|
||||
**Day 2:重构现有代码(1天)**
|
||||
```
|
||||
浠诲姟娓呭崟锛?
|
||||
任务清单:
|
||||
1. 创建packages/和apps/目录结构
|
||||
2. 移动frontend和backend到apps/
|
||||
3. 提取共享类型到packages/shared-types/
|
||||
@@ -127,72 +127,72 @@ AIclinicalresearch/
|
||||
|
||||
工作量:8小时
|
||||
难度:⭐⭐⭐ 中等
|
||||
椋庨櫓锛氣瓙猸?浣庯紙鏈夊洖婊氭柟妗堬級
|
||||
风险:⭐⭐ 低(有回滚方案)
|
||||
```
|
||||
|
||||
**Day 3锛氭祴璇曞拰浼樺寲锛?.5-1澶╋級**
|
||||
**Day 3:测试和优化(0.5-1天)**
|
||||
```
|
||||
娴嬭瘯鍐呭<EFBFBD>锛?
|
||||
- 鍓嶇<EFBFBD>鍚<EFBFBD>姩鍜屾瀯寤?
|
||||
- 鍚庣<EFBFBD>鍚<EFBFBD>姩鍜屾瀯寤?
|
||||
测试内容:
|
||||
- 前端启动和构建
|
||||
- 后端启动和构建
|
||||
- 依赖安装速度
|
||||
- 寮€鍙戜綋楠?
|
||||
- 开发体验
|
||||
|
||||
工作量:4-8小时
|
||||
```
|
||||
|
||||
**鎬绘垚鏈<EFBFBD>細2-3澶?*
|
||||
**总成本:2-3天**
|
||||
|
||||
#### 收益
|
||||
|
||||
**绔嬪嵆鏀剁泭锛?*
|
||||
1. 鉁?浠g爜鍏变韩鍙樺<E98D99>鏄擄紙绫诲瀷瀹氫箟銆佸伐鍏峰嚱鏁扮瓑锛?
|
||||
2. 鉁?缁熶竴鐨勪緷璧栫<E792A7>鐞嗭紙鍑忓皯閲嶅<E996B2>瀹夎<E780B9>锛?
|
||||
3. 鉁?缁熶竴鐨勯厤缃<E58EA4>紙TypeScript銆丒SLint绛夛級
|
||||
4. 鉁?涓烘湭鏉ユ墦鍩虹<E98DA9>
|
||||
**立即收益:**
|
||||
1. ✅ 代码共享变容易(类型定义、工具函数等)
|
||||
2. ✅ 统一的依赖管理(减少重复安装)
|
||||
3. ✅ 统一的配置(TypeScript、ESLint等)
|
||||
4. ✅ 为未来打基础
|
||||
|
||||
**鏈<EFBFBD>潵鏀剁泭锛?*
|
||||
1. 鉁?鏂板<E98F82>妯″潡鏃讹紝鍙<E7B49D>互澶嶇敤platform-core鍜宑apabilities-core
|
||||
2. 鉁?鐙<>珛浜у搧鎵撳寘鍙樼畝鍗?
|
||||
3. 鉁?Electron鍗曟満鐗堝紑鍙戝彉瀹规槗
|
||||
4. 鉁?閬垮厤鏈<E58EA4>潵澶ц<E6BEB6>妯¢噸鏋?
|
||||
**未来收益:**
|
||||
1. ✅ 新增模块时,可以复用platform-core和capabilities-core
|
||||
2. ✅ 独立产品打包变简单
|
||||
3. ✅ Electron单机版开发变容易
|
||||
4. ✅ 避免未来大规模重构
|
||||
|
||||
---
|
||||
|
||||
### 方案B:继续当前结构,以后再转
|
||||
|
||||
#### 鐭<EFBFBD>湡鎴愭湰锛?澶╋級
|
||||
#### 短期成本(0天)
|
||||
|
||||
**浼樼偣锛?*
|
||||
- 鉁?鏃犻渶瀛︿範鏂版妧鏈?
|
||||
- 鉁?鏃犻渶閲嶆瀯浠g爜
|
||||
- 鉁?鍙<>互绔嬪嵆寮€濮婣SL妯″潡寮€鍙?
|
||||
**优点:**
|
||||
- ✅ 无需学习新技术
|
||||
- ✅ 无需重构代码
|
||||
- ✅ 可以立即开始ASL模块开发
|
||||
|
||||
**缂虹偣锛?*
|
||||
- 鉂?浠g爜閲嶅<E996B2>锛堝墠鍚庣<E98D9A>绫诲瀷瀹氫箟銆佸伐鍏峰嚱鏁扮瓑锛?
|
||||
- 鉂?渚濊禆绠$悊鍒嗘暎
|
||||
- 鉂?涓烘湭鏉ュ煁涓嬫妧鏈<E5A6A7>€?
|
||||
**缺点:**
|
||||
- ❌ 代码重复(前后端类型定义、工具函数等)
|
||||
- ❌ 依赖管理分散
|
||||
- ❌ 为未来埋下技术债
|
||||
|
||||
#### 鏈<EFBFBD>潵鎴愭湰锛?-2鍛<32>級
|
||||
#### 未来成本(1-2周)
|
||||
|
||||
**瑙﹀彂鏉′欢锛?*
|
||||
**触发条件:**
|
||||
- 需要开发运营管理端(独立前端)
|
||||
- 闇€瑕佸紑鍙戠嫭绔嬩骇鍝佸寘锛堝<EFBFBD>绋跨郴缁熴€丄I鏂囩尞锛?
|
||||
- 闇€瑕佸紑鍙慐lectron鍗曟満鐗?
|
||||
- 浠g爜閲嶅<EFBFBD>涓ラ噸锛岀淮鎶ゅ洶闅?
|
||||
- 需要开发独立产品包(审稿系统、AI文献)
|
||||
- 需要开发Electron单机版
|
||||
- 代码重复严重,维护困难
|
||||
|
||||
**閲嶆瀯鎴愭湰锛堜及绠楋級锛?*
|
||||
**重构成本(估算):**
|
||||
```
|
||||
鏈<EFBFBD>潵閲嶆瀯鎴愭湰锛?
|
||||
未来重构成本:
|
||||
- 学习和设计:1天(同现在)
|
||||
- 閲嶆瀯浠g爜锛?-5澶╋紙浠g爜閲忔洿澶э級
|
||||
* 澶氫釜鍓嶇<EFBFBD>搴旂敤锛圵eb銆丄dmin銆丒lectron锛?
|
||||
- 重构代码:3-5天(代码量更大)
|
||||
* 多个前端应用(Web、Admin、Electron)
|
||||
* 多个后端模块
|
||||
* 澶ч噺鍏变韩浠g爜闇€瑕佹彁鍙?
|
||||
- 娴嬭瘯楠岃瘉锛?-3澶?
|
||||
- 淇<EFBFBD><EFBFBD>闂<EFBFBD><EFBFBD>锛?-2澶?
|
||||
* 大量共享代码需要提取
|
||||
- 测试验证:2-3天
|
||||
- 修复问题:1-2天
|
||||
|
||||
鎬绘垚鏈<EFBFBD>細7-11澶?
|
||||
总成本:7-11天
|
||||
|
||||
是现在的3-5倍!
|
||||
```
|
||||
@@ -203,75 +203,75 @@ AIclinicalresearch/
|
||||
|
||||
| 维度 | 方案A:现在转 | 方案B:以后转 |
|
||||
|------|-------------|-------------|
|
||||
| **绔嬪嵆鎴愭湰** | 猸愨瓙猸?涓<>紙2-3澶╋級 | 猸愨瓙猸愨瓙猸?闆?|
|
||||
| **鏈<EFBFBD>潵鎴愭湰** | 猸愨瓙猸愨瓙猸?闆?| 猸愨瓙 楂橈紙7-11澶╋級 |
|
||||
| **瀛︿範闅惧害** | 猸愨瓙猸?涓<>瓑 | 猸愨瓙猸?涓<>瓑锛堝欢鍚庯級 |
|
||||
| **椋庨櫓** | 猸愨瓙 浣?| 猸愨瓙猸?涓<>紙鎶€鏈<E282AC>€猴級 |
|
||||
| **浠g爜澶嶇敤** | 猸愨瓙猸愨瓙猸?浼樼<E6B5BC> | 猸愨瓙 鍥伴毦 |
|
||||
| **妯″潡鐙<EFBFBD>珛鎵撳寘** | 猸愨瓙猸愨瓙猸?瀹规槗 | 猸愨瓙 鍥伴毦 |
|
||||
| **鍥㈤槦鍗忎綔** | 猸愨瓙猸愨瓙 濂?| 猸愨瓙猸?涓€鑸?|
|
||||
| **寮€鍙戜綋楠?* | 猸愨瓙猸愨瓙 濂?| 猸愨瓙猸?涓€鑸?|
|
||||
| **立即成本** | ⭐⭐⭐ 中(2-3天) | ⭐⭐⭐⭐⭐ 零 |
|
||||
| **未来成本** | ⭐⭐⭐⭐⭐ 零 | ⭐⭐ 高(7-11天) |
|
||||
| **学习难度** | ⭐⭐⭐ 中等 | ⭐⭐⭐ 中等(延后) |
|
||||
| **风险** | ⭐⭐ 低 | ⭐⭐⭐ 中(技术债) |
|
||||
| **代码复用** | ⭐⭐⭐⭐⭐ 优秀 | ⭐⭐ 困难 |
|
||||
| **模块独立打包** | ⭐⭐⭐⭐⭐ 容易 | ⭐⭐ 困难 |
|
||||
| **团队协作** | ⭐⭐⭐⭐ 好 | ⭐⭐⭐ 一般 |
|
||||
| **开发体验** | ⭐⭐⭐⭐ 好 | ⭐⭐⭐ 一般 |
|
||||
|
||||
---
|
||||
|
||||
## 🎯 当前阶段评估
|
||||
|
||||
### 褰撳墠椤圭洰鐘舵€?
|
||||
### 当前项目状态
|
||||
|
||||
**已完成:**
|
||||
- 鉁?鍓嶇<E98D93>锛圧eact + Vite锛?
|
||||
- 鉁?鍚庣<E98D9A>锛圢ode.js + Fastify锛?
|
||||
- 鉁?Python鏂囨。鎻愬彇鏈嶅姟
|
||||
- 鉁?鍩虹<E98DA9>鍔熻兘锛圓IA銆丳KB锛?
|
||||
- ✅ 前端(React + Vite)
|
||||
- ✅ 后端(Node.js + Fastify)
|
||||
- ✅ Python文档提取服务
|
||||
- ✅ 基础功能(AIA、PKB)
|
||||
|
||||
**即将开发:**
|
||||
- 鈴?ASL妯″潡锛圓I鏅鸿兘鏂囩尞锛?
|
||||
- 鈴?ADMIN锛堣繍钀ョ<EFBFBD>鐞嗙<EFBFBD>锛? 鐙<>珛鍓嶇<E98D93>搴旂敤
|
||||
- ⏳ ASL模块(AI智能文献)
|
||||
- ⏳ ADMIN(运营管理端)- 独立前端应用
|
||||
|
||||
**鏈<EFBFBD>潵瑙勫垝锛?*
|
||||
- 鈴?DC銆丼SA銆丼T銆丷VW妯″潡
|
||||
- 鈴?鐙<>珛浜у搧鍖咃紙瀹$ǹ绯荤粺銆丄I鏂囩尞锛?
|
||||
- 鈴?Electron鍗曟満鐗?
|
||||
**未来规划:**
|
||||
- ⏳ DC、SSA、ST、RVW模块
|
||||
- ⏳ 独立产品包(审稿系统、AI文献)
|
||||
- ⏳ Electron单机版
|
||||
|
||||
---
|
||||
|
||||
### 鏄<EFBFBD>惁闇€瑕丮onorepo锛?
|
||||
### 是否需要Monorepo?
|
||||
|
||||
**璇勪及鏍囧噯锛?*
|
||||
**评估标准:**
|
||||
|
||||
#### 鉁?闇€瑕?- 濡傛灉婊¤冻浠ヤ笅鏉′欢锛?
|
||||
#### ✅ 需要 - 如果满足以下条件:
|
||||
|
||||
1. **杩戞湡锛?-3涓<33>湀锛変細寮€鍙戝<E98D99>涓<EFBFBD>嫭绔嬪簲鐢?*
|
||||
- 鉁?杩愯惀绠$悊绔<E6828A>紙鐙<E7B499>珛鍓嶇<E98D93>锛?
|
||||
- 鉁?ASL銆丏C绛夋柊妯″潡
|
||||
1. **近期(1-3个月)会开发多个独立应用**
|
||||
- ✅ 运营管理端(独立前端)
|
||||
- ✅ ASL、DC等新模块
|
||||
|
||||
2. **鏈変唬鐮佸叡浜<EFBFBD>渶姹?*
|
||||
- 鉁?绫诲瀷瀹氫箟锛圲ser銆丳roject绛夛級
|
||||
- 鉁?API瀹㈡埛绔<EFBFBD>紙apiClient锛?
|
||||
- 鉁?宸ュ叿鍑芥暟锛堟棩鏈熸牸寮忓寲銆侀獙璇佺瓑锛?
|
||||
2. **有代码共享需求**
|
||||
- ✅ 类型定义(User、Project等)
|
||||
- ✅ API客户端(apiClient)
|
||||
- ✅ 工具函数(日期格式化、验证等)
|
||||
|
||||
3. **鏈<EFBFBD>潵鏈夋ā鍧楃嫭绔嬮儴缃查渶姹?*
|
||||
- 鉁?瀹$ǹ绯荤粺鐙<E7B2BA>珛浜у搧
|
||||
- 鉁?AI鏂囩尞鐙<E5B09E>珛浜у搧
|
||||
- 鉁?Electron鍗曟満鐗?
|
||||
3. **未来有模块独立部署需求**
|
||||
- ✅ 审稿系统独立产品
|
||||
- ✅ AI文献独立产品
|
||||
- ✅ Electron单机版
|
||||
|
||||
4. **鍥㈤槦鑳藉<EFBFBD>鎺ュ彈2-3澶╃殑瀛︿範鍜岄噸鏋?*
|
||||
- 鉁?瀛︿範鏇茬嚎涓嶉櫋宄?
|
||||
- 鉁?鏂囨。鍜屾渶浣冲疄璺典赴瀵?
|
||||
4. **团队能够接受2-3天的学习和重构**
|
||||
- ✅ 学习曲线不陡峭
|
||||
- ✅ 文档和最佳实践丰富
|
||||
|
||||
#### 鉂?涓嶉渶瑕?- 濡傛灉婊¤冻浠ヤ笅鏉′欢锛?
|
||||
#### ❌ 不需要 - 如果满足以下条件:
|
||||
|
||||
1. **鍙<EFBFBD>湁涓€涓<EFBFBD>墠绔?+ 涓€涓<E282AC>悗绔?*
|
||||
- 鉂?褰撳墠宸叉湁杩愯惀绠$悊绔<E6828A>渶姹?
|
||||
1. **只有一个前端 + 一个后端**
|
||||
- ❌ 当前已有运营管理端需求
|
||||
|
||||
2. **娌℃湁浠g爜鍏变韩闇€姹?*
|
||||
- 鉂?宸叉湁澶ч噺閲嶅<E996B2>浠g爜锛堢被鍨嬪畾涔夌瓑锛?
|
||||
2. **没有代码共享需求**
|
||||
- ❌ 已有大量重复代码(类型定义等)
|
||||
|
||||
3. **涓嶆墦绠楁ā鍧楀寲鍜岀嫭绔嬮儴缃?*
|
||||
- 鉂?宸茶<E5AEB8>鍒掓ā鍧楃嫭绔嬮攢鍞?
|
||||
3. **不打算模块化和独立部署**
|
||||
- ❌ 已规划模块独立销售
|
||||
|
||||
4. **鍥㈤槦瀹屽叏娌℃湁鏃堕棿瀛︿範鏂版妧鏈?*
|
||||
- 鈿狅笍 鍙<>渶2-3澶?
|
||||
4. **团队完全没有时间学习新技术**
|
||||
- ⚠️ 只需2-3天
|
||||
|
||||
---
|
||||
|
||||
@@ -279,52 +279,52 @@ AIclinicalresearch/
|
||||
|
||||
### 建议:现在转换Monorepo ⭐⭐⭐⭐ **推荐**
|
||||
|
||||
**鐞嗙敱锛?*
|
||||
**理由:**
|
||||
|
||||
**1. 鎶曞叆浜у嚭姣旀瀬楂?*
|
||||
**1. 投入产出比极高**
|
||||
```
|
||||
鎶曞叆锛?-3澶?
|
||||
鑺傜渷锛氭湭鏉?-11澶╋紙鑺傜渷5-8澶╋級
|
||||
ROI锛?00%+
|
||||
投入:2-3天
|
||||
节省:未来7-11天(节省5-8天)
|
||||
ROI:300%+
|
||||
```
|
||||
|
||||
**2. 姝e<EFBFBD>浜庢渶浣虫椂鏈?*
|
||||
**2. 正处于最佳时机**
|
||||
```
|
||||
褰撳墠锛?
|
||||
当前:
|
||||
- 代码量适中(不多不少)
|
||||
- 即将开发多个新模块
|
||||
- 团队小,沟通成本低
|
||||
|
||||
鏈<EFBFBD>潵锛?
|
||||
未来:
|
||||
- 代码量大(重构困难)
|
||||
- 多个应用同时运行
|
||||
- 閲嶆瀯褰卞搷鑼冨洿澶?
|
||||
- 重构影响范围大
|
||||
```
|
||||
|
||||
**3. 绗﹀悎鏈<EFBFBD>潵闇€姹?*
|
||||
**3. 符合未来需求**
|
||||
```
|
||||
杩戞湡闇€姹傦紙3涓<EFBFBD>湀鍐咃級锛?
|
||||
- 鉁?杩愯惀绠$悊绔<E6828A>紙鐙<E7B499>珛鍓嶇<E98D93>锛?
|
||||
- 鉁?澶氫釜涓氬姟妯″潡锛圓SL銆丏C绛夛級
|
||||
- 鉁?浠g爜鍏变韩锛堢被鍨嬨€佸伐鍏峰嚱鏁帮級
|
||||
近期需求(3个月内):
|
||||
- ✅ 运营管理端(独立前端)
|
||||
- ✅ 多个业务模块(ASL、DC等)
|
||||
- ✅ 代码共享(类型、工具函数)
|
||||
|
||||
未来需求(6-12个月):
|
||||
- 鉁?鐙<>珛浜у搧鎵撳寘
|
||||
- 鉁?Electron鍗曟満鐗?
|
||||
- 鉁?寰<>湇鍔℃媶鍒?
|
||||
- ✅ 独立产品打包
|
||||
- ✅ Electron单机版
|
||||
- ✅ 微服务拆分
|
||||
```
|
||||
|
||||
**4. 学习成本不高**
|
||||
```
|
||||
Monorepo宸ュ叿锛?
|
||||
Monorepo工具:
|
||||
- pnpm workspaces(推荐,最简单)
|
||||
- npm workspaces锛堝唴缃<EFBFBD>紝鏃犻渶瀹夎<EFBFBD>锛?
|
||||
- npm workspaces(内置,无需安装)
|
||||
- yarn workspaces(成熟)
|
||||
|
||||
瀛︿範璧勬簮锛?
|
||||
- 鉁?瀹樻柟鏂囨。瀹屽杽
|
||||
- 鉁?绀惧尯鏈€浣冲疄璺典赴瀵?
|
||||
- 鉁?AI鍔╂墜锛堟垜锛夊彲浠ュ叏绋嬫寚瀵?
|
||||
学习资源:
|
||||
- ✅ 官方文档完善
|
||||
- ✅ 社区最佳实践丰富
|
||||
- ✅ AI助手(我)可以全程指导
|
||||
```
|
||||
|
||||
---
|
||||
@@ -338,16 +338,16 @@ Monorepo工具
|
||||
// 创建共享目录
|
||||
shared/
|
||||
├── types/ # 共享类型定义
|
||||
鈹? 鈹溾攢鈹€ user.ts
|
||||
鈹? 鈹溾攢鈹€ project.ts
|
||||
鈹? 鈹斺攢鈹€ index.ts
|
||||
鈹?
|
||||
│ ├── user.ts
|
||||
│ ├── project.ts
|
||||
│ └── index.ts
|
||||
│
|
||||
└── utils/ # 共享工具函数
|
||||
├── date.ts
|
||||
├── validation.ts
|
||||
└── index.ts
|
||||
|
||||
// 鍓嶅悗绔<EFBFBD>紩鐢?
|
||||
// 前后端引用
|
||||
import { User } from '../../shared/types';
|
||||
```
|
||||
|
||||
@@ -357,7 +357,7 @@ tsconfig.base.json # 共享TS配置
|
||||
.eslintrc.shared.js # 共享ESLint配置
|
||||
```
|
||||
|
||||
**3. 涓ユ牸鐨勪唬鐮佽<EFBFBD>鑼?*
|
||||
**3. 严格的代码规范**
|
||||
```
|
||||
- 禁止复制粘贴代码
|
||||
- 强制使用共享类型
|
||||
@@ -366,37 +366,37 @@ tsconfig.base.json # 共享TS配置
|
||||
|
||||
**触发Monorepo转换的信号:**
|
||||
- 开始开发运营管理端
|
||||
- 浠g爜閲嶅<EFBFBD>瓒呰繃3澶?
|
||||
- 鏂板<EFBFBD>绗?涓<>簲鐢?
|
||||
- 代码重复超过3处
|
||||
- 新增第3个应用
|
||||
|
||||
---
|
||||
|
||||
## 馃殌 瀹炴柦鏂规<E98F82>锛堝<E9949B>鏋滈€夋嫨杞<E5ABA8>崲锛?
|
||||
## 🚀 实施方案(如果选择转换)
|
||||
|
||||
### 闃舵<EFBFBD>涓€锛氬噯澶囷紙鍗婂ぉ锛?
|
||||
### 阶段一:准备(半天)
|
||||
|
||||
**瀛︿範pnpm workspaces锛?*
|
||||
**学习pnpm workspaces:**
|
||||
```bash
|
||||
# 1. 安装pnpm(如果没有)
|
||||
npm install -g pnpm
|
||||
|
||||
# 2. 闃呰<EFBFBD>鏂囨。锛?0鍒嗛挓锛?
|
||||
# 2. 阅读文档(30分钟)
|
||||
https://pnpm.io/workspaces
|
||||
|
||||
# 3. 鐪嬬ず渚嬮」鐩<EFBFBD>紙30鍒嗛挓锛?
|
||||
# 3. 看示例项目(30分钟)
|
||||
```
|
||||
|
||||
**璁捐<EFBFBD>鐩<EFBFBD>綍缁撴瀯锛?*
|
||||
**设计目录结构:**
|
||||
```
|
||||
鍐冲畾锛?
|
||||
决定:
|
||||
- packages/ 放什么?(shared-types、platform-core等)
|
||||
- apps/ 鏀句粈涔堬紵锛坒rontend銆乥ackend銆乤dmin-frontend锛?
|
||||
- apps/ 放什么?(frontend、backend、admin-frontend)
|
||||
- 是否需要products/?(暂时不需要)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 闃舵<EFBFBD>浜岋細閲嶆瀯锛?-1.5澶╋級
|
||||
### 阶段二:重构(1-1.5天)
|
||||
|
||||
**Step 1:创建基础结构**
|
||||
```bash
|
||||
@@ -415,7 +415,7 @@ mkdir -p packages/shared-types
|
||||
mkdir -p apps
|
||||
```
|
||||
|
||||
**Step 2锛氱Щ鍔ㄧ幇鏈変唬鐮?*
|
||||
**Step 2:移动现有代码**
|
||||
```bash
|
||||
# 移动frontend
|
||||
mv frontend apps/frontend
|
||||
@@ -423,18 +423,18 @@ mv frontend apps/frontend
|
||||
# 移动backend
|
||||
mv backend apps/backend
|
||||
|
||||
# extraction_service淇濇寔鍘熶綅锛圥ython涓嶉渶瑕丮onorepo锛?
|
||||
# extraction_service保持原位(Python不需要Monorepo)
|
||||
```
|
||||
|
||||
**Step 3锛氭彁鍙栧叡浜<EFBFBD>唬鐮?*
|
||||
**Step 3:提取共享代码**
|
||||
```bash
|
||||
# 鍒涘缓shared-types鍖?
|
||||
# 创建shared-types包
|
||||
cd packages/shared-types
|
||||
pnpm init
|
||||
# 移动类型定义
|
||||
```
|
||||
|
||||
**Step 4锛氶厤缃<EFBFBD>緷璧?*
|
||||
**Step 4:配置依赖**
|
||||
```json
|
||||
// apps/frontend/package.json
|
||||
{
|
||||
@@ -453,14 +453,14 @@ pnpm init
|
||||
|
||||
**Step 5:更新import**
|
||||
```typescript
|
||||
// 淇<EFBFBD>敼鍓?
|
||||
// 修改前
|
||||
import { User } from '../types/user';
|
||||
|
||||
// 淇<EFBFBD>敼鍚?
|
||||
// 修改后
|
||||
import { User } from '@yizhengxun/shared-types';
|
||||
```
|
||||
|
||||
**Step 6锛氬畨瑁呬緷璧?*
|
||||
**Step 6:安装依赖**
|
||||
```bash
|
||||
# 根目录执行(会安装所有包的依赖)
|
||||
pnpm install
|
||||
@@ -470,16 +470,16 @@ pnpm install
|
||||
|
||||
### 阶段三:测试验证(半天)
|
||||
|
||||
**娴嬭瘯娓呭崟锛?*
|
||||
- [ ] 鍓嶇<EFBFBD>鍚<EFBFBD>姩姝e父锛坄cd apps/frontend && pnpm dev`锛?
|
||||
- [ ] 鍚庣<EFBFBD>鍚<EFBFBD>姩姝e父锛坄cd apps/backend && pnpm dev`锛?
|
||||
- [ ] 绫诲瀷鎻愮ず姝e父锛圴SCode鏅鸿兘鎻愮ず锛?
|
||||
- [ ] 鏋勫缓鎴愬姛锛坄pnpm build`锛?
|
||||
- [ ] 鎵€鏈夊姛鑳芥<EFBFBD>甯?
|
||||
**测试清单:**
|
||||
- [ ] 前端启动正常(`cd apps/frontend && pnpm dev`)
|
||||
- [ ] 后端启动正常(`cd apps/backend && pnpm dev`)
|
||||
- [ ] 类型提示正常(VSCode智能提示)
|
||||
- [ ] 构建成功(`pnpm build`)
|
||||
- [ ] 所有功能正常
|
||||
|
||||
**鍥炴粴鏂规<EFBFBD>锛?*
|
||||
**回滚方案:**
|
||||
```bash
|
||||
# 濡傛灉鍑虹幇闂<EFBFBD><EFBFBD>锛屽彲浠ョ珛鍗冲洖婊?
|
||||
# 如果出现问题,可以立即回滚
|
||||
git reset --hard HEAD
|
||||
```
|
||||
|
||||
@@ -491,66 +491,66 @@ git reset --hard HEAD
|
||||
|
||||
| 项目 | 立即转换 | 延后转换 |
|
||||
|------|---------|---------|
|
||||
| **鏃堕棿鎴愭湰** | 2-3澶?| 鏈<>潵7-11澶?|
|
||||
| **时间成本** | 2-3天 | 未来7-11天 |
|
||||
| **学习成本** | 中等 | 中等(延后) |
|
||||
| **椋庨櫓** | 浣?| 涓<>紙鎶€鏈<E282AC>€猴級 |
|
||||
| **浠g爜璐ㄩ噺** | 猸愨瓙猸愨瓙猸?| 猸愨瓙猸?|
|
||||
| **寮€鍙戞晥鐜?* | 猸愨瓙猸愨瓙猸?| 猸愨瓙猸?|
|
||||
| **鏈<EFBFBD>潵鎵╁睍** | 猸愨瓙猸愨瓙猸?| 猸愨瓙 |
|
||||
| **鎶曞叆浜у嚭姣?* | 猸愨瓙猸愨瓙猸?| 猸愨瓙 |
|
||||
| **风险** | 低 | 中(技术债) |
|
||||
| **代码质量** | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
|
||||
| **开发效率** | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
|
||||
| **未来扩展** | ⭐⭐⭐⭐⭐ | ⭐⭐ |
|
||||
| **投入产出比** | ⭐⭐⭐⭐⭐ | ⭐⭐ |
|
||||
|
||||
---
|
||||
|
||||
## 馃幆 鏈€缁堝缓璁?
|
||||
## 🎯 最终建议
|
||||
|
||||
### 鎺ㄨ崘鏂规<EFBFBD>锛氱珛鍗宠浆鎹<EFBFBD>onorepo 猸愨瓙猸愨瓙猸?
|
||||
### 推荐方案:立即转换Monorepo ⭐⭐⭐⭐⭐
|
||||
|
||||
**鏍稿績鐞嗙敱锛?*
|
||||
1. 鉁?**鎶曞叆灏忥紝鏀剁泭澶?*锛?-3澶╂崲鏉ユ湭鏉?-8澶╃殑鑺傜渷
|
||||
2. 鉁?**姝e<E5A79D>浜庢渶浣虫椂鏈?*锛氫唬鐮侀噺閫備腑锛屽嵆灏嗗紑鍙戝<E98D99>妯″潡
|
||||
3. 鉁?**绗﹀悎鏈<E6828E>潵瑙勫垝**锛氳繍钀ョ<E99280>鐞嗙<E9909E>銆佺嫭绔嬩骇鍝佸寘銆丒lectron鍗曟満鐗?
|
||||
4. 鉁?**瀛︿範鎴愭湰鍙<E6B9B0>帶**锛氭湁AI鍏ㄧ▼鎸囧<E98EB8>锛屾湁璇︾粏鏂囨。
|
||||
**核心理由:**
|
||||
1. ✅ **投入小,收益大**:2-3天换来未来5-8天的节省
|
||||
2. ✅ **正处于最佳时机**:代码量适中,即将开发多模块
|
||||
3. ✅ **符合未来规划**:运营管理端、独立产品包、Electron单机版
|
||||
4. ✅ **学习成本可控**:有AI全程指导,有详细文档
|
||||
|
||||
**瀹炴柦璁″垝锛?*
|
||||
**实施计划:**
|
||||
```
|
||||
鏈<EFBFBD>懆锛歁onorepo閲嶆瀯锛?-3澶╋級
|
||||
Day 1锛氬<EFBFBD>涔?+ 璁捐<E79281>锛堝崐澶╋級
|
||||
本周:Monorepo重构(2-3天)
|
||||
Day 1:学习 + 设计(半天)
|
||||
Day 2:重构实施(1天)
|
||||
Day 3锛氭祴璇曢獙璇侊紙鍗婂ぉ锛?
|
||||
Day 3:测试验证(半天)
|
||||
|
||||
涓嬪懆锛氱户缁瑼SL妯″潡寮€鍙?
|
||||
- 浜<EFBFBD>彈Monorepo甯︽潵鐨勪究鍒?
|
||||
- 浠g爜澶嶇敤鍙樼畝鍗?
|
||||
- 绫诲瀷鍏变韩寮€绠卞嵆鐢?
|
||||
下周:继续ASL模块开发
|
||||
- 享受Monorepo带来的便利
|
||||
- 代码复用变简单
|
||||
- 类型共享开箱即用
|
||||
```
|
||||
|
||||
**如果您决定采纳,我可以:**
|
||||
1. 鉁?鎻愪緵璇︾粏鐨剆tep-by-step鎸囧<EFBFBD>
|
||||
2. 鉁?甯<>偍璁捐<E79281>鐩<EFBFBD>綍缁撴瀯
|
||||
3. 鉁?缂栧啓閰嶇疆鏂囦欢
|
||||
4. 鉁?鍗忓姪閲嶆瀯鍜屾祴璇?
|
||||
1. ✅ 提供详细的step-by-step指导
|
||||
2. ✅ 帮您设计目录结构
|
||||
3. ✅ 编写配置文件
|
||||
4. ✅ 协助重构和测试
|
||||
|
||||
---
|
||||
|
||||
### 替代方案:延后转换(不推荐)
|
||||
|
||||
**濡傛灉鏃堕棿纭<EFBFBD>疄绱ц揩锛?*
|
||||
**如果时间确实紧迫:**
|
||||
|
||||
**最低要求:**
|
||||
1. 鉁?鍒涘缓`shared/`鐩<EFBFBD>綍瀛樻斁鍏变韩浠g爜
|
||||
2. 鉁?鍒跺畾浠g爜澶嶇敤瑙勮寖
|
||||
3. 鉁?鍦ㄥ紑鍙戣繍钀ョ<E99280>鐞嗙<E9909E>鍓嶅繀椤昏浆鎹?
|
||||
1. ✅ 创建`shared/`目录存放共享代码
|
||||
2. ✅ 制定代码复用规范
|
||||
3. ✅ 在开发运营管理端前必须转换
|
||||
|
||||
**瑙﹀彂鏉′欢锛?*
|
||||
**触发条件:**
|
||||
- 开始开发运营管理端
|
||||
- 代码重复严重
|
||||
- 鍥㈤槦鎴愬憳鎶辨€?
|
||||
- 团队成员抱怨
|
||||
|
||||
---
|
||||
|
||||
**鎮ㄨ<EFBFBD>寰楀憿锛?* 馃槉
|
||||
**您觉得呢?** 😊
|
||||
|
||||
鏄<EFBFBD>惁鎰挎剰鎶曞叆2-3澶╋紝涓烘湭鏉ヨ妭鐪?-8澶╋紵
|
||||
是否愿意投入2-3天,为未来节省5-8天?
|
||||
|
||||
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,88 +1,88 @@
|
||||
# **憯寡<EFBFBD>敺芰<EFBFBD><EFBFBD><EFBFBD> \- AI蝘𤑳<E89D98>鈭批<E988AD><E689B9><EFBFBD>瘙<EFBFBD><E79899>獢?(PRD)**
|
||||
# **壹证循科技 \- AI科研产品需求文档 (PRD)**
|
||||
|
||||
文档版本: 1.0
|
||||
<EFBFBD>交<EFBFBD>: 2025撟?1<>?<3F>?
|
||||
<EFBFBD>湛<EFBFBD> 鈭批<E988AD><E689B9>具<EFBFBD><E585B7><EFBFBD><EFBFBD>粹<EFBFBD><E7B2B9><EFBFBD><EFBFBD><EFBFBD>桅<EFBFBD><E6A185><EFBFBD><EFBFBD><EFBFBD>舫<EFBFBD><E888AB>𠰴<EFBFBD>雿枏<E99BBF>隞?
|
||||
日期: 2025年11月5日
|
||||
致: 产品部、市场部、销售部、技术部及全体同仁
|
||||
|
||||
## **1\. 文档目的**
|
||||
|
||||
<EFBFBD>祇<EFBFBD>瘙<EFBFBD><EFBFBD>獢?(Product Requirements Document, PRD) <EFBFBD>典銁皜<EFBFBD>苊摰帋<EFBFBD>"憯寡<E686AF>敺芰<E695BA><E88AB0><EFBFBD>AI蝘𤑳<E89D98>鈭批<E988AD>"<22><>瓲敹<E793B2><E695B9><EFBFBD>賬<EFBFBD><E8B3AC>𤌍<EFBFBD><F0A48C8D>鍂<EFBFBD>瑕<EFBFBD><E79195>喲睸<E596B2><E79DB8><EFBFBD><EFBFBD>蠘<EFBFBD><E8A098>折<EFBFBD>瘙<EFBFBD><E79899>?
|
||||
本需求文档 (Product Requirements Document, PRD) 旨在清晰定义"壹证循科技AI科研产品"的核心功能、目标用户及关键的非功能性需求。
|
||||
|
||||
<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>摰X<EFBFBD><EFBFBD>函蔡<EFBFBD><EFBFBD>瘙<EFBFBD><EFBFBD>?
|
||||
本文档是跨部门协作的基石,用于确保技术实现、产品设计与市场策略保持高度一致,特别是应对我们复杂的商业模式和多样的客户部署需求。
|
||||
|
||||
## **2\. 鈭批<EFBFBD><EFBFBD>踵艶銝𡒊𤌍<EFBFBD>?*
|
||||
## **2\. 产品愿景与目标**
|
||||
|
||||
鈭批<EFBFBD><EFBFBD>踵艶嚗?
|
||||
<EFBFBD>㯄<EFBFBD>牐<EFBFBD>銝芾<EFBFBD><EFBFBD>碶葩摨羓<EFBFBD><EFBFBD>𥪜<EFBFBD><EFBFBD>笔𦶢<EFBFBD>冽<EFBFBD><EFBFBD><EFBFBD>I撽勗𢆡<EFBFBD><EFBFBD><EFBFBD>蝡坔<EFBFBD><EFBFBD>箄<EFBFBD>蝘𤑳<EFBFBD>撟喳蝱<EFBFBD>?
|
||||
<EFBFBD>詨<EFBFBD><EFBFBD>格<EFBFBD>嚗?
|
||||
韏贝<EFBFBD>銝游<EFBFBD><EFBFBD>餌<EFBFBD><EFBFBD>𣬚<EFBFBD><EFBFBD>𥪯犖<EFBFBD>矋<EFBFBD><EFBFBD>朞<EFBFBD>AI銝舘䌊<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>?
|
||||
产品愿景:
|
||||
打造一个覆盖临床科研全生命周期、AI驱动的一站式智能科研平台。
|
||||
核心目标:
|
||||
赋能临床医生和科研人员,通过AI与自动化工具,极大地提升科研效率、数据处理质量和文献分析深度,缩短从数据到洞察的周期。
|
||||
|
||||
## **3\. 目标用户画像 (User Personas)**
|
||||
|
||||
1. **銝游<EFBFBD><EFBFBD>餌<EFBFBD>/<2F>𠉛弦<F0A0899B>?*嚗?
|
||||
* **<EFBFBD>餃<EFBFBD>**嚗帋<E59A97><E5B88B>脣龫<E884A3>Y<EFBFBD>蝘穃恕銝颱遙<E9A2B1><E98199>蜓瘝餃龫撣<E9BEAB><E692A3><EFBFBD><EFBFBD>蝛嗥<E89D9B><E597A5>?
|
||||
* **<EFBFBD>𤤿<EFBFBD>**嚗𡁏<E59A97>蝘𤑳<E89D98>憿寧𤌍嚗<F0A48C8D><E59A97><EFBFBD>質䌊<E8B3AA>嗚<EFBFBD><E5979A>CP<43><50><EFBFBD>憿暹<E686BF>抒<EFBFBD>蝛塚<E89D9B><E5A19A>见<EFBFBD>嚗䔶<E59A97>銝游<E98A9D>撌乩<E6928C>蝜<EFBFBD><E89D9C>嚗𣬚撩銋譍<E98A8B>銝𡁶<E98A9D>霈∪<E99C88><E288AA>唳旿憭<E697BF><E686AD><EFBFBD>園𡢿<E59C92>?
|
||||
* **<EFBFBD><EFBFBD>瘙?*嚗𡁻<E59A97>閬?撘<>蝞勗朖<E58B97>?<3F><>極<EFBFBD>瘀<EFBFBD>敹恍<E695B9>笔<EFBFBD><E7AC94><EFBFBD>堺<EFBFBD><E5A0BA>㺭<EFBFBD>柴<EFBFBD><E69FB4><EFBFBD><EFBFBD>鞉<EFBFBD><E99E89>柴<EFBFBD><E69FB4><EFBFBD><EFBFBD>鞟<EFBFBD>霈~<E99C88><EFBD9E>兛<EFBFBD>躰捏<E8BAB0><E68D8F><EFBFBD>?*<2A><><EFBFBD><EFBFBD>單釣<E596AE><E987A3><EFBFBD><EFBFBD>㺭<EFBFBD>桅<EFBFBD>蝘<EFBFBD><E89D98>摰匧<E691B0>**<2A>?
|
||||
2. **<EFBFBD>駁堺蝘穃恕/IT<49>券秄**嚗?
|
||||
* **<EFBFBD>餃<EFBFBD>**嚗𡁜龫<F0A1819C>Y<EFBFBD>蝘𤑳<E89D98>蝞∠<E89D9E>蝘穃恕<E7A983><E68195>縑<EFBFBD>臭葉敹<E89189><E695B9>?
|
||||
* **<EFBFBD>𤤿<EFBFBD>**嚗𡁻<E59A97>閬<EFBFBD>蛹<EFBFBD>券堺<E588B8>𣂷<EFBFBD><F0A382B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>虾<EFBFBD>抒<EFBFBD>蝘𤑳<E89D98>撌亙<E6928C>嚗𥕦<E59A97><F0A595A6>𤤿<EFBFBD><F0A4A4BF>娍㺭<E5A88D>殷<EFBFBD>撠文<E692A0><E69687>浹IS<49><53>IS<49>唳旿嚗劐<E59A97><E58A90>坔銁<E59D94>W<EFBFBD><EFBCB7>?
|
||||
* **<EFBFBD><EFBFBD>瘙?*嚗𡁻<E59A97>韐剔<E99F90>撌亙<E6928C>敹<EFBFBD>◆<EFBFBD>舀<EFBFBD>**蝘<><E89D98><EFBFBD>㚚<EFBFBD>蝵?*嚗䔶<E59A97>摰匧<E691B0><E58CA7><EFBFBD>迅摰𠾼<E691B0><F0A0BEBC><EFBFBD>鈭𡒊恣<F0A1928A><E681A3><EFBFBD>?
|
||||
1. **临床医生/研究者**:
|
||||
* **画像**:三甲医院的科室主任、主治医师、研究生。
|
||||
* **痛点**:有科研项目(如国自然、GCP、回顾性研究)压力,但临床工作繁忙,缺乏专业统计和数据处理时间。
|
||||
* **需求**:需要"开箱即用"的工具,快速处理院内数据、分析文献、完成统计、撰写论文。**极其关注患者数据隐私与安全**。
|
||||
2. **医院科室/IT部门**:
|
||||
* **画像**:医院的科研管理科室、信息中心。
|
||||
* **痛点**:需要为全院提供合规、可控的科研工具;希望科研数据(尤其是HIS、LIS数据)保留在院内。
|
||||
* **需求**:采购的工具必须支持**私有化部署**,且安全、稳定、易于管理。
|
||||
|
||||
## **4\. <EFBFBD>詨<EFBFBD><EFBFBD>蠘<EFBFBD><EFBFBD><EFBFBD>瘙?(Functional Requirements)**
|
||||
## **4\. 核心功能需求 (Functional Requirements)**
|
||||
|
||||
鈭批<EFBFBD><EFBFBD>蠘<EFBFBD><EFBFBD>拚猐<EFBFBD>勗<EFBFBD>銝?憭扳瓲敹<E793B2>芋<EFBFBD>梹<EFBFBD><E6A2B9>勗<EFBFBD><E58B97><EFBFBD><EFBFBD>蝘𤑳<E89D98><F0A491B3>冽<EFBFBD>蝔钅𡡒<E99285>胯<EFBFBD>?
|
||||
产品功能矩阵共分为7大核心模块,共同构成科研全流程闭环。
|
||||
|
||||
| 模块ID | 模块名称 | 核心功能描述 |
|
||||
| :---- | :---- | :---- |
|
||||
| **F1** | **<EFBFBD>箄<EFBFBD>蝏蠘恣<EFBFBD><EFBFBD><EFBFBD> (SSA)** | <EFBFBD>𣂷<EFBFBD>3<EFBFBD>⊥瓲敹<EFBFBD><EFBFBD><EFBFBD>鞱楝敺<EFBFBD><EFBFBD><EFBFBD>笔<EFBFBD><EFBFBD>𠉛弦<EFBFBD><EFBFBD><EFBFBD>瘚𧢲芋<EFBFBD>卝<EFBFBD><EFBFBD>CT<EFBFBD>𠉛弦<EFBFBD><EFBFBD><EFBFBD><EFBFBD>唬<EFBFBD><EFBFBD>唳旿銝𠹺<EFBFBD><EFBFBD><EFBFBD>捶<EFBFBD>扼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𣂼<EFBFBD><EFBFBD>亙<EFBFBD>撖澆枂<EFBFBD><EFBFBD><EFBFBD><EFBFBD>湔<EFBFBD>蝔卝<EFBFBD>?|
|
||||
| **F2** | **蝏蠘恣<EFBFBD><EFBFBD><EFBFBD>撌亙<EFBFBD> (ST)** | <EFBFBD>𣂷<EFBFBD>銝<EFBFBD>銝芸<EFBFBD><EFBFBD>?00+蝘滩蝠<E6BBA9>誩<EFBFBD>蝏蠘恣撌亙<E6928C><E4BA99><EFBFBD>極<EFBFBD>瑞拳嚗峕說頞喳朖<E596B3>嗚<EFBFBD><E5979A><EFBFBD><EFBFBD>讠<EFBFBD><E8AEA0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瘙<EFBFBD><E79899>?|
|
||||
| **F3** | **AI<EFBFBD>箄<EFBFBD><EFBFBD>䂿<EFBFBD> (AIA)** | <EFBFBD>𣂷<EFBFBD>10+銝芯<E98A9D>銝鋫I<E98BAB>箄<EFBFBD>雿橒<E99BBF>閬<EFBFBD><E996AC>蝘𤑳<E89D98><F0A491B3>喲睸<E596B2><E79DB8><EFBFBD>嚗𡁻<E59A97>厰<EFBFBD>霂<EFBFBD>遠<EFBFBD><E981A0>ICO璇喟<E79287><E5969F><EFBFBD>甅<EFBFBD>祇<EFBFBD>霈∠<E99C88><E288A0><EFBFBD><EFBFBD>蝛嗆䲮獢<E4B2AE><E78DA2>摰𠾼<E691B0><F0A0BEBC><EFBFBD>蝡䭾隋<E4ADBE>脖<EFBFBD>蝧餉<E89DA7>蝑剹<E89D91>?|
|
||||
| **F4** | **AI<EFBFBD>箄<EFBFBD><EFBFBD><EFBFBD>讃 (ASL)** | <EFBFBD>𣂷<EFBFBD>AI撽勗𢆡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>桀極雿𨀣<EFBFBD>嚗𡁏惣<EFBFBD>賣<EFBFBD>蝝U<EFBFBD><EFBFBD><EFBFBD>憸䀹<EFBFBD>閬<EFBFBD><EFBFBD>蝑䜘<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝑䜘<EFBFBD><EFBFBD>縑<EFBFBD>舀<EFBFBD><EFBFBD>吔<EFBFBD>撟嗆𣈲<EFBFBD><EFBFBD>eta<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>桀㦛靚梁<EFBFBD>摨𠉛鍂<EFBFBD>?|
|
||||
| **F5** | **銝芯犖<EFBFBD>亥<EFBFBD>摨?(PKB)** | <EFBFBD><EFBFBD>捂<EFBFBD>冽<EFBFBD><EFBFBD>𥕦遣蝘<EFBFBD>犖<EFBFBD><EFBFBD>讃摨橒<EFBFBD>憒<EFBFBD><EFBFBD>銝芸<EFBFBD>50蝭<EFBFBD><EFBFBD>嚗<EFBFBD>僎<EFBFBD>賢抅鈭𤾸<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>株<EFBFBD>銵淾I<EFBFBD>桃<EFBFBD>嚗㇌AG嚗剹<EFBFBD>?|
|
||||
| **F6** | **<EFBFBD>唳旿皜<EFBFBD><EFBFBD><EFBFBD>渡<EFBFBD> (DC)** | **(<EFBFBD>詨<EFBFBD><EFBFBD>曄<EFBFBD>)** <20>𣂷<EFBFBD>銝㮖<E98A9D>撌亙<E6928C>嚗<EFBFBD><E59A97><EFBFBD><EFBFBD>龫<EFBFBD>W紡<EFBCB7>箇<EFBFBD>瘚琿<E7989A>嚗<EFBFBD>蓡銝<E893A1><E98A9D>蝥改<E89DA5><E694B9><EFBFBD><EFBFBD>銵冽聢嚗?0+撘𩤃<E69298><F0A9A483><EFBFBD>xcel<65>唳旿嚗<E697BF><E59A97><EFBFBD>唬舅憭批<E686AD><E689B9>踝<EFBFBD> 1\. **銵冽聢ETL**嚗𡁜<E59A97>憭𡁜<E686AD><F0A1819C><EFBFBD>僚<EFBFBD><E5839A><EFBFBD>瘞渲”嚗峕<E59A97>"<22><><EFBFBD><EFBFBD>D"<22>?<3F>園𡢿"<22>滨<EFBFBD>銝箔<E98A9D>撘惩僕<E683A9><E58395><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𣂼捐銵具<E98AB5>?2\. **<EFBFBD><EFBFBD>𧋦<EFBFBD>𣂼<EFBFBD>(NER)**嚗帋<E59A97><E5B88B><EFBFBD><EFBFBD><EFBFBD>亙<EFBFBD><E4BA99><EFBFBD><EFBFBD><EFBFBD>W<EFBFBD>蝏梶<E89D8F>憭扳挾<E689B3><E68CBE>𧋦銝哨<E98A9D><E593A8>芸𢆡<E88AB8>𣂼<EFBFBD>蝏𤘪<E89D8F><F0A498AA>𣇉<EFBFBD><F0A38789>喲睸摮埈挾嚗<E68CBE><E59A97>TNM<4E><4D><EFBFBD>嚗剹<E59A97>?|
|
||||
| **F7** | **銝芯犖銝剖<EFBFBD> (UAM)** | <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>?|
|
||||
| **F1** | **智能统计分析 (SSA)** | 提供3条核心分析路径:队列研究、预测模型、RCT研究。实现从数据上传、质控、分析到报告导出的完整流程。 |
|
||||
| **F2** | **统计分析工具 (ST)** | 提供一个包含100+种轻量化统计工具的工具箱,满足即时、小型的分析需求。 |
|
||||
| **F3** | **AI智能回答 (AIA)** | 提供10+个专业AI智能体,覆盖科研关键节点:选题评价、PICO梳理、样本量计算、研究方案制定、文章润色与翻译等。 |
|
||||
| **F4** | **AI智能文献 (ASL)** | 提供AI驱动的文献工作流:智能检索、标题摘要初筛、全文复筛、信息提取,并支持Meta分析、证据图谱等应用。 |
|
||||
| **F5** | **个人知识库 (PKB)** | 允许用户创建私人文献库(如每个库50篇),并能基于库内文献进行AI问答(RAG)。 |
|
||||
| **F6** | **数据清洗整理 (DC)** | **(核心难点)** 提供专业工具,处理医院导出的海量(百万行级)、多表格(10+张)的Excel数据,实现两大功能: 1\. **表格ETL**:将多张散乱的流水表,按"患者ID"和"时间"重组为一张干净的分析宽表。 2\. **文本提取(NER)**:从病理报告、住院小结等大段文本中,自动提取结构化的关键字段(如TNM分期)。 |
|
||||
| **F7** | **个人中心 (UAM)** | 提供账户管理、版本信息、帮助中心、订单管理等基础支撑功能。 |
|
||||
|
||||
## **5\. <EFBFBD>喲睸<EFBFBD>𧼮<EFBFBD><EFBFBD>賣<EFBFBD>折<EFBFBD>瘙?(Non-Functional Requirements)**
|
||||
## **5\. 关键非功能性需求 (Non-Functional Requirements)**
|
||||
|
||||
餈蹱糓<EFBFBD>砌漣<EFBFBD><EFBFBD>銁<EFBFBD><EFBFBD><EFBFBD><EFBFBD>典嘀銝?*<2A><>憭齿<E686AD><E9BDBF><EFBFBD><EFBFBD><EFBFBD>詨<EFBFBD>**<2A><><EFBFBD>瘙<EFBFBD><E79899><EFBFBD>舀<EFBFBD><E88880>舀沲<E88880><E6B2B2><EFBFBD>憿餉圾<E9A489>喟<EFBFBD><E5969F>喲睸<E596B2>烐<EFBFBD><E78390>?
|
||||
这是本产品在商业推广中**最复杂、最核心**的需求,是技术架构必须解决的关键挑战。
|
||||
|
||||
### **NFR-1: <EFBFBD>函蔡璅∪<EFBFBD><EFBFBD>菜暑<EFBFBD>?(Deployment Flexibility)**
|
||||
### **NFR-1: 部署模式灵活性 (Deployment Flexibility)**
|
||||
|
||||
鈭批<EFBFBD>敹<EFBFBD>◆<EFBFBD>舀<EFBFBD>隞乩<EFBFBD><EFBFBD>𤤿<EFBFBD><EFBFBD>函蔡敶X<EFBFBD><EFBFBD><EFBFBD>隞交說頞喃<EFBFBD><EFBFBD><EFBFBD>恥<EFBFBD>瘀<EFBFBD>撠文<EFBFBD><EFBFBD>臬龫<EFBFBD>g<EFBFBD>撖寞㺭<EFBFBD>桀<EFBFBD><EFBFBD>典<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>抒<EFBFBD>銝亥<EFBFBD>閬<EFBFBD><EFBFBD><EFBFBD>?
|
||||
产品必须支持以下四种部署形态,以满足不同客户(尤其是医院)对数据安全和合规性的严苛要求。
|
||||
|
||||
| <EFBFBD>函蔡敶X<EFBFBD>?| <20>讛膩 | <20>喲睸閬<E79DB8><E996AC> |
|
||||
| 部署形态 | 描述 | 关键要求 |
|
||||
| :---- | :---- | :---- |
|
||||
| **鈭𤑳垢SaaS<EFBFBD>?* | (暺䁅恕) 鈭批<E988AD><E689B9>函蔡<E587BD>典<EFBFBD><E585B8>劐<EFBFBD>嚗𣬚鍂<F0A3AC9A>琿<EFBFBD>朞<EFBFBD>瘚讛<E7989A><E8AE9B>冽<EFBFBD><E586BD><EFBFBD>霈a<E99C88>雿輻鍂<E8BCBB>?| 敹<>◆<EFBFBD>舀<EFBFBD>憭𡁶<E686AD><F0A181B6>瑯<EFBFBD><E791AF><EFBFBD><EFBFBD>舐鍂<E88890>?|
|
||||
| **蝘<EFBFBD><EFBFBD><EFBFBD>㚚<EFBFBD>蝵?* | (<28>駁堺/<2F>箸<EFBFBD>) 撠?*<2A>港葵撟喳蝱**<EFBFBD>?*<2A><><EFBFBD>璅∪<E79285>**嚗<><E59A97>DC, SSA嚗厰<E59A97>蝵脣銁摰X<E691B0><EFBCB8><EFBFBD><EFBFBD>蝵烐<E89DB5><E78390>∪膥銝𨳍<E98A9D>?| 敹<>◆<EFBFBD>𣂷<EFBFBD>摰孵膥<E5ADB5>吔<EFBFBD>Docker/K8s嚗厩<E59A97>銝<EFBFBD><E98A9D>桅<EFBFBD>蝵脫䲮獢<E4B2AE><E78DA2><EFBFBD>㺭<EFBFBD>?00%銝滚枂<E6BB9A><E69E82><EFBFBD><EFBFBD>?|
|
||||
| **<EFBFBD>閙㦤<EFBFBD>?* | (銝芯犖<E88AAF>餌<EFBFBD>) <20>𣂷<EFBFBD>**<2A>臬<EFBFBD>鋆<EFBFBD><E98B86>獢屸𢒰摨𠉛鍂(Windows/Mac)**嚗屸<E59A97>撖道C<E98193><43>SA<53><41>SL蝑㗇瓲敹<E793B2>芋<EFBFBD>𨰜<EFBFBD>?| **<EFBFBD>唳旿100%<25>砍𧑐<E7A08D>?*<2A><><EFBFBD><EFBFBD>柴<EFBFBD><E69FB4><EFBFBD>靘见<E99D98>憪𧢲<E686AA>隞嗡艇蝳<E88987><E89DB3>隡𨬭<E99AA1><F0A8ACAD><EFBFBD>憿餅𣈲<E9A485><F0A388B2>氖蝥輯<E89DA5>銵䕘<E98AB5>憒<EFBFBD>C, SSA嚗剹<E59A97>?*(靘见<E99D98>嚗鋫SL璅∪<E79285><E288AA>臬<EFBFBD><E887AC>扯<EFBFBD><E689AF>其<EFBFBD>蝡烊LM嚗䔶<E59A97>隞<EFBFBD><E99A9E><EFBFBD>煾<EFBFBD>?<3F>䁅<EFBFBD>"<22>屸<EFBFBD>"<22><><EFBFBD>")* |
|
||||
| **云端SaaS版** | (默认) 产品部署在公有云,用户通过浏览器按需订阅使用。 | 必须支持多租户、高可用。 |
|
||||
| **私有化部署** | (医院/机构) 将**整个平台**或**指定模块**(如DC, SSA)部署在客户的内网服务器上。 | 必须提供容器化(Docker/K8s)的一键部署方案。数据100%不出内网。 |
|
||||
| **单机版** | (个人医生) 提供**可安装的桌面应用(Windows/Mac)**,针对DC、SSA、ASL等核心模块。 | **数据100%本地化**。文献、病例原始文件严禁上传。必须支持离线运行(如DC, SSA)。 *(例外:ASL模块可受控调用云端LLM,但仅限发送"摘要"而非"原文")* |
|
||||
|
||||
### **NFR-2: <EFBFBD><EFBFBD><EFBFBD>璅∪<EFBFBD><EFBFBD>舫<EFBFBD>蝵?(Commercial Flexibility)**
|
||||
### **NFR-2: 商业模式可配置 (Commercial Flexibility)**
|
||||
|
||||
鈭批<EFBFBD><EFBFBD>嗆<EFBFBD>敹<EFBFBD>◆<EFBFBD>舀<EFBFBD><EFBFBD><EFBFBD><EFBFBD>桀<EFBFBD>撣<EFBFBD>㦤蝑𣇉裦<EFBFBD><EFBFBD><EFBFBD>瘣餅<EFBFBD>扼<EFBFBD>?
|
||||
产品架构必须支持销售和市场策略的灵活性。
|
||||
|
||||
1. **SaaS憭𡁶<EFBFBD><EFBFBD>?(Tiered SaaS)**
|
||||
* **<EFBFBD><EFBFBD>瘙?*嚗帋<E59A97>蝡特aaS<61><53><EFBFBD>憿餅𣈲<E9A485><F0A388B2>秐撠睲<E692A0>銝芰<E98A9D>蝥改<E89DA5>**銝㮖<E98A9D><E3AE96><EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝥抒<E89DA5><E68A92><EFBFBD><EFBFBD><EFBFBD>啁<EFBFBD>**<2A>?
|
||||
* **摰䂿緵**嚗𡁜<E59A97>蝡舫<E89DA1><E888AB>瑕<EFBFBD>摰<EFBFBD><E691B0><EFBFBD><EFBFBD>*\*<2A>蠘<EFBFBD>撘<EFBFBD><E69298>?Feature Flag)\*\*蝟餌<E89D9F>嚗諹<E59A97><E8ABB9>厩<EFBFBD><E58EA9>祇<EFBFBD><E7A587>嗥鍂<E597A5>瑕虾<E79195>函<EFBFBD><E587BD>蠘<EFBFBD>璅∪<E79285><E288AA><EFBFBD>蝙<EFBFBD>冽活<E586BD>啜<EFBFBD><E5959C>I璅∪<E79285>蝑剹<E89D91>?
|
||||
2. **璅∪<EFBFBD><EFBFBD>硋睸<EFBFBD>?(Modular Sales)**
|
||||
* **<EFBFBD><EFBFBD>瘙?*嚗帋遙雿蓥<E99BBF>銝芸<E98A9D><E88AB8>賣芋<E8B3A3>梹<EFBFBD>憒<EFBFBD>4: AI<41>箄<EFBFBD><E7AE84><EFBFBD>讃嚗厰<E59A97>**敹<>◆<EFBFBD>?*鋡怎𡠺蝡𧢲<E89DA1><F0A7A2B2><EFBFBD><EFBFBD>雿靝蛹<E99D9D>閧𡠺<E996A7><F0A1A0BA>漣<EFBFBD><E6BCA3><EFBFBD>銵<EFBFBD>睸<EFBFBD>硔<EFBFBD>?
|
||||
* **摰䂿緵**嚗𡁏<E59A97><F0A1818F>舀沲<E88880><E6B2B2><EFBFBD>憿餅糓"<22>曇<EFBFBD>血<EFBFBD>"<22><><EFBFBD>蝖桐<E89D96>璅∪<E79285><E288AA>湔瓷<E6B994>厩′靘肽<E99D98><E882BD>?
|
||||
1. **SaaS多版本 (Tiered SaaS)**
|
||||
* **需求**:云端SaaS版必须支持至少三个等级:**专业版、高级版、旗舰版**。
|
||||
* **实现**:后端需具备完善的\*\*功能开关(Feature Flag)\*\*系统,能按版本限制用户可用的功能模块、使用次数、AI模型等。
|
||||
2. **模块化售卖 (Modular Sales)**
|
||||
* **需求**:任何一个功能模块(如F4: AI智能文献)都**必须能**被独立打包,作为单独的产品进行售卖。
|
||||
* **实现**:技术架构必须是"松耦合"的,确保模块间没有硬依赖。
|
||||
3. **AI成本可控 (Configurable AI)**
|
||||
* **<EFBFBD><EFBFBD>瘙?*嚗帋蛹摨𥪜笆銝滚<E98A9D>摰X<E691B0><EFBCB8><EFBFBD><EFBFBD><EFBFBD>祆<EFBFBD><E7A586>笔漲嚗<E6BCB2>像<EFBFBD>啣<EFBFBD>憿餅𣈲<E9A485>?*<2A>冽<EFBFBD><E586BD><EFBFBD><EFBFBD>?*<2A>𡒊垢<F0A1928A><E59EA2>之霂剛<E99C82>璅∪<E79285><E288AA>?
|
||||
* **摰䂿緵**嚗帋<E59A97>憒<EFBFBD><E68692>銝㮖<E98A9D><E3AE96><EFBFBD>鍂<EFBFBD>琿<EFBFBD>霈方<E99C88><E696B9>冽<EFBFBD><E586BD>祈<EFBFBD>雿𡒊<E99BBF>DeepSeek嚗峕<E59A97><E5B395>啁<EFBFBD><E59581>冽<EFBFBD><E586BD>航<EFBFBD><E888AA>冽凒擃䁅捶<E48185>讐<EFBFBD>Claude<64>𨰦PT<50>?
|
||||
* **需求**:为应对不同客户的成本敏感度,平台必须支持**动态切换**后端的大语言模型。
|
||||
* **实现**:例如,专业版用户默认调用成本较低的DeepSeek,旗舰版用户可调用更高质量的Claude或GPT。
|
||||
|
||||
### **NFR-3: 平台与性能 (Platform & Performance)**
|
||||
|
||||
1. **撟喳蝱<EFBFBD>澆捆<EFBFBD>?*嚗?
|
||||
* Web<EFBFBD><EFBFBD><EFBFBD>敹<EFBFBD>◆<EFBFBD>舀<EFBFBD><EFBFBD><EFBFBD><EFBFBD>厩緵隞<EFBFBD><EFBFBD>閫<EFBFBD>膥嚗㇃hrome, Edge, Firefox, Safari嚗剹<EFBFBD>?
|
||||
* <EFBFBD>閙㦤<EFBFBD><EFBFBD><EFBFBD>敹<EFBFBD>◆<EFBFBD>舀<EFBFBD> **Windows 10 (64雿?<3F>𠹺誑銝?* <20>?**macOS (Intel & Apple Silicon)**<EFBFBD>?
|
||||
* **<EFBFBD>鞾<EFBFBD><EFBFBD>嫘<EFBFBD>烐<EFBFBD>蝖桐<EFBFBD><EFBFBD>舀<EFBFBD>**嚗帋蛹靽肽<E99DBD>鈭批<E988AD>蝔喳<E89D94><E596B3>批<EFBFBD><E689B9>唳旿摰匧<E691B0>嚗<EFBFBD><E59A97><EFBFBD>箇<EFBFBD>**銝齿𣈲<E9BDBF>?*隞颱<E99A9E>32雿齿<E99BBF>雿𦦵頂蝏笔<E89D8F>Windows 7蝑匧歇<E58CA7>𨀣迫<F0A880A3>滚𦛚<E6BB9A><F0A69B9A>頂蝏麄<E89D8F>?
|
||||
2. **<EFBFBD>唳旿憭<EFBFBD><EFBFBD><EFBFBD>扯<EFBFBD> (DC璅∪<E79285>)**嚗?
|
||||
* 鈭批<EFBFBD>嚗<EFBFBD>陘<EFBFBD>嗆糓<EFBFBD>閙㦤<EFBFBD><EFBFBD><EFBFBD>敹<EFBFBD>◆<EFBFBD>賜迅摰𡁜<EFBFBD><EFBFBD><EFBFBD>蓡銝<EFBFBD><EFBFBD>蝥批<EFBFBD><EFBFBD><EFBFBD><EFBFBD>銵汞xcel<EFBFBD>唳旿嚗?*銝亦<E98A9D>**<2A>惩<EFBFBD>摮䀹滯<E480B9>箄<EFBFBD><E7AE84>紡<EFBFBD>渡<EFBFBD>摨誩援皞<E68FB4><E79A9E>?
|
||||
* 鈭批<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>?
|
||||
3. **<EFBFBD><EFBFBD>𧋦<EFBFBD>𣂼<EFBFBD>韐券<EFBFBD> (DC璅∪<E79285>)**嚗?
|
||||
* 鈭批<EFBFBD>敹<EFBFBD>◆<EFBFBD>賣<EFBFBD>靘偦<EFBFBD><EFBFBD><EFBFBD>&<EFBFBD><EFBFBD><EFBFBD><EFBFBD>餃郎<EFBFBD><EFBFBD>𧋦<EFBFBD>𣂼<EFBFBD><EFBFBD>?
|
||||
* **<EFBFBD>滚𦛚<EFBFBD>函<EFBFBD>嚗<EFBFBD><EFBFBD>隡䁅圾嚗?*嚗𡁜<E59A97>雿輻鍂SOTA嚗<41><E59A97><EFBFBD>屸▲撠吔<E692A0><E59094><EFBFBD>LM嚗<4D><E59A97>Claude 3嚗劐誑靽肽<E99DBD><E882BD><EFBFBD>擃䁅捶<E48185>譌<EFBFBD>?
|
||||
* **<EFBFBD>閙㦤<EFBFBD><EFBFBD><EFBFBD>憒亙<EFBFBD>閫<EFBFBD><EFBFBD>**嚗帋蛹靽肽<E99DBD><E882BD>唳旿<E594B3>鞟<EFBFBD>嚗<EFBFBD><E59A97>憿颱蝙<E9A2B1>?00%<25>砍𧑐餈鞱<E9A488><E99EB1><EFBFBD>LP璅∪<E79285>嚗<EFBFBD><E59A97>spaCy嚗㚁<E59A97><E39A81>其<EFBFBD><E585B6>日<EFBFBD>蝘<EFBFBD><E89D98><EFBFBD>齿<EFBFBD>銝见偷<E8A781>𥟇<EFBFBD>擃睃<E69383>蝖桃<E89D96><E6A183>?
|
||||
1. **平台兼容性**:
|
||||
* Web版:必须支持所有现代浏览器(Chrome, Edge, Firefox, Safari)。
|
||||
* 单机版:必须支持 **Windows 10 (64位)及以上** 和 **macOS (Intel & Apple Silicon)**。
|
||||
* **【重点】明确不支持**:为保证产品稳定性和数据安全,单机版**不支持**任何32位操作系统及Windows 7等已停止服务的系统。
|
||||
2. **数据处理性能 (DC模块)**:
|
||||
* 产品(尤其是单机版)必须能稳定处理百万行级别的多表Excel数据,**严禁**因内存溢出而导致程序崩溃。
|
||||
* 产品(服务器版)在处理相同数据时,应追求极致效率,在数分钟内完成处理。
|
||||
3. **文本提取质量 (DC模块)**:
|
||||
* 产品必须能提供高准确率的医学文本提取。
|
||||
* **服务器版(最优解)**:应使用SOTA(业界顶尖)的LLM(如Claude 3)以保证最高质量。
|
||||
* **单机版(妥协解)**:为保证数据隐私,必须使用100%本地运行的NLP模型(如spaCy),在保护隐私的前提下尽力提高准确率。
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# 核心业务规则总览
|
||||
|
||||
> **鐗堟湰锛?* v1.0
|
||||
> **鍒涘缓鏃ユ湡锛?* 2025-10-10
|
||||
> **閫傜敤鑼冨洿锛?* 鏁翠釜绯荤粺
|
||||
> **版本:** v1.0
|
||||
> **创建日期:** 2025-10-10
|
||||
> **适用范围:** 整个系统
|
||||
|
||||
---
|
||||
|
||||
@@ -10,9 +10,9 @@
|
||||
|
||||
1. [用户管理规则](#用户管理规则)
|
||||
2. [项目管理规则](#项目管理规则)
|
||||
3. [鏅鸿兘浣撶<EFBFBD>鐞嗚<EFBFBD>鍒橾(#鏅鸿兘浣撶<EFBFBD>鐞嗚<EFBFBD>鍒?
|
||||
3. [智能体管理规则](#智能体管理规则)
|
||||
4. [对话管理规则](#对话管理规则)
|
||||
5. [鐭ヨ瘑搴撶<EFBFBD>鐞嗚<EFBFBD>鍒橾(#鐭ヨ瘑搴撶<EFBFBD>鐞嗚<EFBFBD>鍒?
|
||||
5. [知识库管理规则](#知识库管理规则)
|
||||
6. [权限控制规则](#权限控制规则)
|
||||
7. [配额限制规则](#配额限制规则)
|
||||
|
||||
@@ -22,43 +22,43 @@
|
||||
|
||||
### 注册规则
|
||||
|
||||
**BR-U001: 閭<EFBFBD><EFBFBD>鍞<EFBFBD>竴鎬?*
|
||||
- 瑙勫垯锛氭瘡涓<EFBFBD>偖绠卞彧鑳芥敞鍐屼竴涓<EFBFBD>处鍙?
|
||||
**BR-U001: 邮箱唯一性**
|
||||
- 规则:每个邮箱只能注册一个账号
|
||||
- 验证时机:注册时
|
||||
- 閿欒<EFBFBD>鎻愮ず锛?璇ラ偖绠卞凡琚<E587A1>敞鍐?
|
||||
- 错误提示:"该邮箱已被注册"
|
||||
|
||||
**BR-U002: 邮箱格式验证**
|
||||
- 瑙勫垯锛氬繀椤绘槸鏈夋晥鐨勯偖绠辨牸寮?
|
||||
- 规则:必须是有效的邮箱格式
|
||||
- 正则:`^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}$`
|
||||
- 閿欒<EFBFBD>鎻愮ず锛?閭<><E996AD>鏍煎紡涓嶆<E6B693>纭?
|
||||
- 错误提示:"邮箱格式不正确"
|
||||
|
||||
**BR-U003: 密码强度**
|
||||
- 瑙勫垯锛氬瘑鐮佽嚦灏?浣嶏紝鍖呭惈瀛楁瘝鍜屾暟瀛?
|
||||
- 规则:密码至少8位,包含字母和数字
|
||||
- 正则:`^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d@$!%*#?&]{8,}$`
|
||||
- 閿欒<EFBFBD>鎻愮ず锛?瀵嗙爜鑷冲皯8浣嶏紝闇€鍖呭惈瀛楁瘝鍜屾暟瀛?
|
||||
- 错误提示:"密码至少8位,需包含字母和数字"
|
||||
|
||||
**BR-U004: 榛樿<EFBFBD>璇曠敤鏈?*
|
||||
**BR-U004: 默认试用期**
|
||||
- 规则:新用户默认获得30天试用期
|
||||
- 实现:`trial_ends_at = now() + 30天`
|
||||
|
||||
### 登录规则
|
||||
|
||||
**BR-U005: 璐︽埛鐘舵€佹<EFBFBD>鏌?*
|
||||
- 瑙勫垯锛氬彧鏈塻tatus=active鐨勭敤鎴峰彲浠ョ櫥褰?
|
||||
**BR-U005: 账户状态检查**
|
||||
- 规则:只有status=active的用户可以登录
|
||||
- 状态:
|
||||
- `active` - 鍙<EFBFBD>櫥褰?
|
||||
- `active` - 可登录
|
||||
- `inactive` - 未激活,不可登录
|
||||
- `suspended` - 已暂停,不可登录
|
||||
|
||||
**BR-U006: 密码错误次数限制**
|
||||
- 瑙勫垯锛?鍒嗛挓鍐呮渶澶?娆¢敊璇<E6958A>皾璇?
|
||||
- 瓒呰繃娆℃暟锛氫复鏃堕攣瀹氳处鎴?5鍒嗛挓
|
||||
- 规则:5分钟内最多5次错误尝试
|
||||
- 超过次数:临时锁定账户15分钟
|
||||
- 实现:使用Redis记录失败次数
|
||||
|
||||
**BR-U007: JWT Token鏈夋晥鏈?*
|
||||
- Access Token锛?澶?
|
||||
- Refresh Token锛?0澶?
|
||||
- 杩囨湡鍚庨渶瑕侀噸鏂扮櫥褰?
|
||||
**BR-U007: JWT Token有效期**
|
||||
- Access Token:7天
|
||||
- Refresh Token:30天
|
||||
- 过期后需要重新登录
|
||||
|
||||
---
|
||||
|
||||
@@ -66,92 +66,92 @@
|
||||
|
||||
### 创建规则
|
||||
|
||||
**BR-P001: 椤圭洰鏁伴噺鏃犻檺鍒?*
|
||||
**BR-P001: 项目数量无限制**
|
||||
- 规则:用户可以创建任意数量的项目
|
||||
- 鐞嗙敱锛氶」鐩<EFBFBD>槸鏍稿績鍔熻兘锛屼笉搴旈檺鍒?
|
||||
- 理由:项目是核心功能,不应限制
|
||||
|
||||
**BR-P002: 项目名称必填**
|
||||
- 瑙勫垯锛氶」鐩<EFBFBD>悕绉颁笉鑳戒负绌?
|
||||
- 闀垮害锛?-200瀛楃<EFBFBD>
|
||||
- 閿欒<EFBFBD>鎻愮ず锛?椤圭洰鍚嶇О涓嶈兘涓虹┖"
|
||||
- 规则:项目名称不能为空
|
||||
- 长度:1-200字符
|
||||
- 错误提示:"项目名称不能为空"
|
||||
|
||||
**BR-P003: 项目描述必填**
|
||||
- 规则:项目描述不能为空(用于上下文注入)
|
||||
- 最小长度:10字符
|
||||
- 閿欒<EFBFBD>鎻愮ず锛?璇疯緭鍏ラ」鐩<E3808D>儗鏅<E58497>俊鎭<E4BF8A>紝鑷冲皯10涓<30>瓧绗?
|
||||
- 错误提示:"请输入项目背景信息,至少10个字符"
|
||||
|
||||
### 更新规则
|
||||
|
||||
**BR-P004: 椤圭洰鑳屾櫙鍔ㄦ€佹洿鏂?*
|
||||
- 瑙勫垯锛氱敤鎴峰彲浠ラ殢鏃剁紪杈戦」鐩<EFBFBD>弿杩?
|
||||
- 瑙勫垯锛氬彲浠?鍥哄畾"AI鍥炲<E98DA5>鍒伴」鐩<E3808D>弿杩颁腑
|
||||
**BR-P004: 项目背景动态更新**
|
||||
- 规则:用户可以随时编辑项目描述
|
||||
- 规则:可以"固定"AI回复到项目描述中
|
||||
- 实现:追加到description字段末尾
|
||||
|
||||
**BR-P005: 项目所有权验证**
|
||||
- 瑙勫垯锛氬彧鑳戒慨鏀?鍒犻櫎鑷<E6AB8E>繁鐨勯」鐩?
|
||||
- 规则:只能修改/删除自己的项目
|
||||
- 验证:`project.userId === currentUser.id`
|
||||
- 閿欒<EFBFBD>鎻愮ず锛?鏃犳潈闄愭搷浣滆<E6B5A3>椤圭洰"
|
||||
- 错误提示:"无权限操作该项目"
|
||||
|
||||
### 删除规则
|
||||
|
||||
**BR-P006: 级联删除**
|
||||
- 规则:删除项目时,级联删除其所有对话和消息
|
||||
- 实现:数据库ON DELETE CASCADE
|
||||
- 纭<EFBFBD><EFBFBD>锛氬墠绔<EFBFBD>渶瑕佷簩娆$‘璁?
|
||||
- 确认:前端需要二次确认
|
||||
|
||||
**BR-P007: 软删除(可选)**
|
||||
- 瑙勫垯锛氶噸瑕侀」鐩<EFBFBD>彲浠ュ厛杞<EFBFBD>垹闄わ紝淇濈暀30澶?
|
||||
- 规则:重要项目可以先软删除,保留30天
|
||||
- 实现:添加deleted_at字段
|
||||
- 澶囨敞锛氬綋鍓嶇増鏈<EFBFBD>殏涓嶅疄鐜?
|
||||
- 备注:当前版本暂不实现
|
||||
|
||||
---
|
||||
|
||||
## 鏅鸿兘浣撶<EFBFBD>鐞嗚<EFBFBD>鍒?
|
||||
## 智能体管理规则
|
||||
|
||||
### 鏅鸿兘浣撻厤缃?
|
||||
### 智能体配置
|
||||
|
||||
**BR-A001: 智能体配置化管理**
|
||||
- 规则:智能体配置存储在`config/agents.yaml`
|
||||
- 瑙勫垯锛氫笉閫氳繃鏁版嵁搴撶<EFBFBD>鐞?
|
||||
- 瑙勫垯锛氫慨鏀归厤缃<EFBFBD>悗闇€瑕侀噸鍚<EFBFBD>湇鍔?
|
||||
- 规则:不通过数据库管理
|
||||
- 规则:修改配置后需要重启服务
|
||||
|
||||
**BR-A002: 鏅鸿兘浣撶姸鎬?*
|
||||
**BR-A002: 智能体状态**
|
||||
- `active` - 可用,用户可以选择
|
||||
- `inactive` - 不可用,隐藏
|
||||
- `testing` - 测试中,仅管理员可见
|
||||
|
||||
**BR-A003: 鏅鸿兘浣撳垎绫?*
|
||||
- 閫夐<EFBFBD>闃舵<EFBFBD>锛氶€夐<EFBFBD>璇勪环銆佺<EFBFBD>瀛﹂棶棰樻⒊鐞?
|
||||
- 鐮旂┒璁捐<EFBFBD>锛歅ICOS鏋勫缓銆佽<EFBFBD>瀵熸寚鏍囪<EFBFBD>璁°€丆RF鍒跺畾銆佹牱鏈<EFBFBD>噺璁$畻銆佷复搴婄爺绌舵柟妗堟挵鍐?
|
||||
- 璁烘枃闃舵<EFBFBD>锛氳<EFBFBD>鏂囨鼎鑹层€佽<EFBFBD>鏂囩炕璇戙€佹柟娉曞<EFBFBD>璇勫<EFBFBD>銆佹湡鍒婃柟娉曞<EFBFBD>璇勫<EFBFBD>銆佹湡鍒婄ǹ绾﹁瘎瀹?
|
||||
**BR-A003: 智能体分类**
|
||||
- 选题阶段:选题评价、科学问题梳理
|
||||
- 研究设计:PICOS构建、观察指标设计、CRF制定、样本量计算、临床研究方案撰写
|
||||
- 论文阶段:论文润色、论文翻译、方法学评审、期刊方法学评审、期刊稿约评审
|
||||
|
||||
### Prompt管理
|
||||
|
||||
**BR-A004: Prompt文件管理**
|
||||
- 规则:Prompt存储在`backend/prompts/`目录
|
||||
- 鍛藉悕锛歚{agent_id}_system.txt` 鍜?`{agent_id}_user.txt`
|
||||
- 命名:`{agent_id}_system.txt` 和 `{agent_id}_user.txt`
|
||||
- 版本:通过Git管理版本
|
||||
|
||||
**BR-A005: Prompt变量注入**
|
||||
- 瑙勫垯锛歅rompt涓<EFBFBD>彲浠ヤ娇鐢ㄥ彉閲?
|
||||
- 规则:Prompt中可以使用变量
|
||||
- 格式:`{variable_name}`
|
||||
- 示例:`{project_description}`, `{user_question}`
|
||||
|
||||
### 模型配置
|
||||
|
||||
**BR-A006: 模型参数配置**
|
||||
- 瑙勫垯锛氭瘡涓<EFBFBD>櫤鑳戒綋鍙<EFBFBD>互閰嶇疆涓嶅悓妯″瀷鐨勫弬鏁?
|
||||
- 鍙傛暟锛?
|
||||
- 规则:每个智能体可以配置不同模型的参数
|
||||
- 参数:
|
||||
- `temperature`: 0.0-1.0
|
||||
- `max_tokens`: 鏈€澶ц緭鍑簍oken鏁?
|
||||
- `max_tokens`: 最大输出token数
|
||||
- `top_p`: 0.0-1.0
|
||||
|
||||
**BR-A007: 模型切换**
|
||||
- 瑙勫垯锛氱敤鎴峰彲浠ュ湪瀵硅瘽涓<EFBFBD>垏鎹㈡ā鍨?
|
||||
- 规则:用户可以在对话中切换模型
|
||||
- 可选模型:
|
||||
- `deepseek-v3` (默认)
|
||||
- `qwen3-72b`
|
||||
- `gemini-2.0-flash` (鍙<EFBFBD>€?
|
||||
- `gemini-2.0-flash` (可选)
|
||||
|
||||
---
|
||||
|
||||
@@ -160,40 +160,40 @@
|
||||
### 创建对话
|
||||
|
||||
**BR-C001: 对话归属**
|
||||
- 瑙勫垯锛氬<EFBFBD>璇濆彲浠ュ睘浜庨」鐩<EFBFBD>紝涔熷彲浠ユ槸鍏ㄥ眬蹇<EFBFBD>€熼棶绛?
|
||||
- 规则:对话可以属于项目,也可以是全局快速问答
|
||||
- 项目对话:`projectId` 不为null
|
||||
- 全局快速问答:`projectId` 为null
|
||||
|
||||
**BR-C002: 对话标题自动生成**
|
||||
- 瑙勫垯锛氶<EFBFBD>娆″垱寤哄<EFBFBD>璇濇椂锛屾爣棰樹负"涓巤鏅鸿兘浣撳悕绉皚鐨勫<E990A8>璇?
|
||||
- 瑙勫垯锛氬彲浠ユ墜鍔ㄤ慨鏀规爣棰?
|
||||
- 规则:首次创建对话时,标题为"与{智能体名称}的对话"
|
||||
- 规则:可以手动修改标题
|
||||
|
||||
### 涓婁笅鏂囩<EFBFBD>鐞?
|
||||
### 上下文管理
|
||||
|
||||
**BR-C003: 项目背景自动注入**
|
||||
- 瑙勫垯锛氬<EFBFBD>鏋滃<EFBFBD>璇濆睘浜庨」鐩<EFBFBD>紝鑷<EFBFBD>姩灏嗛」鐩甦escription娉ㄥ叆涓婁笅鏂?
|
||||
- 规则:如果对话属于项目,自动将项目description注入上下文
|
||||
- 注入位置:System prompt之后
|
||||
- 格式:`# 项目背景\n{project.description}`
|
||||
|
||||
**BR-C004: 历史对话管理**
|
||||
- 瑙勫垯锛氫繚鐣欐渶杩?0杞<30><E69D9E>璇濅綔涓轰笂涓嬫枃
|
||||
- 瑙勫垯锛氳秴杩?0杞<30>殑瀵硅瘽锛岃繘琛屾憳瑕佸帇缂?
|
||||
- 规则:保留最近10轮对话作为上下文
|
||||
- 规则:超过10轮的对话,进行摘要压缩
|
||||
- Token限制:上下文总token数不超过6000
|
||||
|
||||
**BR-C005: 鐭ヨ瘑搴撳紩鐢?*
|
||||
- 瑙勫垯锛氱敤鎴峰彲浠ラ€氳繃`@鐭ヨ瘑搴撳悕绉癭寮曠敤鐭ヨ瘑搴?
|
||||
- 瑙勫垯锛氭渶澶氬悓鏃跺紩鐢?涓<>煡璇嗗簱
|
||||
**BR-C005: 知识库引用**
|
||||
- 规则:用户可以通过`@知识库名称`引用知识库
|
||||
- 规则:最多同时引用3个知识库
|
||||
- 检索数量:每个知识库检索Top 5结果
|
||||
|
||||
### 消息固定
|
||||
|
||||
**BR-C006: 鍥哄畾娑堟伅鍒伴」鐩<EFBFBD>儗鏅?*
|
||||
- 瑙勫垯锛氬彧鏈堿I鍥炲<EFBFBD>鍙<EFBFBD>互琚<EFBFBD>浐瀹?
|
||||
- 瑙勫垯锛氬彧鏈夐」鐩<EFBFBD>唴瀵硅瘽鍙<EFBFBD>互鍥哄畾锛堝叏灞€瀵硅瘽涓嶅彲锛?
|
||||
**BR-C006: 固定消息到项目背景**
|
||||
- 规则:只有AI回复可以被固定
|
||||
- 规则:只有项目内对话可以固定(全局对话不可)
|
||||
- 实现:追加到project.description末尾
|
||||
- 鏍煎紡锛?
|
||||
- 格式:
|
||||
```
|
||||
--- 鏉ヨ嚜瀵硅瘽鐨勮ˉ鍏?---
|
||||
--- 来自对话的补充 ---
|
||||
{message.content}
|
||||
```
|
||||
|
||||
@@ -205,83 +205,83 @@
|
||||
|
||||
**BR-C008: Server-Sent Events**
|
||||
- 规则:使用SSE实现流式输出
|
||||
- 浜嬩欢绫诲瀷锛?
|
||||
- `start`: 寮€濮嬬敓鎴?
|
||||
- 事件类型:
|
||||
- `start`: 开始生成
|
||||
- `token`: 每个token
|
||||
- `done`: 完成
|
||||
- `error`: 错误
|
||||
|
||||
**BR-C009: 流式输出超时**
|
||||
- 瑙勫垯锛氬崟涓<EFBFBD><EFBFBD>姹傛渶闀?0绉?
|
||||
- 规则:单个请求最长60秒
|
||||
- 超时后:返回已生成的内容
|
||||
- 閿欒<EFBFBD>鎻愮ず锛?鐢熸垚瓒呮椂锛岃<E9949B>閲嶈瘯"
|
||||
- 错误提示:"生成超时,请重试"
|
||||
|
||||
---
|
||||
|
||||
## 鐭ヨ瘑搴撶<EFBFBD>鐞嗚<EFBFBD>鍒?
|
||||
## 知识库管理规则
|
||||
|
||||
### 数量限制
|
||||
|
||||
**BR-K001: 鐭ヨ瘑搴撴暟閲忛檺鍒?*
|
||||
- 瑙勫垯锛氭瘡涓<EFBFBD>敤鎴锋渶澶氬垱寤?涓<>煡璇嗗簱
|
||||
- 楠岃瘉鏃舵満锛氬垱寤虹煡璇嗗簱鏃?
|
||||
- 閿欒<EFBFBD>鎻愮ず锛?宸茶揪鍒扮煡璇嗗簱鏁伴噺涓婇檺锛?涓<>級"
|
||||
**BR-K001: 知识库数量限制**
|
||||
- 规则:每个用户最多创建3个知识库
|
||||
- 验证时机:创建知识库时
|
||||
- 错误提示:"已达到知识库数量上限(3个)"
|
||||
|
||||
**BR-K002: 文档数量限制**
|
||||
- 瑙勫垯锛氭瘡涓<EFBFBD>煡璇嗗簱鏈€澶氫笂浼?0涓<30>枃妗?
|
||||
- 规则:每个知识库最多上传50个文档
|
||||
- 验证时机:上传文档时
|
||||
- 閿欒<EFBFBD>鎻愮ず锛?璇ョ煡璇嗗簱鏂囨。鏁伴噺宸茶揪涓婇檺锛?0涓<30>級"
|
||||
- 错误提示:"该知识库文档数量已达上限(50个)"
|
||||
|
||||
### 文档上传
|
||||
|
||||
**BR-K003: 文件格式限制**
|
||||
- 规则:只支持PDF和DOCX格式
|
||||
- MIME绫诲瀷锛?
|
||||
- MIME类型:
|
||||
- `application/pdf`
|
||||
- `application/vnd.openxmlformats-officedocument.wordprocessingml.document`
|
||||
- 閿欒<EFBFBD>鎻愮ず锛?浠呮敮鎸丳DF鍜孌OCX鏍煎紡"
|
||||
- 错误提示:"仅支持PDF和DOCX格式"
|
||||
|
||||
**BR-K004: 文件大小限制**
|
||||
- 瑙勫垯锛氬崟涓<EFBFBD>枃浠舵渶澶?0MB
|
||||
- 规则:单个文件最大50MB
|
||||
- 验证时机:上传前(前端)和上传后(后端)
|
||||
- 閿欒<EFBFBD>鎻愮ず锛?鏂囦欢澶у皬瓒呰繃闄愬埗锛堟渶澶?0MB锛?
|
||||
- 错误提示:"文件大小超过限制(最大50MB)"
|
||||
|
||||
**BR-K005: 鏂囦欢鍚嶅敮涓€鎬?*
|
||||
**BR-K005: 文件名唯一性**
|
||||
- 规则:同一知识库内,文件名不能重复
|
||||
- 验证:检查是否已存在同名文件
|
||||
- 澶勭悊锛氳嚜鍔ㄩ噸鍛藉悕锛堟坊鍔犳椂闂存埑锛?
|
||||
- 处理:自动重命名(添加时间戳)
|
||||
|
||||
### 文档处理
|
||||
|
||||
**BR-K006: 鏂囨。澶勭悊鐘舵€?*
|
||||
**BR-K006: 文档处理状态**
|
||||
- 状态流转:
|
||||
1. `uploading` - 涓婁紶涓?
|
||||
2. `processing` - Dify澶勭悊涓?
|
||||
1. `uploading` - 上传中
|
||||
2. `processing` - Dify处理中
|
||||
3. `completed` - 处理完成
|
||||
4. `failed` - 处理失败
|
||||
|
||||
**BR-K007: 处理失败重试**
|
||||
- 瑙勫垯锛氬<EFBFBD>鐞嗗け璐ョ殑鏂囨。涓嶈嚜鍔ㄩ噸璇?
|
||||
- 规则:处理失败的文档不自动重试
|
||||
- 规则:用户可以删除后重新上传
|
||||
- 错误信息:记录在error_message字段
|
||||
|
||||
**BR-K008: 异步处理**
|
||||
- 规则:文档上传后立即返回
|
||||
- 规则:后台异步提交到Dify处理
|
||||
- 瑙勫垯锛氬墠绔<EFBFBD>疆璇㈣幏鍙栧<EFBFBD>鐞嗙姸鎬?
|
||||
- 规则:前端轮询获取处理状态
|
||||
|
||||
### 鐭ヨ瘑搴撴<EFBFBD>绱?
|
||||
### 知识库检索
|
||||
|
||||
**BR-K009: 娣峰悎妫€绱?*
|
||||
- 瑙勫垯锛氫娇鐢ㄥ叧閿<EFBFBD>瘝妫€绱?+ 璇<>箟妫€绱?
|
||||
- 瑙勫垯锛氬惎鐢≧eranking閲嶆帓搴?
|
||||
- Top K锛?涓<>粨鏋?
|
||||
**BR-K009: 混合检索**
|
||||
- 规则:使用关键词检索 + 语义检索
|
||||
- 规则:启用Reranking重排序
|
||||
- Top K:5个结果
|
||||
- 相似度阈值:0.5
|
||||
|
||||
**BR-K010: 妫€绱㈢粨鏋滃紩鐢?*
|
||||
**BR-K010: 检索结果引用**
|
||||
- 规则:AI回答必须注明引用来源
|
||||
- 格式:`[文档名] 内容...`
|
||||
- 瑙勫垯锛氬墠绔<E5A2A0>樉绀哄彲鐐瑰嚮鐨勫紩鐢ㄦ爣璁?
|
||||
- 规则:前端显示可点击的引用标记
|
||||
|
||||
---
|
||||
|
||||
@@ -290,27 +290,27 @@
|
||||
### 用户权限
|
||||
|
||||
**BR-P001: 角色定义**
|
||||
- `user` - 鏅<EFBFBD>€氱敤鎴?
|
||||
- 鍙<>互浣跨敤鎵€鏈夊姛鑳?
|
||||
- 鍙楅厤棰濋檺鍒?
|
||||
- `admin` - 绠$悊鍛?
|
||||
- `user` - 普通用户
|
||||
- 可以使用所有功能
|
||||
- 受配额限制
|
||||
- `admin` - 管理员
|
||||
- 所有user权限
|
||||
- 可以访问运营后台
|
||||
- 鍙<>互鏌ョ湅鎵€鏈夌敤鎴锋暟鎹?
|
||||
- 可以查看所有用户数据
|
||||
|
||||
### 数据隔离
|
||||
|
||||
**BR-P002: 用户数据隔离**
|
||||
- 规则:用户只能访问自己创建的数据
|
||||
- 验证:所有查询必须包含userId过滤
|
||||
- 瀹炵幇锛?
|
||||
- 实现:
|
||||
```sql
|
||||
WHERE user_id = currentUser.id
|
||||
```
|
||||
|
||||
**BR-P003: 项目权限验证**
|
||||
- 瑙勫垯锛氫慨鏀?鍒犻櫎椤圭洰鍓嶏紝楠岃瘉鎵€鏈夋潈
|
||||
- 瀹炵幇锛?
|
||||
- 规则:修改/删除项目前,验证所有权
|
||||
- 实现:
|
||||
```typescript
|
||||
const project = await prisma.project.findFirst({
|
||||
where: { id: projectId, userId: currentUser.id }
|
||||
@@ -318,33 +318,33 @@
|
||||
if (!project) throw new UnauthorizedError()
|
||||
```
|
||||
|
||||
### 绠$悊鍛樻潈闄?
|
||||
### 管理员权限
|
||||
|
||||
**BR-P004: 用户管理权限**
|
||||
- 规则:只有admin可以查看用户列表
|
||||
- 瑙勫垯锛氬彧鏈塧dmin鍙<EFBFBD>互淇<EFBFBD>敼鐢ㄦ埛鐘舵€?
|
||||
- 规则:只有admin可以修改用户状态
|
||||
- 规则:admin不能删除用户(只能暂停)
|
||||
|
||||
**BR-P005: 对话查看权限**
|
||||
- 规则:只有admin可以查看用户对话
|
||||
- 瑙勫垯锛氬繀椤昏<EFBFBD>褰曞<EFBFBD>璁℃棩蹇?
|
||||
- 瑙勫垯锛氭晱鎰熶俊鎭<EFBFBD>渶瑕佽劚鏁忥紙濡傞偖绠便€佹墜鏈哄彿锛?
|
||||
- 规则:必须记录审计日志
|
||||
- 规则:敏感信息需要脱敏(如邮箱、手机号)
|
||||
|
||||
---
|
||||
|
||||
## 配额限制规则
|
||||
|
||||
### 鐭ヨ瘑搴撻厤棰?
|
||||
### 知识库配额
|
||||
|
||||
**BR-Q001: 鐭ヨ瘑搴撴暟閲忛厤棰?*
|
||||
- 榛樿<EFBFBD>閰嶉<EFBFBD>锛?涓<>煡璇嗗簱
|
||||
**BR-Q001: 知识库数量配额**
|
||||
- 默认配额:3个知识库
|
||||
- 记录字段:`users.kb_quota`, `users.kb_used`
|
||||
- 鏇存柊鏃舵満锛氬垱寤?鍒犻櫎鐭ヨ瘑搴撴椂
|
||||
- 更新时机:创建/删除知识库时
|
||||
|
||||
**BR-Q002: 文档数量配额**
|
||||
- 榛樿<E6A69B>閰嶉<E996B0>锛?0涓<30>枃妗?鐭ヨ瘑搴?
|
||||
- 妫€鏌ユ椂鏈猴細涓婁紶鏂囨。鍓?
|
||||
- 瀹炵幇锛?
|
||||
- 默认配额:50个文档/知识库
|
||||
- 检查时机:上传文档前
|
||||
- 实现:
|
||||
```sql
|
||||
SELECT COUNT(*) FROM documents
|
||||
WHERE kb_id = ? AND status != 'failed'
|
||||
@@ -353,72 +353,72 @@
|
||||
### 存储配额(预留)
|
||||
|
||||
**BR-Q003: 存储空间配额**
|
||||
- 榛樿<EFBFBD>閰嶉<EFBFBD>锛?GB/鐢ㄦ埛
|
||||
- 默认配额:1GB/用户
|
||||
- 当前版本:不强制限制
|
||||
- 鏈<EFBFBD>潵锛氬彲浠ユ牴鎹<EFBFBD>疄闄呴渶姹傚惎鐢?
|
||||
- 未来:可以根据实际需求启用
|
||||
|
||||
### API限流
|
||||
|
||||
**BR-Q004: API请求频率限制**
|
||||
- 鏅<EFBFBD>€氱敤鎴凤細100娆?鍒嗛挓
|
||||
- 绠$悊鍛橈細500娆?鍒嗛挓
|
||||
- 普通用户:100次/分钟
|
||||
- 管理员:500次/分钟
|
||||
- 实现:使用Redis + 滑动窗口算法
|
||||
|
||||
**BR-Q005: 登录接口限流**
|
||||
- 瑙勫垯锛?娆?鍒嗛挓
|
||||
- 瑙勫垯锛欼P鍜岃处鎴峰弻閲嶉檺鍒?
|
||||
- 规则:5次/分钟
|
||||
- 规则:IP和账户双重限制
|
||||
- 超过后:临时封禁15分钟
|
||||
|
||||
---
|
||||
|
||||
## 业务流程
|
||||
|
||||
### 瀹屾暣鐨勫<EFBFBD>璇濇祦绋?
|
||||
### 完整的对话流程
|
||||
|
||||
```
|
||||
1. 鐢ㄦ埛閫夋嫨鏅鸿兘浣?
|
||||
鈫?
|
||||
1. 用户选择智能体
|
||||
↓
|
||||
2. 创建对话(可选关联项目)
|
||||
鈫?
|
||||
3. 鐢ㄦ埛鍙戦€佹秷鎭<EFBFBD>紙鍙<EFBFBD>€夊紩鐢ㄧ煡璇嗗簱锛?
|
||||
鈫?
|
||||
↓
|
||||
3. 用户发送消息(可选引用知识库)
|
||||
↓
|
||||
4. 后端组装上下文:
|
||||
- 项目背景(如有)
|
||||
- 智能体System Prompt
|
||||
- 鍘嗗彶瀵硅瘽锛堟渶杩?0杞<30>級
|
||||
- 鐭ヨ瘑搴撴<EFBFBD>绱㈢粨鏋滐紙濡傛湁锛?
|
||||
- 历史对话(最近10轮)
|
||||
- 知识库检索结果(如有)
|
||||
- 当前用户问题
|
||||
鈫?
|
||||
↓
|
||||
5. 调用LLM(流式输出)
|
||||
鈫?
|
||||
↓
|
||||
6. 保存消息到数据库
|
||||
鈫?
|
||||
7. 鐢ㄦ埛鍙<EFBFBD>€夛細鍥哄畾娑堟伅鍒伴」鐩<EFBFBD>儗鏅?
|
||||
↓
|
||||
7. 用户可选:固定消息到项目背景
|
||||
```
|
||||
|
||||
### 鐭ヨ瘑搴撴枃妗e<EFBFBD>鐞嗘祦绋?
|
||||
### 知识库文档处理流程
|
||||
|
||||
```
|
||||
1. 用户上传文档
|
||||
鈫?
|
||||
2. 楠岃瘉锛?
|
||||
↓
|
||||
2. 验证:
|
||||
- 文件格式
|
||||
- 文件大小
|
||||
- 数量限制
|
||||
鈫?
|
||||
3. 涓婁紶鍒板<EFBFBD>璞″瓨鍌<EFBFBD>紙OSS锛?
|
||||
鈫?
|
||||
4. 鍒涘缓document璁板綍锛坰tatus: uploading锛?
|
||||
鈫?
|
||||
5. 寮傛<EFBFBD>鎻愪氦鍒癉ify锛?
|
||||
↓
|
||||
3. 上传到对象存储(OSS)
|
||||
↓
|
||||
4. 创建document记录(status: uploading)
|
||||
↓
|
||||
5. 异步提交到Dify:
|
||||
- 调用Dify上传API
|
||||
- 获取dify_document_id
|
||||
鈫?
|
||||
6. 杞<EFBFBD><EFBFBD>澶勭悊鐘舵€侊紙姣?绉掞級锛?
|
||||
- processing 鈫?鏇存柊progress
|
||||
- completed 鈫?鏇存柊status, segments_count, tokens_count
|
||||
- failed 鈫?鏇存柊status, error_message
|
||||
鈫?
|
||||
↓
|
||||
6. 轮询处理状态(每2秒):
|
||||
- processing → 更新progress
|
||||
- completed → 更新status, segments_count, tokens_count
|
||||
- failed → 更新status, error_message
|
||||
↓
|
||||
7. 更新知识库统计:
|
||||
- file_count
|
||||
- total_size_bytes
|
||||
@@ -426,29 +426,29 @@
|
||||
|
||||
---
|
||||
|
||||
## 鏁版嵁涓€鑷存€ц<EFBFBD>鍒?
|
||||
## 数据一致性规则
|
||||
|
||||
### 统计字段更新
|
||||
|
||||
**BR-D001: 椤圭洰瀵硅瘽鏁扮粺璁?*
|
||||
**BR-D001: 项目对话数统计**
|
||||
- 字段:`projects.conversation_count`
|
||||
- 鏇存柊鏃舵満锛氬垱寤?鍒犻櫎瀵硅瘽鏃?
|
||||
- 瀹炵幇锛氫娇鐢ㄤ簨鍔′繚璇佷竴鑷存€?
|
||||
- 更新时机:创建/删除对话时
|
||||
- 实现:使用事务保证一致性
|
||||
|
||||
**BR-D002: 知识库文档数统计**
|
||||
- 字段:`knowledge_bases.file_count`
|
||||
- 更新时机:文档状态变为completed或删除时
|
||||
- 璁$畻锛氬彧缁熻<E7BC81>status='completed'鐨勬枃妗?
|
||||
- 计算:只统计status='completed'的文档
|
||||
|
||||
**BR-D003: 用户知识库数统计**
|
||||
- 字段:`users.kb_used`
|
||||
- 鏇存柊鏃舵満锛氬垱寤?鍒犻櫎鐭ヨ瘑搴撴椂
|
||||
- 更新时机:创建/删除知识库时
|
||||
- 验证:创建前检查是否超过quota
|
||||
|
||||
### 级联删除
|
||||
|
||||
**BR-D004: 用户删除级联**
|
||||
- 瑙勫垯锛氬垹闄ょ敤鎴锋椂锛岀骇鑱斿垹闄ゆ墍鏈夊叧鑱旀暟鎹?
|
||||
- 规则:删除用户时,级联删除所有关联数据
|
||||
- 包括:projects, conversations, messages, knowledge_bases, documents
|
||||
- 实现:数据库ON DELETE CASCADE
|
||||
|
||||
@@ -456,7 +456,7 @@
|
||||
- 规则:删除项目时,级联删除所有对话和消息
|
||||
- 实现:数据库ON DELETE CASCADE
|
||||
|
||||
**BR-D006: 鐭ヨ瘑搴撳垹闄ょ骇鑱?*
|
||||
**BR-D006: 知识库删除级联**
|
||||
- 规则:删除知识库时:
|
||||
1. 级联删除数据库中的documents
|
||||
2. 调用Dify API删除dataset
|
||||
@@ -487,7 +487,7 @@
|
||||
"success": false,
|
||||
"error": {
|
||||
"code": "QUOTA_EXCEEDED",
|
||||
"message": "鐭ヨ瘑搴撴暟閲忓凡杈句笂闄?,
|
||||
"message": "知识库数量已达上限",
|
||||
"details": {
|
||||
"resource": "knowledge_base",
|
||||
"quota": 3,
|
||||
@@ -506,11 +506,11 @@
|
||||
|
||||
**BR-S001: 密码加密**
|
||||
- 算法:bcrypt
|
||||
- 鎴愭湰鍥犲瓙锛?2
|
||||
- 瑙勫垯锛氭案涓嶅瓨鍌ㄦ槑鏂囧瘑鐮?
|
||||
- 成本因子:12
|
||||
- 规则:永不存储明文密码
|
||||
|
||||
**BR-S002: Token安全**
|
||||
- 瑙勫垯锛歍oken鍖呭惈鐢ㄦ埛ID鍜岃<E98D9C>鑹?
|
||||
- 规则:Token包含用户ID和角色
|
||||
- 规则:Token签名使用JWT_SECRET
|
||||
- 规则:过期Token自动失效
|
||||
|
||||
@@ -524,7 +524,7 @@
|
||||
### XSS防护
|
||||
|
||||
**BR-S004: 输入转义**
|
||||
- 瑙勫垯锛氭墍鏈夌敤鎴疯緭鍏ュ湪鏄剧ず鍓嶈浆涔?
|
||||
- 规则:所有用户输入在显示前转义
|
||||
- 规则:使用React默认转义
|
||||
- 规则:禁止使用dangerouslySetInnerHTML(除非必要)
|
||||
|
||||
@@ -534,22 +534,22 @@
|
||||
|
||||
### 缓存规则
|
||||
|
||||
**BR-O001: 鏅鸿兘浣撳垪琛ㄧ紦瀛?*
|
||||
**BR-O001: 智能体列表缓存**
|
||||
- 规则:智能体列表缓存1小时
|
||||
- 实现:Redis缓存
|
||||
- 失效:修改agents.yaml后需清除缓存
|
||||
|
||||
**BR-O002: 用户信息缓存**
|
||||
- 瑙勫垯锛氱敤鎴蜂俊鎭<E4BF8A>紦瀛?鍒嗛挓
|
||||
- 规则:用户信息缓存5分钟
|
||||
- Key:`user:{userId}`
|
||||
- 失效:用户信息更新时
|
||||
|
||||
### 查询优化
|
||||
|
||||
**BR-O003: 分页查询**
|
||||
- 瑙勫垯锛氬垪琛ㄦ煡璇㈠繀椤诲垎椤?
|
||||
- 榛樿<EFBFBD>锛?0鏉?椤?
|
||||
- 鏈€澶э細100鏉?椤?
|
||||
- 规则:列表查询必须分页
|
||||
- 默认:20条/页
|
||||
- 最大:100条/页
|
||||
|
||||
**BR-O004: 索引使用**
|
||||
- 规则:频繁查询的字段必须建立索引
|
||||
@@ -563,30 +563,30 @@
|
||||
### 数据归档
|
||||
|
||||
**BR-R001: 对话归档(未来)**
|
||||
- 瑙勫垯锛氳秴杩?涓<>湀鐨勫<E990A8>璇濊嚜鍔ㄥ綊妗?
|
||||
- 规则:超过6个月的对话自动归档
|
||||
- 归档表:conversations_archive
|
||||
- 查询:默认不查询归档数据
|
||||
|
||||
**BR-R002: 日志清理**
|
||||
- 规则:admin_logs保留3个月
|
||||
- 鎵ц<EFBFBD>锛氬畾鏃朵换鍔℃瘡鏈堟竻鐞?
|
||||
- 执行:定时任务每月清理
|
||||
|
||||
---
|
||||
|
||||
## 业务规则变更流程
|
||||
|
||||
1. **鎻愬嚭鍙樻洿**锛氬~鍐欏彉鏇寸敵璇?
|
||||
2. **褰卞搷璇勪及**锛氳瘎浼板<E6B5BC>绯荤粺鐨勫奖鍝?
|
||||
1. **提出变更**:填写变更申请
|
||||
2. **影响评估**:评估对系统的影响
|
||||
3. **Review**:技术团队Review
|
||||
4. **更新文档**:同步更新本文档
|
||||
5. **瀹炴柦鍙樻洿**锛氫慨鏀逛唬鐮?
|
||||
5. **实施变更**:修改代码
|
||||
6. **测试验证**:测试新规则
|
||||
7. **上线发布**:发布到生产
|
||||
|
||||
---
|
||||
|
||||
**鏂囨。缁存姢锛?* 涓氬姟瑙勫垯鍙樻洿闇€鍚屾<E98D9A>鏇存柊
|
||||
**Review棰戠巼锛?* 姣忎釜閲岀▼纰慠eview涓€娆?
|
||||
**文档维护:** 业务规则变更需同步更新
|
||||
**Review频率:** 每个里程碑Review一次
|
||||
**最后更新:** 2025-10-10
|
||||
**维护者:** 产品经理 + 技术负责人
|
||||
|
||||
|
||||
@@ -1,106 +1,106 @@
|
||||
# 銝衤<EFBFBD>甇亥<EFBFBD><EFBFBD>典<EFBFBD>蝑硋遣霈?
|
||||
# 下一步行动决策建议
|
||||
|
||||
> **<EFBFBD><EFBFBD>﹝<EFBFBD><EFBFBD>𧋦嚗?* v1.0
|
||||
> **<EFBFBD>𥕦遣<EFBFBD>交<EFBFBD>嚗?* 2025-11-06
|
||||
> **<EFBFBD><EFBFBD>﹝<EFBFBD>桃<EFBFBD>嚗?* 撣桀𨭌<E6A180>典<EFBFBD><E585B8>箸<EFBFBD>蝖桃<E89D96><E6A183><EFBFBD><EFBFBD>臬<EFBFBD>銝𡁜𦛚<F0A1819C>喟<EFBFBD>
|
||||
> **文档版本:** v1.0
|
||||
> **创建日期:** 2025-11-06
|
||||
> **文档目的:** 帮助您做出明确的技术和业务决策
|
||||
|
||||
---
|
||||
|
||||
## <EFBFBD>㴓 敶枏<E695B6><E69E8F>嗆<EFBFBD>?
|
||||
## 🎯 当前状态
|
||||
|
||||
### <EFBFBD>?隞𦠜𠯫撌脣<E6928C><E884A3>?
|
||||
### ✅ 今日已完成
|
||||
|
||||
**<EFBFBD>嗆<EFBFBD>霈曇恣嚗?00%摰峕<E691B0>嚗㚁<E59A97>**
|
||||
- <EFBFBD>?8銝芣瓲敹<E793B2><E695B9>獢<EFBFBD><E78DA2>6000+銵䕘<EFBFBD>
|
||||
- <EFBFBD>?銝匧<E98A9D><E58CA7>嗆<EFBFBD>霈曇恣
|
||||
- <EFBFBD>?8銝芯<E98A9D><E88AAF>⊥芋<E28AA5>𡑒<EFBFBD><F0A19192>?
|
||||
- <EFBFBD>?4蝘漤<E89D98>蝵脫䲮獢?
|
||||
- <EFBFBD>?摰峕㟲<E5B395><E39FB2><EFBFBD><EFBFBD>航楝蝥踹㦛
|
||||
**架构设计(100%完成):**
|
||||
- ✅ 8个核心文档(6000+行)
|
||||
- ✅ 三层架构设计
|
||||
- ✅ 8个业务模块规划
|
||||
- ✅ 4种部署方案
|
||||
- ✅ 完整的技术路线图
|
||||
|
||||
**<EFBFBD>詨<EFBFBD><EFBFBD>喟<EFBFBD>嚗?00%摰峕<E691B0>嚗㚁<E59A97>**
|
||||
- <EFBFBD>?<3F>𡒊&鈭<EFBC86><E988AD><EFBFBD>亦恣<E4BAA6><E681A3>垢<EFBFBD><E59EA2><EFBFBD>雿滚<E99BBF><E6BB9A>蠘<EFBFBD>
|
||||
- <EFBFBD>?<3F>𡒊&鈭<EFBC86>芋<EFBFBD>㛖𡠺蝡钅<E89DA1>蝵脫䲮獢?
|
||||
- <EFBFBD>?<3F>𡒊&鈭<EFBC86>lectron<6F>閙㦤<E99699><E3A6A4>䲮獢?
|
||||
- <EFBFBD>?<3F>𡒊&鈭<EFBC86>chema<6D>𠉛氖<F0A0899B><E6B096>𧒄<EFBFBD>箏<EFBFBD><E7AE8F>鞉𧋦
|
||||
- <EFBFBD>?<3F>𡒊&鈭<EFBC86>onorepo<70><6F><EFBFBD>閬<EFBFBD><E996AC>批<EFBFBD><E689B9>嗆㦤
|
||||
**核心决策(100%完成):**
|
||||
- ✅ 明确了运营管理端的定位和功能
|
||||
- ✅ 明确了模块独立部署方案
|
||||
- ✅ 明确了Electron单机版方案
|
||||
- ✅ 明确了Schema隔离的时机和成本
|
||||
- ✅ 明确了Monorepo的必要性和时机
|
||||
|
||||
---
|
||||
|
||||
## <EFBFBD><EFBFBD> <20><>閬<EFBFBD><E996AC><EFBFBD>喟<EFBFBD><E5969F><EFBFBD><EFBFBD><EFBFBD>桅䔮憸?
|
||||
## 🤔 需要您决策的关键问题
|
||||
|
||||
### 问题1:是否现在做Schema隔离?⭐⭐⭐⭐⭐
|
||||
|
||||
**选项A:现在做(强烈推荐)**
|
||||
```
|
||||
<EFBFBD>訫<EFBFBD>嚗?<3F>剁<EFBFBD>3憭拙<E686AD><E68B99>?+ 2憭拇<E686AD>霂𤏪<E99C82>
|
||||
<EFBFBD>嗥<EFBFBD>嚗𡁻<EFBFBD><EFBFBD>齿𧊋<EFBFBD>?-5<>冽㺿<E586BD>?
|
||||
ROI嚗?00-500%
|
||||
投入:1周(3天开发 + 2天测试)
|
||||
收益:避免未来3-5周改造
|
||||
ROI:300-500%
|
||||
|
||||
隡睃飵嚗?
|
||||
<EFBFBD>?<3F>唳旿<E594B3>誩<EFBFBD>嚗? 1銝<31><E98A9D>嚗㚁<E59A97>餈<EFBFBD>宏敹?
|
||||
<EFBFBD>?銝?銝芣芋<E88AA3>埈<EFBFBD><E59F88>箇<EFBFBD>
|
||||
<EFBFBD>?<3F>舀<EFBFBD>璅∪<E79285><E288AA>祉<EFBFBD><E7A589>函蔡
|
||||
<EFBFBD>?<3F>舀<EFBFBD>敺格<E695BA><E6A0BC>⊥<EFBFBD><E28AA5>?
|
||||
优势:
|
||||
✅ 数据量小(< 1万行),迁移快
|
||||
✅ 为7个模块打基础
|
||||
✅ 支持模块独立部署
|
||||
✅ 支持微服务拆分
|
||||
|
||||
<EFBFBD><EFBFBD>飵嚗?
|
||||
<EFBFBD>𩤃<EFBFBD> ASL璅∪<EFBFBD>撱嗉<EFBFBD>1<EFBFBD>?
|
||||
劣势:
|
||||
⚠️ ASL模块延迟1周
|
||||
```
|
||||
|
||||
**选项B:延后(不推荐)**
|
||||
```
|
||||
<EFBFBD>訫<EFBFBD>嚗?嚗<><E59A97><EFBFBD>㵪<EFBFBD>
|
||||
<EFBFBD>鞉𧋦嚗𡁏𧊋<EFBFBD>?-5<>冽㺿<E586BD>?
|
||||
投入:0(当前)
|
||||
成本:未来3-5周改造
|
||||
|
||||
隡睃飵嚗?
|
||||
<EFBFBD>?蝡见朖撘<E69C96>憪𧘹SL撘<4C><E69298>?
|
||||
优势:
|
||||
✅ 立即开始ASL开发
|
||||
|
||||
<EFBFBD><EFBFBD>飵嚗?
|
||||
<EFBFBD>?<3F><><EFBFBD>臬<EFBFBD>箇敞蝘?
|
||||
<EFBFBD>?<3F>芣䔉<E88AA3>鞉𧋦5<F0A78BA6>?
|
||||
<EFBFBD>?<3F>唳旿<E594B3>誩之嚗諹<E59A97>蝘駁<E89D98><E9A781>拚<EFBFBD>
|
||||
劣势:
|
||||
❌ 技术债累积
|
||||
❌ 未来成本5倍
|
||||
❌ 数据量大,迁移风险高
|
||||
```
|
||||
|
||||
**<EFBFBD>𤑳<EFBFBD>撱箄悅嚗𡁻<EFBFBD>㗇𥋘A嚗<EFBFBD>緵<EFBFBD>典<EFBFBD>嚗?* 潃鐥<E6BD83>潃鐥<E6BD83>潃?
|
||||
**我的建议:选择A(现在做)** ⭐⭐⭐⭐⭐
|
||||
|
||||
---
|
||||
|
||||
### 问题2:是否现在转换Monorepo?⭐⭐⭐⭐⭐
|
||||
|
||||
**<EFBFBD>厰★A嚗𡁶緵<EFBFBD>刻蓮<EFBFBD>g<EFBFBD>撘箇<EFBFBD><EFBFBD>刻<EFBFBD>嚗?*
|
||||
**选项A:现在转换(强烈推荐)**
|
||||
```
|
||||
<EFBFBD>訫<EFBFBD>嚗?-3憭?
|
||||
<EFBFBD>嗥<EFBFBD>嚗朞<EFBFBD><EFBFBD><EFBFBD>𧊋<EFBFBD>?-11憭?
|
||||
ROI嚗?00-400%
|
||||
投入:2-3天
|
||||
收益:节省未来7-11天
|
||||
ROI:300-400%
|
||||
|
||||
隡睃飵嚗?
|
||||
<EFBFBD>?餈烐<E9A488>撘<EFBFBD><E69298>𤏸<EFBFBD><F0A48FB8>亦恣<E4BAA6><E681A3>垢嚗<E59EA2>𡠺蝡见<E89DA1>蝡荔<E89DA1>
|
||||
<EFBFBD>?隞<><E99A9E>憭滨鍂<E6BBA8>睃捆<E79D83>?
|
||||
<EFBFBD>?銝慟lectron<EFBFBD>閙㦤<EFBFBD><EFBFBD><EFBFBD><EFBFBD>箇<EFBFBD>
|
||||
<EFBFBD>?銝箇𡠺蝡衤漣<E8A1A4><E6BCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>箇<EFBFBD>
|
||||
优势:
|
||||
✅ 近期开发运营管理端(独立前端)
|
||||
✅ 代码复用变容易
|
||||
✅ 为Electron单机版打基础
|
||||
✅ 为独立产品打包打基础
|
||||
|
||||
<EFBFBD><EFBFBD>飵嚗?
|
||||
<EFBFBD>𩤃<EFBFBD> <20><>閬<EFBFBD>郎銋䭾鰵<E4ADBE><E9B0B5><EFBFBD>荔<EFBFBD>雿<EFBFBD><E99BBF>AI<41>函<EFBFBD><E587BD><EFBFBD>紡嚗?
|
||||
劣势:
|
||||
⚠️ 需要学习新技术(但有AI全程指导)
|
||||
```
|
||||
|
||||
**选项B:延后(不推荐)**
|
||||
```
|
||||
<EFBFBD>訫<EFBFBD>嚗?嚗<><E59A97><EFBFBD>㵪<EFBFBD>
|
||||
<EFBFBD>鞉𧋦嚗𡁏𧊋<EFBFBD>?-11憭拇㺿<E68B87>?
|
||||
投入:0(当前)
|
||||
成本:未来7-11天改造
|
||||
|
||||
隡睃飵嚗?
|
||||
<EFBFBD>?蝡见朖撘<E69C96>憪𧘹SL撘<4C><E69298>?
|
||||
优势:
|
||||
✅ 立即开始ASL开发
|
||||
|
||||
<EFBFBD><EFBFBD>飵嚗?
|
||||
<EFBFBD>?隞<><E99A9E><EFBFBD>滚<EFBFBD>嚗<EFBFBD>掩<EFBFBD>见<EFBFBD>銋剹<E98A8B><E589B9>極<EFBFBD>瑕遆<E79195>啁<EFBFBD>嚗?
|
||||
<EFBFBD>?餈鞱𨯫蝞∠<E89D9E>蝡臬<E89DA1><E887AC>烐𧒄敹<F0A79284>◆頧祆揢
|
||||
<EFBFBD>?<3F>芣䔉<E88AA3>鞉𧋦<E99E89>湧<EFBFBD>
|
||||
劣势:
|
||||
❌ 代码重复(类型定义、工具函数等)
|
||||
❌ 运营管理端开发时必须转换
|
||||
❌ 未来成本更高
|
||||
```
|
||||
|
||||
**<EFBFBD>𤑳<EFBFBD>撱箄悅嚗𡁻<EFBFBD>㗇𥋘A嚗<EFBFBD>緵<EFBFBD>刻蓮<EFBFBD>g<EFBFBD>** 潃鐥<E6BD83>潃鐥<E6BD83>潃?
|
||||
**我的建议:选择A(现在转换)** ⭐⭐⭐⭐⭐
|
||||
|
||||
**銵亙<EFBFBD>霂湔<EFBFBD>嚗?*
|
||||
- 憒<EFBFBD><EFBFBD>餈烐<EFBFBD>嚗?-2銝芣<E98A9D>嚗匧<E59A97><E58CA7>𤏸<EFBFBD><F0A48FB8>亦恣<E4BAA6><E681A3>垢嚗愢onorepo<EFBFBD>臬<EFBFBD>憿餌<EFBFBD>
|
||||
- 憒<EFBFBD><EFBFBD>6銝芣<EFBFBD><EFBFBD><EFBFBD><EFBFBD>撘<EFBFBD><EFBFBD>𤏸<EFBFBD><EFBFBD>亦恣<EFBFBD><EFBFBD>垢嚗<EFBFBD>虾隞亙辣<EFBFBD>?
|
||||
**补充说明:**
|
||||
- 如果近期(1-2个月)开发运营管理端,Monorepo是必须的
|
||||
- 如果6个月内不开发运营管理端,可以延后
|
||||
|
||||
---
|
||||
|
||||
@@ -108,141 +108,141 @@ ROI
|
||||
|
||||
**选项A:立即开发ASL模块**
|
||||
```
|
||||
<EFBFBD>園𡢿嚗帋<EFBFBD><EFBFBD>𤾸予撘<EFBFBD>憪?
|
||||
<EFBFBD><EFBFBD>捆嚗𡁏<EFBFBD>憸䀹<EFBFBD>閬<EFBFBD><EFBFBD>蝑?+ <20>冽<EFBFBD>憭滨<E686AD>
|
||||
时间:从明天开始
|
||||
内容:标题摘要初筛 + 全文复筛
|
||||
|
||||
隡睃飵嚗?
|
||||
<EFBFBD>?敹恍<E695B9><E6818D>綫餈𥕢<E9A488><F0A595A2>?
|
||||
<EFBFBD>?皛∟雲撣<E99BB2>㦤<EFBFBD><E3A6A4>瘙?
|
||||
优势:
|
||||
✅ 快速推进业务
|
||||
✅ 满足市场需求
|
||||
|
||||
<EFBFBD><EFBFBD>飵嚗?
|
||||
<EFBFBD>?<3F><><EFBFBD>臬<EFBFBD>箇敞蝘?
|
||||
<EFBFBD>?<3F>芣䔉<E88AA3>寥<EFBFBD>䭾<EFBFBD><E4ADBE>祇<EFBFBD>
|
||||
劣势:
|
||||
❌ 技术债累积
|
||||
❌ 未来改造成本高
|
||||
```
|
||||
|
||||
**选项B:先做架构改造,再开发ASL**
|
||||
```
|
||||
<EFBFBD>園𡢿嚗?
|
||||
- Week 1嚗锭chema<EFBFBD>𠉛氖 + Monorepo嚗?憭抬<E686AD>
|
||||
- Week 2+嚗鋫SL璅∪<EFBFBD>撘<EFBFBD><EFBFBD>?
|
||||
时间:
|
||||
- Week 1:Schema隔离 + Monorepo(6天)
|
||||
- Week 2+:ASL模块开发
|
||||
|
||||
隡睃飵嚗?
|
||||
<EFBFBD>?<3F>嗆<EFBFBD>皜<EFBFBD>苊嚗屸鵭<E5B1B8><E9B5AD>𤣰<EFBFBD>?
|
||||
<EFBFBD>?隞<><E99A9E>憭滨鍂靘踹⏚
|
||||
<EFBFBD>?<3F>踹<EFBFBD><E8B8B9>芣䔉1銝芣<E98A9D><E88AA3>寥<EFBFBD>䭾<EFBFBD><E4ADBE>?
|
||||
优势:
|
||||
✅ 架构清晰,长期收益
|
||||
✅ 代码复用便利
|
||||
✅ 避免未来1个月改造成本
|
||||
|
||||
<EFBFBD><EFBFBD>飵嚗?
|
||||
<EFBFBD>𩤃<EFBFBD> ASL璅∪<EFBFBD>撱嗉<EFBFBD>1<EFBFBD>?
|
||||
劣势:
|
||||
⚠️ ASL模块延迟1周
|
||||
```
|
||||
|
||||
**选项C:只做Monorepo,延后Schema隔离**
|
||||
```
|
||||
<EFBFBD>園𡢿嚗?
|
||||
时间:
|
||||
- Day 1-3:Monorepo转换
|
||||
- Day 4+嚗鋫SL璅∪<EFBFBD>撘<EFBFBD><EFBFBD>?
|
||||
- Day 4+:ASL模块开发
|
||||
- 未来:Schema隔离(数据量增长前)
|
||||
|
||||
隡睃飵嚗?
|
||||
<EFBFBD>?閫<><E996AB><EFBFBD><EFBFBD>蝝扯翰<E689AF><E7BFB0>䔮憸矋<E686B8>餈鞱𨯫蝞∠<E89D9E>蝡舫<E89DA1>閬<EFBFBD><E996AC>
|
||||
<EFBFBD>?敹恍<E695B9><E6818D>綫餈𥕢<E9A488><F0A595A2>?
|
||||
优势:
|
||||
✅ 解决最紧迫的问题(运营管理端需要)
|
||||
✅ 快速推进业务
|
||||
|
||||
<EFBFBD><EFBFBD>飵嚗?
|
||||
<EFBFBD>𩤃<EFBFBD> Schema<EFBFBD>𠉛氖<EFBFBD>鞉𧋦隡𡁜<EFBFBD><EFBFBD>?
|
||||
劣势:
|
||||
⚠️ Schema隔离成本会增加
|
||||
```
|
||||
|
||||
**<EFBFBD>𤑳<EFBFBD>撱箄悅嚗𡁻<EFBFBD>㗇𥋘B嚗<EFBFBD><EFBFBD><EFBFBD>𡁏沲<EFBFBD><EFBFBD>㺿<EFBFBD>𩤃<EFBFBD>** 潃鐥<E6BD83>潃鐥<E6BD83>潃?
|
||||
**我的建议:选择B(先做架构改造)** ⭐⭐⭐⭐⭐
|
||||
|
||||
---
|
||||
|
||||
## 📊 三个方案对比
|
||||
|
||||
| 蝏游漲 | <20>寞<EFBFBD>A嚗𡁶<E59A97><F0A181B6>喳<EFBFBD><E596B3>?| <20>寞<EFBFBD>B嚗𡁜<E59A97><F0A1819C>寥<EFBFBD>?| <20>寞<EFBFBD>C嚗𡁏<E59A97>銝?|
|
||||
| 维度 | 方案A:立即开发 | 方案B:先改造 | 方案C:折中 |
|
||||
|------|---------------|-------------|-----------|
|
||||
| **ASL上线时间** | 最快(2周) | 延迟1周(3周) | 延迟3天(2.5周) |
|
||||
| **<EFBFBD><EFBFBD><EFBFBD>臬<EFBFBD>?* | 蝝舐妖 | 餈䀹<E9A488> | <20>典<EFBFBD>餈䀹<E9A488> |
|
||||
| **<EFBFBD>芣䔉<EFBFBD>寥<EFBFBD>䭾<EFBFBD><EFBFBD>?* | 1銝芣<EFBFBD> | 0 | 3-5<EFBFBD>?|
|
||||
| **隞<EFBFBD><EFBFBD>韐券<EFBFBD>** | 潃鐥<EFBFBD>潃?| 潃鐥<E6BD83>潃鐥<E6BD83>潃?| 潃鐥<E6BD83>潃鐥<E6BD83> |
|
||||
| **<EFBFBD>踵<EFBFBD><EFBFBD>嗥<EFBFBD>** | 潃鐥<EFBFBD> | 潃鐥<E6BD83>潃鐥<E6BD83>潃?| 潃鐥<E6BD83>潃鐥<E6BD83> |
|
||||
| **<EFBFBD>訫<EFBFBD>鈭批枂瘥?* | 潃鐥<E6BD83> | 潃鐥<E6BD83>潃鐥<E6BD83>潃?| 潃鐥<E6BD83>潃鐥<E6BD83> |
|
||||
| **<EFBFBD>刻<EFBFBD>摨?* | 潃鐥<E6BD83>潃?| 潃鐥<E6BD83>潃鐥<E6BD83>潃?| 潃鐥<E6BD83>潃鐥<E6BD83> |
|
||||
| **技术债** | 累积 | 还清 | 部分还清 |
|
||||
| **未来改造成本** | 1个月 | 0 | 3-5周 |
|
||||
| **代码质量** | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
|
||||
| **长期收益** | ⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
|
||||
| **投入产出比** | ⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
|
||||
| **推荐度** | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
|
||||
|
||||
---
|
||||
|
||||
## <EFBFBD>㴓 <20>𤑳<EFBFBD><F0A491B3><EFBFBD>蝏<EFBFBD>遣霈?
|
||||
## 🎯 我的最终建议
|
||||
|
||||
### <EFBFBD>刻<EFBFBD>嚗𡁏䲮獢㇂嚗<EFBFBD><EFBFBD><EFBFBD>𡁏沲<EFBFBD><EFBFBD>㺿<EFBFBD>𩤃<EFBFBD><EFBFBD>滚<EFBFBD><EFBFBD>𡢅<EFBFBD>潃鐥<EFBFBD>潃鐥<EFBFBD>潃?
|
||||
### 推荐:方案B(先做架构改造,再开发)⭐⭐⭐⭐⭐
|
||||
|
||||
### 核心理由
|
||||
|
||||
**1. 投入1周,节省未来1个月**
|
||||
```
|
||||
<EFBFBD>啣銁<EFBFBD>訫<EFBFBD>嚗?憭?
|
||||
- Schema<EFBFBD>𠉛氖嚗?憭?
|
||||
- Monorepo頧祆揢嚗?憭?
|
||||
现在投入:6天
|
||||
- Schema隔离:3天
|
||||
- Monorepo转换:3天
|
||||
|
||||
<EFBFBD>芣䔉<EFBFBD><EFBFBD><EFBFBD>嚗?2-36憭?
|
||||
- Schema<EFBFBD>𠉛氖嚗?5-25憭?
|
||||
- Monorepo頧祆揢嚗?-11憭?
|
||||
未来节省:22-36天
|
||||
- Schema隔离:15-25天
|
||||
- Monorepo转换:7-11天
|
||||
|
||||
投入产出比:300-500%
|
||||
```
|
||||
|
||||
**2. 甇<EFBFBD><EFBFBD>鈭擧<EFBFBD>雿單𧒄<EFBFBD>?*
|
||||
**2. 正处于最佳时机**
|
||||
```
|
||||
敶枏<EFBFBD>嚗?
|
||||
<EFBFBD>?<3F>唳旿<E594B3>誩<EFBFBD>嚗? 1銝<31><E98A9D>嚗?
|
||||
<EFBFBD>?隞<><E99A9E><EFBFBD>誯<EFBFBD><E8AAAF>葉
|
||||
<EFBFBD>?<3F>芣<EFBFBD>2銝芸歇摰峕<E691B0>璅∪<E79285>嚗㇁IA<49><41>KB嚗?
|
||||
<EFBFBD>?<3F>喳<EFBFBD>撘<EFBFBD><E69298>穃<EFBFBD>銝芣鰵璅∪<E79285>嚗㇁SL<53><4C>C<EFBFBD><43>DMIN蝑㚁<EFBFBD>
|
||||
当前:
|
||||
✅ 数据量小(< 1万行)
|
||||
✅ 代码量适中
|
||||
✅ 只有2个已完成模块(AIA、PKB)
|
||||
✅ 即将开发多个新模块(ASL、DC、ADMIN等)
|
||||
|
||||
<EFBFBD>芣䔉嚗?
|
||||
<EFBFBD>?<3F>唳旿<E594B3>誩之嚗?00銝<30><E98A9D>+嚗?
|
||||
<EFBFBD>?隞<><E99A9E><EFBFBD>誩之
|
||||
<EFBFBD>?7-8銝芣芋<EFBFBD>堒<EFBFBD><EFBFBD>嗉<EFBFBD>銵?
|
||||
<EFBFBD>?<3F>齿<EFBFBD>敶勗<E695B6><E58B97><EFBFBD>凒撌典之
|
||||
未来:
|
||||
❌ 数据量大(100万行+)
|
||||
❌ 代码量大
|
||||
❌ 7-8个模块同时运行
|
||||
❌ 重构影响范围巨大
|
||||
```
|
||||
|
||||
**3. 銝?銝芣芋<E88AA3>埈<EFBFBD>銝见<E98A9D>摰𧼮抅蝖<E68A85>**
|
||||
**3. 为7个模块打下坚实基础**
|
||||
```
|
||||
<EFBFBD>喳<EFBFBD>撘<EFBFBD><EFBFBD>𤑳<EFBFBD>璅∪<EFBFBD>嚗?
|
||||
- ASL嚗㇁I<EFBFBD>箄<EFBFBD><EFBFBD><EFBFBD>讃嚗?
|
||||
即将开发的模块:
|
||||
- ASL(AI智能文献)
|
||||
- DC(数据清洗)
|
||||
- SSA(智能统计)
|
||||
- ST(分析工具)
|
||||
- RVW扩展(完整审稿系统)
|
||||
- ADMIN嚗<EFBFBD><EFBFBD><EFBFBD>亦恣<EFBFBD><EFBFBD>垢嚗?
|
||||
- ADMIN(运营管理端)
|
||||
|
||||
这些模块都将受益于:
|
||||
<EFBFBD>?Schema<EFBFBD>𠉛氖嚗<EFBFBD><EFBFBD><EFBFBD>啁<EFBFBD><EFBFBD>唳旿<EFBFBD>嗆<EFBFBD>嚗?
|
||||
<EFBFBD>?Monorepo嚗<EFBFBD>誨<EFBFBD><EFBFBD><EFBFBD><EFBFBD>其噶<EFBFBD>抬<EFBFBD>
|
||||
✅ Schema隔离(清晰的数据架构)
|
||||
✅ Monorepo(代码复用便利)
|
||||
```
|
||||
|
||||
**4. <EFBFBD>踹<EFBFBD><EFBFBD><EFBFBD><EFBFBD>臬<EFBFBD>箇敞蝘?*
|
||||
**4. 避免技术债累积**
|
||||
```
|
||||
<EFBFBD><EFBFBD><EFBFBD>臬<EFBFBD>箇<EFBFBD><EFBFBD>寧<EFBFBD>嚗?
|
||||
- <EFBFBD>園𡢿頞𠹺<EFBFBD>嚗<EFBFBD>⏚<EFBFBD>航<EFBFBD>擃?
|
||||
- <EFBFBD>寥<EFBFBD>䭾<EFBFBD><EFBFBD>祆<EFBFBD><EFBFBD>滚<EFBFBD><EFBFBD>?
|
||||
技术债的特点:
|
||||
- 时间越久,利息越高
|
||||
- 改造成本成倍增长
|
||||
- 影响业务创新速度
|
||||
|
||||
<EFBFBD>啣銁<EFBFBD>寥<EFBFBD>?= 銝<>甈⊥<E79488>扯<EFBFBD>皜?
|
||||
頧餉<EFBFBD>銝𢠃猐嚗䔶<EFBFBD>瘜其<EFBFBD><EFBFBD>?
|
||||
现在改造 = 一次性还清
|
||||
轻装上阵,专注业务
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## <EFBFBD><EFBFBD> 霂衣<E99C82>摰墧鴌霈∪<E99C88>嚗<EFBFBD>䲮獢㇂嚗?
|
||||
## 📅 详细实施计划(方案B)
|
||||
|
||||
### Week 1:架构改造(6天)
|
||||
|
||||
**Day 1-3:Schema隔离**
|
||||
|
||||
```
|
||||
Day 1嚗<EFBFBD><EFBFBD>憭<EFBFBD><EFBFBD>嚗?
|
||||
Day 1(准备):
|
||||
- [ ] 设计Schema结构
|
||||
* platform_schema嚗<EFBFBD>鍂<EFBFBD>瑯<EFBFBD><EFBFBD><EFBFBD><EFBFBD>僐<EFBFBD><EFBFBD>eature Flag嚗?
|
||||
* aia_schema嚗㇁I<EFBFBD>桃<EFBFBD>嚗?
|
||||
* asl_schema嚗㇁I<EFBFBD><EFBFBD>讃嚗?
|
||||
* pkb_schema嚗<EFBFBD>䰻霂<EFBFBD><EFBFBD>嚗?
|
||||
* platform_schema(用户、权限、Feature Flag)
|
||||
* aia_schema(AI问答)
|
||||
* asl_schema(AI文献)
|
||||
* pkb_schema(知识库)
|
||||
* dc_schema(数据清洗)
|
||||
* review_schema(稿件审查)
|
||||
* admin_schema(运营管理)
|
||||
@@ -250,19 +250,19 @@ Day 1(准备)
|
||||
- [ ] 编写迁移脚本
|
||||
- [ ] 准备测试用例
|
||||
|
||||
Day 2嚗<EFBFBD><EFBFBD><EFBFBD>𤑳㴓憓<EFBFBD>㺿<EFBFBD>𩤃<EFBFBD>嚗?
|
||||
- [ ] <EFBFBD>𥕦遣<EFBFBD><EFBFBD><EFBFBD>农chema嚗?0<><30><EFBFBD>嚗?
|
||||
- [ ] 靽格㺿Prisma Schema嚗?-4撠𤩺𧒄嚗?
|
||||
Day 2(开发环境改造):
|
||||
- [ ] 创建所有Schema(10分钟)
|
||||
- [ ] 修改Prisma Schema(2-4小时)
|
||||
* 为每个Model添加@@schema指定
|
||||
* 更新外键关联
|
||||
* <EFBFBD>舐鍂multiSchema<EFBFBD>寞<EFBFBD>?
|
||||
* 启用multiSchema特性
|
||||
|
||||
- [ ] 运行Prisma Migrate
|
||||
- [ ] 执行数据迁移
|
||||
- [ ] 运行测试
|
||||
|
||||
Day 3嚗<EFBFBD><EFBFBD>鈭抒㴓憓<EFBFBD><EFBFBD>蝘?+ 撉諹<E69289>嚗㚁<E59A97>
|
||||
- [ ] 憭<EFBFBD>遢<EFBFBD>煺漣<EFBFBD>唳旿摨?
|
||||
Day 3(生产环境迁移 + 验证):
|
||||
- [ ] 备份生产数据库
|
||||
- [ ] 执行Schema迁移
|
||||
- [ ] 数据迁移
|
||||
- [ ] 验证测试
|
||||
@@ -273,17 +273,17 @@ Day 3(生产环境迁
|
||||
**Day 4-6:Monorepo转换**
|
||||
|
||||
```
|
||||
Day 4嚗<EFBFBD>郎銋?+ 霈曇恣嚗㚁<E59A97>
|
||||
- [ ] 摮虫<EFBFBD>pnpm workspaces嚗?-2撠𤩺𧒄嚗?
|
||||
Day 4(学习 + 设计):
|
||||
- [ ] 学习pnpm workspaces(1-2小时)
|
||||
- [ ] 设计目录结构
|
||||
* packages/嚗<EFBFBD>𦆮隞<EFBFBD>銋<EFBFBD><EFBFBD>嚗?
|
||||
* apps/嚗<EFBFBD>𦆮隞<EFBFBD>銋<EFBFBD><EFBFBD>嚗?
|
||||
* packages/(放什么?)
|
||||
* apps/(放什么?)
|
||||
|
||||
- [ ] 霈曇恣<EFBFBD>曹澈<EFBFBD>?
|
||||
- [ ] 设计共享包
|
||||
* shared-types(类型定义)
|
||||
* platform-core嚗<EFBFBD>像<EFBFBD>唳瓲敹<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𧒄銝齿<EFBFBD>嚗?
|
||||
* platform-core(平台核心,暂时不拆)
|
||||
|
||||
Day 5嚗<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>踝<EFBFBD>嚗?
|
||||
Day 5(重构实施):
|
||||
- [ ] 创建根package.json和pnpm-workspace.yaml
|
||||
- [ ] 创建packages/shared-types/
|
||||
- [ ] 移动frontend到apps/frontend/
|
||||
@@ -292,27 +292,27 @@ Day 5(重构实施)
|
||||
- [ ] 配置workspace依赖
|
||||
- [ ] 更新import路径
|
||||
|
||||
Day 6嚗<EFBFBD><EFBFBD>霂閖<EFBFBD>霂<EFBFBD><EFBFBD>嚗?
|
||||
Day 6(测试验证):
|
||||
- [ ] 测试前端启动
|
||||
- [ ] 测试后端启动
|
||||
- [ ] 测试类型提示
|
||||
- [ ] 测试构建
|
||||
- [ ] 撉諹<EFBFBD><EFBFBD><EFBFBD><EFBFBD>匧<EFBFBD><EFBFBD>?
|
||||
- [ ] 验证所有功能
|
||||
- [ ] 优化配置
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Week 2-4嚗鋫SL璅∪<EFBFBD>撘<EFBFBD><EFBFBD>?
|
||||
### Week 2-4:ASL模块开发
|
||||
|
||||
**Week 2嚗𡁏<EFBFBD>憸䀹<EFBFBD>閬<EFBFBD><EFBFBD>蝑?*
|
||||
- [ ] <EFBFBD>唳旿摨栞挽霈∴<EFBFBD>asl_schema嚗?
|
||||
**Week 2:标题摘要初筛**
|
||||
- [ ] 数据库设计(asl_schema)
|
||||
- [ ] API设计
|
||||
- [ ] 后端实现(PICO配置、AI判断、筛选结果)
|
||||
- [ ] 前端实现(表格工作台、审查弹窗)
|
||||
|
||||
**Week 3嚗𡁜<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝑?*
|
||||
- [ ] PDF<EFBFBD>亦<EFBFBD><EFBFBD>券<EFBFBD><EFBFBD>?
|
||||
**Week 3:全文复筛**
|
||||
- [ ] PDF查看器集成
|
||||
- [ ] 全文AI判断
|
||||
- [ ] 前端实现(全文审查界面)
|
||||
|
||||
@@ -327,28 +327,28 @@ Day 6(测试验证)
|
||||
|
||||
### 如果选择方案B(架构改造)
|
||||
|
||||
**<EFBFBD>𣂼<EFBFBD>閬<EFBFBD><EFBFBD>嚗?*
|
||||
1. <EFBFBD>?**<2A>𡁜<EFBFBD><F0A1819C><EFBFBD><EFBFBD>敹?*嚗𡁶㮾靽⊿鵭<E28ABF>煺遠<E785BA>潘<EFBFBD>銝齿<E98A9D>亙<EFBFBD>餈穃⏚
|
||||
2. <EFBFBD>?**AI<EFBFBD>函<EFBFBD><EFBFBD>誩𨭌**嚗𡁏<E59A97>隡𡁜<E99AA1>蝔𧢲<E89D94>撖潭<E69296>銝<EFBFBD>甇?
|
||||
3. <EFBFBD>?**霂衣<E99C82><E8A1A3><EFBFBD>恣<EFBFBD>?*嚗𡁏<E59A97>憭拍<E686AD>隞餃𦛚<E9A483>賣<EFBFBD><E8B3A3>唳<EFBFBD>蝖?
|
||||
4. <EFBFBD>?**<2A><>雲<EFBFBD><E99BB2>𧒄<EFBFBD>?*嚗𡁏<E59A97><F0A1818F>𤩺<EFBFBD><F0A4A9BA>?憭拙<E686AD><E68B99>嗆<EFBFBD><E59786>寥<EFBFBD>?
|
||||
**成功要素:**
|
||||
1. ✅ **坚定的决心**:相信长期价值,不急功近利
|
||||
2. ✅ **AI全程协助**:我会全程指导每一步
|
||||
3. ✅ **详细的计划**:每天的任务都清晰明确
|
||||
4. ✅ **充足的时间**:愿意投入6天做架构改造
|
||||
|
||||
**憸<EFBFBD><EFBFBD>蝏𤘪<EFBFBD>嚗?*
|
||||
- <EFBFBD>?1<>典<EFBFBD>嚗峕𥅾<E5B395>㗇<EFBFBD><E39787>啜<EFBFBD><E5959C><EFBFBD>憯桃<E686AF><E6A183>嗆<EFBFBD>
|
||||
- <EFBFBD>?銝箸𧊋<E7AEB8>?銝芣芋<E88AA3>埈<EFBFBD>銝见<E98A9D>摰𧼮抅蝖<E68A85>
|
||||
- <EFBFBD>?<3F>踹<EFBFBD><E8B8B9>芣䔉1銝芣<E98A9D><E88AA3><EFBFBD><EFBFBD><EFBFBD>臬<EFBFBD>箏<EFBFBD>餈?
|
||||
**预期结果:**
|
||||
- ✅ 1周后,拥有清晰、健壮的架构
|
||||
- ✅ 为未来7个模块打下坚实基础
|
||||
- ✅ 避免未来1个月的技术债偿还
|
||||
|
||||
---
|
||||
|
||||
### 如果选择方案A(立即开发)
|
||||
|
||||
**<EFBFBD>𣂼<EFBFBD>閬<EFBFBD><EFBFBD>嚗?*
|
||||
1. <EFBFBD>𩤃<EFBFBD> **銝交聢<E4BAA4><E881A2>誨<EFBFBD><E8AAA8><EFBFBD><EFBFBD>?*嚗𡁜<E59A97>憿颱蝙<E9A2B1>刻”<E588BB>滚<EFBFBD>蝻<EFBFBD>嚗Òsl_projects嚗?
|
||||
**成功要素:**
|
||||
1. ⚠️ **严格的代码规范**:必须使用表名前缀(asl_projects)
|
||||
2. ⚠️ **延后但不放弃**:数据量增长前必须做Schema隔离
|
||||
3. ⚠️ **及时转换**:开发运营管理端前必须做Monorepo
|
||||
|
||||
**閫血<EFBFBD><EFBFBD>嗆<EFBFBD><EFBFBD>寥<EFBFBD>删<EFBFBD><EFBFBD>∩辣嚗?*
|
||||
- <EFBFBD>唳旿<EFBFBD>讛<EFBFBD>餈?0銝<30><E98A9D>
|
||||
**触发架构改造的条件:**
|
||||
- 数据量超过50万行
|
||||
- 开始开发运营管理端
|
||||
- 代码重复严重
|
||||
|
||||
@@ -360,116 +360,116 @@ Day 6(测试验证)
|
||||
|
||||
**我会选择方案B(先做架构改造)**
|
||||
|
||||
**<EFBFBD><EFBFBD>眏嚗?*
|
||||
**理由:**
|
||||
|
||||
**1. 技术债的利息太高**
|
||||
```
|
||||
技术债本金:6天工作量
|
||||
6-12銝芣<EFBFBD><EFBFBD>𤾸⏚<EFBFBD>荔<EFBFBD>22-36憭?
|
||||
6-12个月后利息:22-36天
|
||||
|
||||
<EFBFBD>拍<EFBFBD>嚗?00-500%
|
||||
利率:300-500%
|
||||
|
||||
餈蹱糓隞颱<EFBFBD><EFBFBD>閗<EFBFBD><EFBFBD>賣<EFBFBD>瘜蓥<EFBFBD><EFBFBD>羓<EFBFBD><EFBFBD>墧𥁒<EFBFBD>?
|
||||
这是任何投资都无法企及的回报率
|
||||
```
|
||||
|
||||
**2. <EFBFBD>啣銁<EFBFBD>舀<EFBFBD>雿單𧒄<EFBFBD>?*
|
||||
**2. 现在是最佳时机**
|
||||
```
|
||||
数据量:小(迁移快)
|
||||
代码量:适中(重构容易)
|
||||
模块数:少(测试简单)
|
||||
<EFBFBD>a<EFBFBD>閫<EFBFBD>芋嚗𡁜<EFBFBD>嚗<EFBFBD><EFBFBD><EFBFBD>𡁏<EFBFBD><EFBFBD>砌<EFBFBD>嚗?
|
||||
团队规模:小(沟通成本低)
|
||||
|
||||
6銝芣<EFBFBD><EFBFBD>𠬍<EFBFBD>隞乩<EFBFBD><EFBFBD><EFBFBD><EFBFBD>㗇辺隞園<EFBFBD>隡𡁏<EFBFBD><EFBFBD>?
|
||||
6个月后,以上所有条件都会恶化
|
||||
```
|
||||
|
||||
**3. 銝箸𧊋<EFBFBD>?銝芣芋<E88AA3>𡑒<EFBFBD>韐?*
|
||||
**3. 为未来7个模块负责**
|
||||
```
|
||||
憒<EFBFBD><EFBFBD><EFBFBD>啣銁銝滚<EFBFBD>嚗?
|
||||
- ASL璅∪<EFBFBD>嚗𡁜虾<EFBFBD>賣<EFBFBD>銝<EFBFBD>摰𡁏<EFBFBD><EFBFBD>臬<EFBFBD>?
|
||||
- DC璅∪<EFBFBD>嚗𡁶誧<EFBFBD>澤SL<EFBFBD><EFBFBD><EFBFBD><EFBFBD>臬<EFBFBD>?
|
||||
- SSA璅∪<EFBFBD>嚗𡁶誧<EFBFBD>澳C<EFBFBD><EFBFBD><EFBFBD><EFBFBD>臬<EFBFBD>?
|
||||
如果现在不做:
|
||||
- ASL模块:可能有一定技术债
|
||||
- DC模块:继承ASL的技术债
|
||||
- SSA模块:继承DC的技术债
|
||||
- ...
|
||||
- 7銝芣芋<EFBFBD>堒<EFBFBD><EFBFBD>𩤃<EFBFBD><EFBFBD><EFBFBD><EFBFBD>臬<EFBFBD>箏楊憭?
|
||||
- 7个模块叠加,技术债巨大
|
||||
|
||||
如果现在做:
|
||||
- ASL璅∪<EFBFBD>嚗帋澈<EFBFBD>埈<EFBFBD><EFBFBD>唳沲<EFBFBD>?
|
||||
- DC璅∪<EFBFBD>嚗帋澈<EFBFBD>埈<EFBFBD><EFBFBD>唳沲<EFBFBD>?
|
||||
- ASL模块:享受清晰架构
|
||||
- DC模块:享受清晰架构
|
||||
- ...
|
||||
- 7个模块都受益
|
||||
```
|
||||
|
||||
**4. 长期vs短期**
|
||||
```
|
||||
<EFBFBD>剜<EFBFBD><EFBFBD>萘輕嚗?
|
||||
- 敹?<3F>其<EFBFBD>蝥澤SL
|
||||
- 雿<EFBFBD>𧊋<EFBFBD>乩<EFBFBD><EFBFBD>?銝芣<E98A9D>隞<EFBFBD>遠
|
||||
短期思维:
|
||||
- 快1周上线ASL
|
||||
- 但未来付出1个月代价
|
||||
|
||||
<EFBFBD>踵<EFBFBD><EFBFBD>萘輕嚗?
|
||||
- <EFBFBD>訫<EFBFBD>1<EFBFBD>冽㺿<EFBFBD>?
|
||||
长期思维:
|
||||
- 投入1周改造
|
||||
- 未来7个模块都受益
|
||||
- 长期收益巨大
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## <EFBFBD><EFBFBD> 摰墧鴌皜<E9B48C><E79A9C>嚗<EFBFBD>䲮獢㇂嚗?
|
||||
## 📋 实施清单(方案B)
|
||||
|
||||
### 如果您决定采纳方案B
|
||||
|
||||
**<EFBFBD>睲<EFBFBD>撣格<EFBFBD>嚗?*
|
||||
**我会帮您:**
|
||||
|
||||
**Schema隔离(Day 1-3):**
|
||||
1. <EFBFBD>?霈曇恣摰峕㟲<E5B395><E39FB2>chema蝏𤘪<EFBFBD>
|
||||
2. <EFBFBD>?蝻硋<E89DBB>Prisma Schema靽格㺿<EFBFBD>寞<EFBFBD>
|
||||
3. <EFBFBD>?蝻硋<E89DBB><E7A18B>唳旿餈<E697BF>宏<EFBFBD>𡁏𧋦
|
||||
4. <EFBFBD>?<3F>𣂷<EFBFBD>霂衣<E99C82><E8A1A3><EFBFBD><EFBFBD><EFBFBD>賣郊撉?
|
||||
5. <EFBFBD>?<3F>函<EFBFBD><E587BD><EFBFBD>紡<EFBFBD>𣬚<EFBFBD><F0A3AC9A>?
|
||||
1. ✅ 设计完整的Schema结构
|
||||
2. ✅ 编写Prisma Schema修改方案
|
||||
3. ✅ 编写数据迁移脚本
|
||||
4. ✅ 提供详细的实施步骤
|
||||
5. ✅ 全程指导和答疑
|
||||
|
||||
**Monorepo转换(Day 4-6):**
|
||||
1. <EFBFBD>?霈曇恣Monorepo<EFBFBD>桀<EFBFBD>蝏𤘪<EFBFBD>
|
||||
2. <EFBFBD>?蝻硋<E89DBB>pnpm-workspace.yaml<EFBFBD>滨蔭
|
||||
3. <EFBFBD>?<3F>𣂷<EFBFBD><F0A382B7>齿<EFBFBD>甇仿炊皜<E7828A><E79A9C>
|
||||
4. <EFBFBD>?撣桀𨭌<E6A180>𣂼<EFBFBD><F0A382BC>曹澈隞<E6BE88><E99A9E>
|
||||
5. <EFBFBD>?<3F>函<EFBFBD><E587BD><EFBFBD>紡<EFBFBD>𣬚<EFBFBD><F0A3AC9A>?
|
||||
1. ✅ 设计Monorepo目录结构
|
||||
2. ✅ 编写pnpm-workspace.yaml配置
|
||||
3. ✅ 提供重构步骤清单
|
||||
4. ✅ 帮助提取共享代码
|
||||
5. ✅ 全程指导和答疑
|
||||
|
||||
**ASL模块开发(Week 2+):**
|
||||
1. <EFBFBD>?<3F>唳旿摨栞挽霈?
|
||||
2. <EFBFBD>?API霈曇恣
|
||||
3. <EFBFBD>?<3F>滚<EFBFBD>蝡臬<E89DA1><E887AC>唳<EFBFBD>撖?
|
||||
1. ✅ 数据库设计
|
||||
2. ✅ API设计
|
||||
3. ✅ 前后端实现指导
|
||||
|
||||
---
|
||||
|
||||
## 🎯 决策矩阵
|
||||
|
||||
### 憒<EFBFBD><EFBFBD><EFBFBD>㗇𥋘嚗?
|
||||
### 如何选择?
|
||||
|
||||
**<EFBFBD>㗇𥋘<EFBFBD>寞<EFBFBD>B嚗<EFBFBD><EFBFBD><EFBFBD>𨀣<EFBFBD>嚗?*
|
||||
- <EFBFBD>?<3F>滩<EFBFBD><E6BBA9>踵<EFBFBD><E8B8B5>嗆<EFBFBD><E59786>亙熒
|
||||
- <EFBFBD>?<3F>踵<EFBFBD><E8B8B5>訫<EFBFBD>1<EFBFBD>典<EFBFBD><E585B8>寥<EFBFBD>?
|
||||
- <EFBFBD>?<3F>訾縑<E8A8BE>訫<EFBFBD>鈭批枂瘥䈑<E798A5>300-500%嚗?
|
||||
- <EFBFBD>?<3F>芣䔉<E88AA3>匧<EFBFBD>銝芣芋<E88AA3>𡑒<EFBFBD>撘<EFBFBD><E69298>?
|
||||
- <EFBFBD>?<3F>芣䔉<E88AA3>㗇芋<E39787>㛖𡠺蝡钅<E89DA1>蝵脤<E89DB5>瘙?
|
||||
**选择方案B,如果您:**
|
||||
- ✅ 重视长期架构健康
|
||||
- ✅ 愿意投入1周做改造
|
||||
- ✅ 相信投入产出比(300-500%)
|
||||
- ✅ 未来有多个模块要开发
|
||||
- ✅ 未来有模块独立部署需求
|
||||
|
||||
**<EFBFBD>㗇𥋘<EFBFBD>寞<EFBFBD>C嚗<EFBFBD><EFBFBD><EFBFBD>𨀣<EFBFBD>嚗?*
|
||||
- <EFBFBD>𩤃<EFBFBD> <20>踵<EFBFBD><E8B8B5>鐝onorepo嚗<6F><E59A97><EFBFBD><EFBFBD>嚗?
|
||||
**选择方案C,如果您:**
|
||||
- ⚠️ 愿意做Monorepo(必需)
|
||||
- ⚠️ 但希望尽快看到ASL进展
|
||||
- <EFBFBD>𩤃<EFBFBD> <20>亙<EFBFBD><E4BA99>芣䔉Schema<6D>𠉛氖<F0A0899B>鞉𧋦隡𡁜<E99AA1><F0A1819C>?
|
||||
- ⚠️ 接受未来Schema隔离成本会增加
|
||||
|
||||
**<EFBFBD>㗇𥋘<EFBFBD>寞<EFBFBD>A嚗<EFBFBD><EFBFBD><EFBFBD>𨀣<EFBFBD>嚗?*
|
||||
- <EFBFBD>𩤃<EFBFBD> <20>園𡢿<E59C92><F0A1A2BF><EFBFBD>蝝扯翰嚗<E7BFB0><E59A97>嚗𡁏<E59A97>蝖祆<E89D96>吳eadline嚗?
|
||||
- <EFBFBD>𩤃<EFBFBD> ASL敹<EFBFBD>◆<EFBFBD>?<3F>典<EFBFBD>銝羓瑪
|
||||
- <EFBFBD>𩤃<EFBFBD> <20>亙<EFBFBD><E4BA99>芣䔉1銝芣<E98A9D><E88AA3><EFBFBD>㺿<EFBFBD>䭾<EFBFBD><E4ADBE>?
|
||||
- <EFBFBD>𩤃<EFBFBD> <20>踵<EFBFBD><E8B8B5>踵<EFBFBD><E8B8B5><EFBFBD><EFBFBD>臬<EFBFBD>?
|
||||
**选择方案A,如果您:**
|
||||
- ⚠️ 时间极其紧迫(如:有硬性deadline)
|
||||
- ⚠️ ASL必须在2周内上线
|
||||
- ⚠️ 接受未来1个月的改造成本
|
||||
- ⚠️ 愿意承担技术债
|
||||
|
||||
---
|
||||
|
||||
## 📊 投入产出比总结
|
||||
|
||||
| <EFBFBD>寞<EFBFBD> | 蝡见朖<E8A781>訫<EFBFBD> | <20>芣䔉<E88AA3>鞉𧋦 | ASL銝羓瑪<E7BE93>園𡢿 | <20>踵<EFBFBD><E8B8B5>嗥<EFBFBD> | <20>刻<EFBFBD>摨?|
|
||||
| 方案 | 立即投入 | 未来成本 | ASL上线时间 | 长期收益 | 推荐度 |
|
||||
|------|---------|---------|------------|---------|-------|
|
||||
| **<EFBFBD>寞<EFBFBD>A** | 0 | 22-36憭?| 2<EFBFBD>?| 潃鐥<E6BD83> | 潃鐥<E6BD83>潃?|
|
||||
| **<EFBFBD>寞<EFBFBD>B** | 6憭?| 0 | 3<EFBFBD>?| 潃鐥<E6BD83>潃鐥<E6BD83>潃?| 潃鐥<E6BD83>潃鐥<E6BD83>潃?|
|
||||
| **<EFBFBD>寞<EFBFBD>C** | 2-3憭?| 15-25憭?| 2.5<EFBFBD>?| 潃鐥<E6BD83>潃鐥<E6BD83> | 潃鐥<E6BD83>潃鐥<E6BD83> |
|
||||
| **方案A** | 0 | 22-36天 | 2周 | ⭐⭐ | ⭐⭐⭐ |
|
||||
| **方案B** | 6天 | 0 | 3周 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
|
||||
| **方案C** | 2-3天 | 15-25天 | 2.5周 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
|
||||
|
||||
---
|
||||
|
||||
@@ -480,7 +480,7 @@ Day 6(测试验证)
|
||||
**明天开始:**
|
||||
```bash
|
||||
# Day 1:Schema隔离设计
|
||||
<EFBFBD>睲<EFBFBD>撣格<EFBFBD>嚗?
|
||||
我会帮您:
|
||||
1. 设计完整的Schema结构
|
||||
2. 修改Prisma Schema
|
||||
3. 编写迁移脚本
|
||||
@@ -499,7 +499,7 @@ Day 6(测试验证)
|
||||
**明天开始:**
|
||||
```bash
|
||||
# Day 1:Monorepo转换
|
||||
<EFBFBD>睲<EFBFBD>撣格<EFBFBD>嚗?
|
||||
我会帮您:
|
||||
1. 设计Monorepo目录结构
|
||||
2. 编写配置文件
|
||||
3. 提供重构步骤
|
||||
@@ -517,16 +517,16 @@ Day 6(测试验证)
|
||||
|
||||
**明天开始:**
|
||||
```bash
|
||||
# Day 1嚗鋫SL璅∪<EFBFBD><EFBFBD>唳旿摨栞挽霈?
|
||||
<EFBFBD>睲<EFBFBD>撣格<EFBFBD>嚗?
|
||||
1. 霈曇恣asl_schema銵函<EFBFBD><EFBFBD>?
|
||||
# Day 1:ASL模块数据库设计
|
||||
我会帮您:
|
||||
1. 设计asl_schema表结构
|
||||
2. 编写Prisma Schema
|
||||
3. API设计
|
||||
4. 前端组件设计
|
||||
|
||||
您需要:
|
||||
1. 审阅设计方案
|
||||
2. 蝖株恕<EFBFBD>𤾸<EFBFBD>憪见<EFBFBD><EFBFBD>?
|
||||
2. 确认后开始实施
|
||||
```
|
||||
|
||||
---
|
||||
@@ -535,77 +535,77 @@ Day 6(测试验证)
|
||||
|
||||
### 如果只能记住一件事
|
||||
|
||||
**霈唬<EFBFBD>餈嗘葵嚗?*
|
||||
**记住这个:**
|
||||
```
|
||||
<EFBFBD>啣銁<EFBFBD>訫<EFBFBD>1<EFBFBD>剁<EFBFBD>Schema<EFBFBD>𠉛氖 + Monorepo嚗?
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>芣䔉1銝芣<EFBFBD>嚗?2-36憭抬<EFBFBD>
|
||||
现在投入1周(Schema隔离 + Monorepo)
|
||||
节省未来1个月(22-36天)
|
||||
|
||||
这是300-500%的投资回报率
|
||||
|
||||
<EFBFBD>䔶<EFBFBD>嚗?
|
||||
而且:
|
||||
- 现在是成本最低的时机
|
||||
- <EFBFBD>芣䔉<EFBFBD>鞉𧋦隡𡁏<EFBFBD><EFBFBD>滚<EFBFBD><EFBFBD>?
|
||||
- 餈蹱糓銝?銝芣芋<E88AA3>埈<EFBFBD><E59F88>箇<EFBFBD>
|
||||
- 未来成本会成倍增长
|
||||
- 这是为7个模块打基础
|
||||
```
|
||||
|
||||
### 如果还在犹豫
|
||||
|
||||
**<EFBFBD>株䌊撌?銝芷䔮憸矋<E686B8>**
|
||||
**问自己3个问题:**
|
||||
|
||||
1. **我的目标是什么?**
|
||||
- 敹恍<EFBFBD>煺<EFBFBD>蝥?銝芣芋<E88AA3>梹<EFBFBD><E6A2B9>?<3F>寞<EFBFBD>A
|
||||
- 快速上线1个模块?→ 方案A
|
||||
- 构建可持续的产品?→ 方案B
|
||||
|
||||
2. **我能接受延迟吗?**
|
||||
- 摰<EFBFBD><EFBFBD>銝滩<EFBFBD><EFBFBD>亙<EFBFBD>1<EFBFBD>典辣餈<EFBFBD><EFBFBD><EFBFBD>?<3F>寞<EFBFBD>A
|
||||
- 完全不能接受1周延迟?→ 方案A
|
||||
- 可以接受1周换1个月?→ 方案B
|
||||
|
||||
3. **我的技术债观念?**
|
||||
- <EFBFBD><EFBFBD><EFBFBD>蝥選<EFBFBD><EFBFBD>舘<EFBFBD><EFBFBD>綽<EFBFBD><EFBFBD>?<3F>寞<EFBFBD>A
|
||||
- <EFBFBD>嗆<EFBFBD>隡睃<EFBFBD>嚗𣬚迅甇交綫餈𨥈<EFBFBD><EFBFBD>?<3F>寞<EFBFBD>B
|
||||
- 先上线,后还债?→ 方案A
|
||||
- 架构优先,稳步推进?→ 方案B
|
||||
|
||||
---
|
||||
|
||||
## 🎉 今日成果回顾
|
||||
|
||||
**我们今天完成了:**
|
||||
- <EFBFBD>?8銝芣瓲敹<E793B2>沲<EFBFBD><E6B2B2><EFBFBD>獢<EFBFBD><E78DA2>6000+銵䕘<EFBFBD>
|
||||
- <EFBFBD>?摰峕㟲<E5B395><E39FB2><EFBFBD><EFBFBD>航楝蝥踹㦛
|
||||
- <EFBFBD>?皜<>苊<EFBFBD><E88B8A><EFBFBD>蝑硋遣霈?
|
||||
- ✅ 8个核心架构文档(6000+行)
|
||||
- ✅ 完整的技术路线图
|
||||
- ✅ 清晰的决策建议
|
||||
|
||||
**这些成果的价值:**
|
||||
- <EFBFBD>?<3F><>紡<EFBFBD>芣䔉6-12銝芣<E98A9D><E88AA3><EFBFBD><EFBFBD><EFBFBD>?
|
||||
- <EFBFBD>?<3F>踹<EFBFBD>韏啣摩頝?
|
||||
- <EFBFBD>?<3F>舀<EFBFBD>璅∪<E79285><E288AA>㚚<EFBFBD><E39A9A>桀<EFBFBD>憭𡁶<E686AD><F0A181B6>函蔡
|
||||
- ✅ 指导未来6-12个月的开发
|
||||
- ✅ 避免走弯路
|
||||
- ✅ 支持模块化销售和多种部署
|
||||
|
||||
**<EFBFBD>函緵<EFBFBD>冽𥅾<EFBFBD>厩<EFBFBD>嚗?*
|
||||
- <EFBFBD>?皜<>苊<EFBFBD><E88B8A>沲<EFBFBD><E6B2B2>挽霈?
|
||||
- <EFBFBD>?<3F>𡒊&<F0A1928A><EFBC86><EFBFBD><EFBFBD>質楝敺?
|
||||
- <EFBFBD>?<3F>瑚<EFBFBD><E7919A><EFBFBD><EFBFBD><EFBFBD>祆𤣰<E7A586>𠰴<EFBFBD><F0A0B0B4>?
|
||||
**您现在拥有的:**
|
||||
- ✅ 清晰的架构设计
|
||||
- ✅ 明确的实施路径
|
||||
- ✅ 具体的成本收益分析
|
||||
|
||||
---
|
||||
|
||||
## 🤝 我的承诺
|
||||
|
||||
**<EFBFBD>㰘捏<EFBFBD>券<EFBFBD>㗇𥋘<EFBFBD>芯葵<EFBFBD>寞<EFBFBD>嚗峕<EFBFBD><EFBFBD>賭<EFBFBD><EFBFBD>函<EFBFBD><EFBFBD>誩𨭌嚗?*
|
||||
**无论您选择哪个方案,我都会全程协助!**
|
||||
|
||||
**<EFBFBD>寞<EFBFBD>B嚗?*
|
||||
- <EFBFBD>?Day 1-3嚗锭chema<EFBFBD>𠉛氖<EFBFBD>函<EFBFBD><EFBFBD><EFBFBD>紡
|
||||
- <EFBFBD>?Day 4-6嚗鐝onorepo頧祆揢<EFBFBD>函<EFBFBD><EFBFBD><EFBFBD>紡
|
||||
- <EFBFBD>?Week 2+嚗鋫SL璅∪<EFBFBD>撘<EFBFBD><EFBFBD>穃<EFBFBD>蝔见<EFBFBD><EFBFBD>?
|
||||
**方案B:**
|
||||
- ✅ Day 1-3:Schema隔离全程指导
|
||||
- ✅ Day 4-6:Monorepo转换全程指导
|
||||
- ✅ Week 2+:ASL模块开发全程协助
|
||||
|
||||
**<EFBFBD>寞<EFBFBD>C嚗?*
|
||||
- <EFBFBD>?Day 1-3嚗鐝onorepo頧祆揢<EFBFBD>函<EFBFBD><EFBFBD><EFBFBD>紡
|
||||
- <EFBFBD>?Day 4+嚗鋫SL璅∪<EFBFBD>撘<EFBFBD><EFBFBD>穃<EFBFBD>蝔见<EFBFBD><EFBFBD>?
|
||||
**方案C:**
|
||||
- ✅ Day 1-3:Monorepo转换全程指导
|
||||
- ✅ Day 4+:ASL模块开发全程协助
|
||||
|
||||
**<EFBFBD>寞<EFBFBD>A嚗?*
|
||||
- <EFBFBD>?蝡见朖撘<E69C96>憪𧘹SL璅∪<E79285>撘<EFBFBD><E69298>穃<EFBFBD>蝔见<E89D94><E8A781>?
|
||||
- <EFBFBD>𩤃<EFBFBD> <20>鞾<EFBFBD><E99EBE><EFBFBD><EFBFBD>臬<EFBFBD>粹<EFBFBD><E7B2B9>?
|
||||
- <EFBFBD>𩤃<EFBFBD> <20>典<EFBFBD><E585B8>格𧒄<E6A0BC>箸<EFBFBD><E7AEB8>埝沲<E59F9D><E6B2B2>㺿<EFBFBD>?
|
||||
**方案A:**
|
||||
- ✅ 立即开始ASL模块开发全程协助
|
||||
- ⚠️ 提醒技术债风险
|
||||
- ⚠️ 在关键时机提醒架构改造
|
||||
|
||||
---
|
||||
|
||||
**<EFBFBD>函<EFBFBD><EFBFBD>喳<EFBFBD>嚗?* <20><>
|
||||
**您的决定?** 😊
|
||||
|
||||
请告诉我您的选择,我们立即开始行动!
|
||||
|
||||
|
||||
@@ -1,61 +1,78 @@
|
||||
# 系统总体设计
|
||||
|
||||
> **鐩<EFBFBD>綍璇存槑锛?* 鏈<>洰褰曞寘鍚<E5AF98>9璇佸惊AI绉戠爺骞冲彴鐨勭郴缁熸€讳綋璁捐<E79281>鏂囨。
|
||||
> **鏂囨。灞傜骇锛?* 鎬讳綋灞傞潰锛圥latform Level锛?
|
||||
> **目录说明:** 本目录包含壹证循AI科研平台的系统总体设计文档
|
||||
> **文档层级:** 总体层面(Platform Level)
|
||||
> **目标读者:** 技术架构师、产品经理、项目负责人
|
||||
|
||||
---
|
||||
|
||||
## 📚 文档导航
|
||||
|
||||
### 馃搶 蹇<>€熷<E282AC>鑸?
|
||||
**馃帀 閲嶈<E996B2>锛?* [2025-11-06 鏋舵瀯璁捐<E79281>瀹屾垚鎶ュ憡](./%5B閲嶈<E996B2>%5D%202025-11-06%20鏋舵瀯璁捐<E79281>瀹屾垚鎶ュ憡.md) - 浠婃棩閲嶅ぇ閲岀▼纰戯紒
|
||||
### 📌 快速导航
|
||||
|
||||
**🎉 重要:** [2025-11-06 架构设计完成报告](./%5B重要%5D%202025-11-06%20架构设计完成报告.md) - 今日重大里程碑!
|
||||
|
||||
**👉 第一次阅读:** [00-阅读指南](./00-阅读指南.md) - 如何阅读这些文档
|
||||
|
||||
**馃憠 闇€瑕佸喅绛栵細** [99-涓嬩竴姝ヨ<EFBFBD>鍔ㄥ喅绛栧缓璁甝(./99-涓嬩竴姝ヨ<E5A79D>鍔ㄥ喅绛栧缓璁?md) - 3涓<EFBFBD>柟妗堝<EFBFBD>姣?
|
||||
**👉 需要决策:** [99-下一步行动决策建议](./99-下一步行动决策建议.md) - 3个方案对比
|
||||
|
||||
---
|
||||
|
||||
### 核心文档
|
||||
|
||||
| 鏂囨。 | 璇存槑 | 鐘舵€?| 浼樺厛绾?|
|
||||
| 文档 | 说明 | 状态 | 优先级 |
|
||||
|------|------|------|-------|
|
||||
| **[00-闃呰<E99783>鎸囧崡](./00-闃呰<EFBFBD>鎸囧崡.md)** | **濡備綍闃呰<EFBFBD>杩欎簺鏂囨。锛?* | 鉁?瀹屾垚 | 猸愨瓙猸?**棣栨<E6A3A3>蹇呰<E8B987>** |
|
||||
| [00-浠婃棩鏋舵瀯璁捐<EFBFBD>鎬荤粨](./00-浠婃棩鏋舵瀯璁捐<E79281>鎬荤粨.md) | 2025-11-06宸ヤ綔鎬荤粨 | 鉁?瀹屾垚 | 猸愨瓙 鎺ㄨ崘闃呰<E99783> |
|
||||
| **[99-涓嬩竴姝ヨ<EFBFBD>鍔ㄥ喅绛栧缓璁甝(./99-涓嬩竴姝ヨ<E5A79D>鍔ㄥ喅绛栧缓璁?md)** | **3涓<EFBFBD>柟妗堝<EFBFBD>姣?鍐崇瓥寤鸿<E5AFA4>** | 鉁?瀹屾垚 | 猸愨瓙猸?**鍐崇瓥蹇呰<E8B987>** |
|
||||
| [00-鏍稿績闂<EFBFBD><EFBFBD>瑙g瓟](./00-鏍稿績闂<E7B8BE><E99782>瑙g瓟.md) | 鍥炵瓟鍏抽敭鏋舵瀯闂<E780AF><E99782> | 鉁?瀹屾垚 | P0 |
|
||||
| [01-绯荤粺鏋舵瀯鍒嗗眰璁捐<EFBFBD>](./01-绯荤粺鏋舵瀯鍒嗗眰璁捐<E79281>.md) | 涓夊眰鏋舵瀯璁捐<E79281>锛堝钩鍙般€佽兘鍔涖€佷笟鍔★級 | 鉁?瀹屾垚 | P0 |
|
||||
| [02-鏂囨。浣撶郴閲嶆瀯鏂规<EFBFBD>](./02-鏂囨。浣撶郴閲嶆瀯鏂规<E98F82>.md) | 鏂囨。缁撴瀯閲嶇粍鏂规<E98F82>v2.0 | 鉁?瀹屾垚 | P0 |
|
||||
| [03-鏁版嵁搴撴灦鏋勮<EFBFBD>鏄嶿(./03-鏁版嵁搴撴灦鏋勮<E98F8B>鏄?md) | PostgreSQL Docker閮ㄧ讲璇存槑 | 鉁?瀹屾垚 | P0 |
|
||||
| [04-杩愯惀绠$悊绔<EFBFBD>灦鏋勮<EFBFBD>璁<EFBFBD>(./04-杩愯惀绠$悊绔<E6828A>灦鏋勮<E98F8B>璁?md) | 15涓<EFBFBD>姛鑳芥ā鍧楄<EFBFBD>璁?| 鉁?瀹屾垚 | P0 |
|
||||
| [05-Schema闅旂<EFBFBD>鏂规<EFBFBD>涓庢垚鏈<EFBFBD>垎鏋怾(./05-Schema闅旂<E99785>鏂规<E98F82>涓庢垚鏈<E59E9A>垎鏋?md) | 閫昏緫闅旂<EFBFBD>vs鐗╃悊闅旂<EFBFBD> | 鉁?瀹屾垚 | P0 |
|
||||
| [06-妯″潡鐙<EFBFBD>珛閮ㄧ讲涓庡崟鏈虹増鏂规<EFBFBD>](./06-妯″潡鐙<E6BDA1>珛閮ㄧ讲涓庡崟鏈虹増鏂规<E98F82>.md) | 瀹屾暣鎵撳寘+Electron鏂规<EFBFBD> | 鉁?瀹屾垚 | P0 |
|
||||
| [07-Monorepo鏋舵瀯璇勪及](./07-Monorepo鏋舵瀯璇勪及.md) | 褰撳墠闃舵<EFBFBD>鏄<EFBFBD>惁闇€瑕丮onorepo | 鉁?瀹屾垚 | P0 |
|
||||
| [08-鏋舵瀯璁捐<EFBFBD>鍏ㄦ櫙鍥綸(./08-鏋舵瀯璁捐<E79281>鍏ㄦ櫙鍥?md) | 涓€鍥剧湅鎳傛暣涓<EFBFBD>郴缁熸灦鏋?| 鉁?瀹屾垚 | 猸?鎺ㄨ崘闃呰<E99783> |
|
||||
| 09-鎬讳綋闇€姹傛枃妗?PRD).md | 浜у搧鎬讳綋闇€姹?| 鈴?寰呰縼绉?| P1 |
|
||||
| 10-鎶€鏈<EFBFBD>灦鏋勭櫧鐨<EFBFBD>功.md | 鎶€鏈<E282AC>灦鏋勬€昏<E282AC> | 鈴?寰呰縼绉?| P1 |
|
||||
| 11-鍟嗕笟妯″紡璁捐<EFBFBD>.md | 鍟嗕笟妯″紡涓庡畾浠?| 鈴?寰呭垱寤?| P2 |
|
||||
| 12-鐗堟湰瑙勫垝.md | 鐗堟湰婕旇繘璺<E7B998>嚎鍥?| 鈴?寰呭垱寤?| P2 |
|
||||
| **[00-阅读指南](./00-阅读指南.md)** | **如何阅读这些文档?** | ✅ 完成 | ⭐⭐⭐ **首次必读** |
|
||||
| [00-今日架构设计总结](./00-今日架构设计总结.md) | 2025-11-06工作总结 | ✅ 完成 | ⭐⭐ 推荐阅读 |
|
||||
| **[99-下一步行动决策建议](./99-下一步行动决策建议.md)** | **3个方案对比+决策建议** | ✅ 完成 | ⭐⭐⭐ **决策必读** |
|
||||
| [00-核心问题解答](./00-核心问题解答.md) | 回答关键架构问题 | ✅ 完成 | P0 |
|
||||
| [01-系统架构分层设计](./01-系统架构分层设计.md) | 三层架构设计(平台、能力、业务) | ✅ 完成 | P0 |
|
||||
| [02-文档体系重构方案](./02-文档体系重构方案.md) | 文档结构重组方案v2.0 | ✅ 完成 | P0 |
|
||||
| [03-数据库架构说明](./03-数据库架构说明.md) | PostgreSQL Docker部署说明 | ✅ 完成 | P0 |
|
||||
| [04-运营管理端架构设计](./04-运营管理端架构设计.md) | 15个功能模块设计 | ✅ 完成 | P0 |
|
||||
| [05-Schema隔离方案与成本分析](./05-Schema隔离方案与成本分析.md) | 逻辑隔离vs物理隔离 | ✅ 完成 | P0 |
|
||||
| [06-模块独立部署与单机版方案](./06-模块独立部署与单机版方案.md) | 完整打包+Electron方案 | ✅ 完成 | P0 |
|
||||
| [07-Monorepo架构评估](./07-Monorepo架构评估.md) | 当前阶段是否需要Monorepo | ✅ 完成 | P0 |
|
||||
| [08-架构设计全景图](./08-架构设计全景图.md) | 一图看懂整个系统架构 | ✅ 完成 | ⭐ 推荐阅读 |
|
||||
| 09-总体需求文档(PRD).md | 产品总体需求 | ⏳ 待迁移 | P1 |
|
||||
| 10-技术架构白皮书.md | 技术架构总览 | ⏳ 待迁移 | P1 |
|
||||
| 11-商业模式设计.md | 商业模式与定价 | ⏳ 待创建 | P2 |
|
||||
| 12-版本规划.md | 版本演进路线图 | ⏳ 待创建 | P2 |
|
||||
|
||||
---
|
||||
|
||||
## 🎯 核心内容概要
|
||||
|
||||
### 馃搶 蹇<>€熷紑濮?
|
||||
**濡傛灉鎮ㄦ槸绗<E6A7B8>竴娆¢槄璇伙紝寮虹儓鎺ㄨ崘锛?*
|
||||
1. 猸?[浠婃棩鏋舵瀯璁捐<E79281>鎬荤粨](./00-浠婃棩鏋舵瀯璁捐<E79281>鎬荤粨.md) - 蹇<>€熶簡瑙d粖澶╃殑鎴愭灉
|
||||
2. 猸?[鏋舵瀯璁捐<E79281>鍏ㄦ櫙鍥綸(./08-鏋舵瀯璁捐<E79281>鍏ㄦ櫙鍥?md) - 涓€鍥剧湅鎳傛暣涓<EFBFBD>郴缁?
|
||||
### 📌 快速开始
|
||||
|
||||
**如果您是第一次阅读,强烈推荐:**
|
||||
1. ⭐ [今日架构设计总结](./00-今日架构设计总结.md) - 快速了解今天的成果
|
||||
2. ⭐ [架构设计全景图](./08-架构设计全景图.md) - 一图看懂整个系统
|
||||
|
||||
---
|
||||
|
||||
### 1. 系统架构分层
|
||||
|
||||
**三层架构 + 8个业务模块:**
|
||||
```
|
||||
鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹? 涓氬姟妯″潡灞傦紙8涓<38>ā鍧楋級 鈹?鈹? AIA | ASL | PKB | DC | SSA | ST | RVW | ADMIN 鈹?鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈫?渚濊禆
|
||||
鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹? 閫氱敤鑳藉姏灞傦紙5涓<35>兘鍔涳級 鈹?鈹? LLM缃戝叧(71%) | 鏂囨。澶勭悊(86%) | RAG(43%) 鈹?鈹? ETL(29%) | 鍖诲<E98D96>NLP(14%) 鈹?鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈫?渚濊禆
|
||||
鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹? 骞冲彴鍩虹<E98DA9>灞? 鈹?鈹? 鐢ㄦ埛鏉冮檺 | 瀛樺偍 | 閫氱煡 | 鐩戞帶 | 閰嶇疆 鈹?鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?```
|
||||
┌──────────────────────────────────────────────────┐
|
||||
│ 业务模块层(8个模块) │
|
||||
│ AIA | ASL | PKB | DC | SSA | ST | RVW | ADMIN │
|
||||
└──────────────────────────────────────────────────┘
|
||||
↓ 依赖
|
||||
┌──────────────────────────────────────────────────┐
|
||||
│ 通用能力层(5个能力) │
|
||||
│ LLM网关(71%) | 文档处理(86%) | RAG(43%) │
|
||||
│ ETL(29%) | 医学NLP(14%) │
|
||||
└──────────────────────────────────────────────────┘
|
||||
↓ 依赖
|
||||
┌──────────────────────────────────────────────────┐
|
||||
│ 平台基础层 │
|
||||
│ 用户权限 | 存储 | 通知 | 监控 | 配置 │
|
||||
└──────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
**璇﹁<EFBFBD>锛?* [01-绯荤粺鏋舵瀯鍒嗗眰璁捐<EFBFBD>.md](./01-绯荤粺鏋舵瀯鍒嗗眰璁捐<EFBFBD>.md)
|
||||
**详见:** [01-系统架构分层设计.md](./01-系统架构分层设计.md)
|
||||
|
||||
---
|
||||
|
||||
@@ -65,74 +82,97 @@
|
||||
```
|
||||
docs/
|
||||
├── 00-系统总体设计/ # 总体层面
|
||||
鈹溾攢鈹€ 01-骞冲彴鍩虹<E98DA9>灞? # 骞冲彴灞傦紙UAM銆佸瓨鍌ㄣ€侀€氱煡绛夛級
|
||||
鈹溾攢鈹€ 02-閫氱敤鑳藉姏灞? # 閫氱敤鑳藉姏锛圠LM缃戝叧銆佹枃妗e<E5A697>鐞嗙瓑锛? 鈹溾攢鈹€ 03-涓氬姟妯″潡/ # 7涓<37>嫭绔嬩笟鍔℃ā鍧? 鈹? 鈹溾攢鈹€ AIA-AI鏅鸿兘闂<E58598>瓟/
|
||||
鈹? 鈹溾攢鈹€ ASL-AI鏅鸿兘鏂囩尞/
|
||||
鈹? 鈹溾攢鈹€ PKB-涓<>汉鐭ヨ瘑搴?
|
||||
鈹? 鈹溾攢鈹€ DC-鏁版嵁娓呮礂鏁寸悊/
|
||||
鈹? 鈹溾攢鈹€ SSA-鏅鸿兘缁熻<E7BC81>鍒嗘瀽/
|
||||
鈹? 鈹溾攢鈹€ ST-缁熻<E7BC81>鍒嗘瀽宸ュ叿/
|
||||
鈹? 鈹斺攢鈹€ RVW-绋夸欢瀹℃煡绯荤粺/
|
||||
鈹溾攢鈹€ 04-寮€鍙戣<E98D99>鑼?
|
||||
├── 01-平台基础层/ # 平台层(UAM、存储、通知等)
|
||||
├── 02-通用能力层/ # 通用能力(LLM网关、文档处理等)
|
||||
├── 03-业务模块/ # 7个独立业务模块
|
||||
│ ├── AIA-AI智能问答/
|
||||
│ ├── ASL-AI智能文献/
|
||||
│ ├── PKB-个人知识库/
|
||||
│ ├── DC-数据清洗整理/
|
||||
│ ├── SSA-智能统计分析/
|
||||
│ ├── ST-统计分析工具/
|
||||
│ └── RVW-稿件审查系统/
|
||||
├── 04-开发规范/
|
||||
├── 05-部署文档/
|
||||
├── 06-测试文档/
|
||||
├── 07-运维文档/
|
||||
└── 08-项目管理/
|
||||
```
|
||||
|
||||
**璇﹁<EFBFBD>锛?* [02-鏂囨。浣撶郴閲嶆瀯鏂规<E98F82>.md](./02-鏂囨。浣撶郴閲嶆瀯鏂规<E98F82>.md)
|
||||
**详见:** [02-文档体系重构方案.md](./02-文档体系重构方案.md)
|
||||
|
||||
---
|
||||
|
||||
### 3. 核心决策
|
||||
|
||||
#### 閮ㄧ讲妯″紡锛?绉嶏級
|
||||
- 鉁?浜戠<E6B59C>SaaS鐗堬紙P0锛屽綋鍓嶏級
|
||||
- 鉁?鐙<>珛浜у搧鍖咃紙P1锛岄樁娈典簩锛? 鏀<>寔妯″潡鍖栭攢鍞?- 鉁?Electron鍗曟満鐗堬紙P2锛岄樁娈典簩锛? 浠g爜澶嶇敤85%+
|
||||
- 鉁?绉佹湁鍖栭儴缃诧紙P1锛岄樁娈典簩锛?- 鉂?~~娣峰悎閮ㄧ讲~~锛堜笉鑰冭檻锛?
|
||||
#### 妯″潡鍒掑垎锛?涓<>笟鍔℃ā鍧楋級
|
||||
1. **AIA** - AI鏅鸿兘闂<E58598>瓟 鉁?宸插畬鎴?2. **ASL** - AI鏅鸿兘鏂囩尞 鈴?涓嬩竴姝ラ噸鐐?3. **PKB** - 涓<>汉鐭ヨ瘑搴?鉁?宸插畬鎴?4. **DC** - 鏁版嵁娓呮礂鏁寸悊 鈴?瑙勫垝涓?5. **SSA** - 鏅鸿兘缁熻<E7BC81>鍒嗘瀽 鈴?瑙勫垝涓?6. **ST** - 缁熻<E7BC81>鍒嗘瀽宸ュ叿 鈴?瑙勫垝涓?7. **RVW** - 绋夸欢瀹℃煡绯荤粺 鈿?鐙<>珛绯荤粺
|
||||
8. **ADMIN** - 杩愯惀绠$悊绔?猸?v2.0鏂板<EFBFBD>
|
||||
#### 部署模式(4种)
|
||||
- ✅ 云端SaaS版(P0,当前)
|
||||
- ✅ 独立产品包(P1,阶段二)- 支持模块化销售
|
||||
- ✅ Electron单机版(P2,阶段二)- 代码复用85%+
|
||||
- ✅ 私有化部署(P1,阶段二)
|
||||
- ❌ ~~混合部署~~(不考虑)
|
||||
|
||||
#### 鏍稿績鑳藉姏锛?涓<>€氱敤鑳藉姏锛?1. **LLM缃戝叧** 猸?鏈€楂樹紭鍏堢骇锛?涓<>ā鍧椾緷璧栵紙71%澶嶇敤鐜囷級
|
||||
2. **鏂囨。澶勭悊寮曟搸** 鉁?宸插疄鐜帮紝6涓<36>ā鍧椾緷璧栵紙86%澶嶇敤鐜囷級
|
||||
3. **RAG寮曟搸** 鉁?宸插疄鐜帮紝3涓<33>ā鍧椾緷璧栵紙43%澶嶇敤鐜囷級
|
||||
4. **ETL寮曟搸** 鈴?寰呭疄鐜帮紝2涓<32>ā鍧椾緷璧栵紙29%澶嶇敤鐜囷級
|
||||
5. **鍖诲<EFBFBD>NLP** 鈴?寰呭疄鐜帮紝1涓<31>ā鍧椾緷璧栵紙14%澶嶇敤鐜囷級
|
||||
#### 模块划分(8个业务模块)
|
||||
1. **AIA** - AI智能问答 ✅ 已完成
|
||||
2. **ASL** - AI智能文献 ⏳ 下一步重点
|
||||
3. **PKB** - 个人知识库 ✅ 已完成
|
||||
4. **DC** - 数据清洗整理 ⏳ 规划中
|
||||
5. **SSA** - 智能统计分析 ⏳ 规划中
|
||||
6. **ST** - 统计分析工具 ⏳ 规划中
|
||||
7. **RVW** - 稿件审查系统 ⚡ 独立系统
|
||||
8. **ADMIN** - 运营管理端 ⭐ v2.0新增
|
||||
|
||||
#### 鎶€鏈<EFBFBD>敼閫犲喅绛?1. **Schema闅旂<E99785>** - 寤鸿<E5AFA4>锛氱幇鍦ㄥ仛锛?鍛<>級vs 鏈<>潵鍋氾紙3-5鍛<35>級猸愨瓙猸愨瓙猸?2. **Monorepo杞<6F>崲** - 寤鸿<E5AFA4>锛氱幇鍦ㄥ仛锛?-3澶╋級vs 鏈<>潵鍋氾紙7-11澶╋級猸愨瓙猸愨瓙猸?
|
||||
**璇﹁<E79287>锛?* [00-鏍稿績闂<E7B8BE><E99782>瑙g瓟.md](./00-鏍稿績闂<E7B8BE><E99782>瑙g瓟.md)
|
||||
#### 核心能力(5个通用能力)
|
||||
1. **LLM网关** ⭐ 最高优先级,5个模块依赖(71%复用率)
|
||||
2. **文档处理引擎** ✅ 已实现,6个模块依赖(86%复用率)
|
||||
3. **RAG引擎** ✅ 已实现,3个模块依赖(43%复用率)
|
||||
4. **ETL引擎** ⏳ 待实现,2个模块依赖(29%复用率)
|
||||
5. **医学NLP** ⏳ 待实现,1个模块依赖(14%复用率)
|
||||
|
||||
#### 技术改造决策
|
||||
1. **Schema隔离** - 建议:现在做(1周)vs 未来做(3-5周)⭐⭐⭐⭐⭐
|
||||
2. **Monorepo转换** - 建议:现在做(2-3天)vs 未来做(7-11天)⭐⭐⭐⭐⭐
|
||||
|
||||
**详见:** [00-核心问题解答.md](./00-核心问题解答.md)
|
||||
|
||||
---
|
||||
|
||||
## 🚀 架构演进路径
|
||||
|
||||
### 闃舵<EFBFBD>涓€锛氭ā鍧楀寲鍗曚綋锛堝綋鍓?- 6涓<36>湀锛?
|
||||
**鐩<>爣锛?* 浜戠<E6B59C>SaaS鐗圡VP
|
||||
### 阶段一:模块化单体(当前 - 6个月)
|
||||
|
||||
**鍏抽敭绾<EFBFBD>緥锛?*
|
||||
- 鉁?涓ユ牸鎸夋ā鍧楀垝鍒嗕唬鐮?- 鉁?鏁版嵁琛ㄤ娇鐢ㄦā鍧楀墠缂€锛堥€昏緫闅旂<E99785>锛?- 鉁?妯″潡闂翠笉鐩存帴import
|
||||
**目标:** 云端SaaS版MVP
|
||||
|
||||
**关键纪律:**
|
||||
- ✅ 严格按模块划分代码
|
||||
- ✅ 数据表使用模块前缀(逻辑隔离)
|
||||
- ✅ 模块间不直接import
|
||||
|
||||
**优先开发:**
|
||||
- ASL锛圓I鏅鸿兘鏂囩尞锛?- DC锛堟暟鎹<E69A9F>竻娲楋級
|
||||
- ASL(AI智能文献)
|
||||
- DC(数据清洗)
|
||||
- LLM网关
|
||||
- Schema隔离
|
||||
|
||||
---
|
||||
|
||||
### 闃舵<EFBFBD>浜岋細棣栨<EFBFBD>鎷嗗垎锛?-18涓<38>湀锛?
|
||||
**瑙﹀彂鏉′欢锛?*
|
||||
### 阶段二:首次拆分(6-18个月)
|
||||
|
||||
**触发条件:**
|
||||
- 有客户要求私有化部署
|
||||
- 有客户要求单机版
|
||||
- 闇€瑕佺嫭绔嬮攢鍞<EFBFBD>煇涓<EFBFBD>ā鍧?
|
||||
**鏋舵瀯璋冩暣锛?*
|
||||
- 需要独立销售某个模块
|
||||
|
||||
**架构调整:**
|
||||
- 引入API网关
|
||||
- 引入K8s(可选)
|
||||
- 鎷嗗垎RVW锛堝<EFBFBD>绋跨郴缁燂級涓虹嫭绔嬫湇鍔?
|
||||
- 拆分RVW(审稿系统)为独立服务
|
||||
|
||||
---
|
||||
|
||||
### 闃舵<EFBFBD>涓夛細鍏ㄩ潰寰<EFBFBD>湇鍔★紙18涓<EFBFBD>湀+锛?
|
||||
**鐩<>爣锛?* 鎵€鏈夋ā鍧楃嫭绔嬮儴缃诧紝鏀<E7B49D>寔鐏垫椿缁勫悎
|
||||
### 阶段三:全面微服务(18个月+)
|
||||
|
||||
**目标:** 所有模块独立部署,支持灵活组合
|
||||
|
||||
---
|
||||
|
||||
@@ -140,7 +180,7 @@ docs/
|
||||
|
||||
### 模块复用分析
|
||||
|
||||
| 閫氱敤鑳藉姏 | 浣跨敤棰戠巼 | 澶嶇敤妯″潡鏁?| 浼樺厛绾?|
|
||||
| 通用能力 | 使用频率 | 复用模块数 | 优先级 |
|
||||
|---------|---------|-----------|--------|
|
||||
| LLM网关 | 71% | 5/7 | P0 |
|
||||
| 文档处理 | 86% | 6/7 | P0 |
|
||||
@@ -148,70 +188,89 @@ docs/
|
||||
| ETL引擎 | 29% | 2/7 | P2 |
|
||||
| 医学NLP | 14% | 1/7 | P2 |
|
||||
|
||||
### 妯″潡鐙<EFBFBD>珛鎬у垎鏋?
|
||||
| 妯″潡 | 鐙<>珛鎬?| 鍟嗕笟浠峰€?| 鍙<>嫭绔嬮攢鍞?|
|
||||
### 模块独立性分析
|
||||
|
||||
| 模块 | 独立性 | 商业价值 | 可独立销售 |
|
||||
|------|-------|---------|-----------|
|
||||
| RVW锛堝<EFBFBD>绋匡級 | 猸愨瓙猸愨瓙猸?| 猸愨瓙猸愨瓙猸?| 鉁?鏄?|
|
||||
| ASL锛堟枃鐚<EFBFBD>級 | 猸愨瓙猸愨瓙猸?| 猸愨瓙猸愨瓙猸?| 鉁?鏄?|
|
||||
| DC锛堟暟鎹<EFBFBD>竻娲楋級 | 猸愨瓙猸愨瓙猸?| 猸愨瓙猸愨瓙猸?| 鉁?鏄?|
|
||||
| SSA锛堢粺璁″垎鏋愶級 | 猸愨瓙猸愨瓙 | 猸愨瓙猸愨瓙猸?| 鈿狅笍 涓嶴T鍗忓悓 |
|
||||
| RVW(审稿) | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ✅ 是 |
|
||||
| ASL(文献) | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ✅ 是 |
|
||||
| DC(数据清洗) | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ✅ 是 |
|
||||
| SSA(统计分析) | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⚠️ 与ST协同 |
|
||||
| ST(分析工具) | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⚠️ 与SSA协同 |
|
||||
| AIA锛圓I闂<EFBFBD>瓟锛?| 猸愨瓙猸?| 猸愨瓙猸愨瓙 | 鈿狅笍 涓嶱KB鍏宠仈 |
|
||||
| PKB锛堢煡璇嗗簱锛?| 猸愨瓙猸?| 猸愨瓙猸?| 鈿狅笍 涓嶢IA鍏宠仈 |
|
||||
| AIA(AI问答) | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⚠️ 与PKB关联 |
|
||||
| PKB(知识库) | ⭐⭐⭐ | ⭐⭐⭐ | ⚠️ 与AIA关联 |
|
||||
|
||||
---
|
||||
|
||||
## 鉁?褰撳墠浠诲姟娓呭崟
|
||||
## ✅ 当前任务清单
|
||||
|
||||
### P0任务(已完成)✅
|
||||
|
||||
- [x] 系统架构分层设计
|
||||
- [x] 文档体系重构方案v2.0
|
||||
- [x] 核心问题解答
|
||||
- [x] 鏁版嵁搴撴灦鏋勮<EFBFBD>鏄?- [x] 杩愯惀绠$悊绔<E6828A>灦鏋勮<E98F8B>璁?- [x] Schema闅旂<E99785>鏂规<E98F82>涓庢垚鏈<E59E9A>垎鏋?- [x] 妯″潡鐙<E6BDA1>珛閮ㄧ讲涓庡崟鏈虹増鏂规<E98F82>
|
||||
- [x] 数据库架构说明
|
||||
- [x] 运营管理端架构设计
|
||||
- [x] Schema隔离方案与成本分析
|
||||
- [x] 模块独立部署与单机版方案
|
||||
- [x] Monorepo架构评估
|
||||
- [x] 鏋舵瀯璁捐<EFBFBD>鍏ㄦ櫙鍥?- [x] 浠婃棩宸ヤ綔鎬荤粨
|
||||
- [x] 架构设计全景图
|
||||
- [x] 今日工作总结
|
||||
|
||||
### P1任务(待决策)⏳
|
||||
|
||||
**关键决策点:**
|
||||
- [ ] 鏄<EFBFBD>惁鐜板湪鍋歋chema闅旂<EFBFBD>锛燂紙寤鸿<EFBFBD>锛氭槸锛?鍛<>級
|
||||
- [ ] 鏄<EFBFBD>惁鐜板湪杞<EFBFBD>崲Monorepo锛燂紙寤鸿<EFBFBD>锛氭槸锛?-3澶╋級
|
||||
- [ ] 是否现在做Schema隔离?(建议:是,1周)
|
||||
- [ ] 是否现在转换Monorepo?(建议:是,2-3天)
|
||||
|
||||
**如果决定先做架构改造(方案B):**
|
||||
- [ ] Week 1锛歋chema闅旂<EFBFBD> + Monorepo杞<EFBFBD>崲锛?澶╋級
|
||||
- [ ] Week 2+锛欰SL妯″潡寮€鍙?
|
||||
- [ ] Week 1:Schema隔离 + Monorepo转换(6天)
|
||||
- [ ] Week 2+:ASL模块开发
|
||||
|
||||
**如果决定立即开发(方案A):**
|
||||
- [ ] Week 1+锛欰SL妯″潡寮€鍙?- [ ] 鏈<>潵锛氭灦鏋勬敼閫狅紙鎴愭湰鏇撮珮锛?
|
||||
- [ ] Week 1+:ASL模块开发
|
||||
- [ ] 未来:架构改造(成本更高)
|
||||
|
||||
### P2任务(后续)
|
||||
|
||||
- [ ] 迁移总体需求文档和技术架构白皮书
|
||||
- [ ] 补充ASL模块缺失文档
|
||||
- [ ] LLM网关详细设计
|
||||
- [ ] RVW独立系统规划
|
||||
- [ ] 琛ュ厖杩愯惀绠$悊绔<EFBFBD><EFBFBD>缁嗘枃妗?
|
||||
- [ ] 补充运营管理端详细文档
|
||||
|
||||
---
|
||||
|
||||
## 📖 相关文档
|
||||
|
||||
### 骞冲彴鍩虹<EFBFBD>灞?- [01-骞冲彴鍩虹<E98DA9>灞?](../01-骞冲彴鍩虹<E98DA9>灞?) - 鐢ㄦ埛鏉冮檺銆佸瓨鍌ㄣ€侀€氱煡绛?
|
||||
### 閫氱敤鑳藉姏灞?- [02-閫氱敤鑳藉姏灞?](../02-閫氱敤鑳藉姏灞?) - LLM缃戝叧銆佹枃妗e<E5A697>鐞嗐€丷AG绛?
|
||||
### 平台基础层
|
||||
- [01-平台基础层/](../01-平台基础层/) - 用户权限、存储、通知等
|
||||
|
||||
### 通用能力层
|
||||
- [02-通用能力层/](../02-通用能力层/) - LLM网关、文档处理、RAG等
|
||||
|
||||
### 业务模块
|
||||
- [03-涓氬姟妯″潡/](../03-涓氬姟妯″潡/) - 7涓<EFBFBD>嫭绔嬩笟鍔℃ā鍧?
|
||||
- [03-业务模块/](../03-业务模块/) - 7个独立业务模块
|
||||
|
||||
### 项目管理
|
||||
- [08-椤圭洰绠$悊/](../08-椤圭洰绠$悊/) - 寮€鍙戣<E98D99>鍒掋€侀噷绋嬬<E7BB8B>銆佹瘡鏃ヨ繘搴?
|
||||
- [08-项目管理/](../08-项目管理/) - 开发计划、里程碑、每日进度
|
||||
|
||||
---
|
||||
|
||||
## 🤝 贡献指南
|
||||
|
||||
### 如何更新文档
|
||||
|
||||
1. **鎬讳綋鏋舵瀯璋冩暣**锛氶渶瑕佸洟闃熻<E99783>璁猴紝鏇存柊鏈<E69F8A>洰褰曟枃妗?2. **妯″潡璁捐<E79281>璋冩暣**锛氭洿鏂板<E98F82>搴旀ā鍧楃洰褰曟枃妗?3. **鏂囨。鏍煎紡**锛氶伒寰狹arkdown瑙勮寖锛屽寘鍚<E5AF98>洰褰曘€佽〃鏍笺€佷唬鐮佸潡
|
||||
1. **总体架构调整**:需要团队讨论,更新本目录文档
|
||||
2. **模块设计调整**:更新对应模块目录文档
|
||||
3. **文档格式**:遵循Markdown规范,包含目录、表格、代码块
|
||||
|
||||
### 文档审核流程
|
||||
|
||||
1. 技术架构师审核总体文档
|
||||
2. 妯″潡璐熻矗浜哄<EFBFBD>鏍告ā鍧楁枃妗?3. 瀹氭湡鍚屾<E98D9A>鏂囨。涓庝唬鐮?
|
||||
2. 模块负责人审核模块文档
|
||||
3. 定期同步文档与代码
|
||||
|
||||
---
|
||||
|
||||
**最后更新:** 2025-11-06
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user