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:
2026-01-16 13:42:10 +08:00
parent 98d862dbd4
commit 66255368b7
560 changed files with 70424 additions and 52353 deletions

View File

@@ -1,13 +1,13 @@
# 核心问题解答
> **鍒涘缓鏃ユ湡锛?* 2025-11-06
> **鏂囨。鐩<EFBFBD>殑锛?* 鍥炵瓟鐢ㄦ埛鎻愬嚭鐨勫叧閿<E58FA7>灦鏋勯棶棰?
> **创建日期:** 2025-11-06
> **文档目的:** 回答用户提出的关键架构问题
---
## 📋 您提出的问题
鎮ㄦ彁鍑轰簡闈炲父鏍稿績鐨勬灦鏋勯棶棰橈紝杩欎簺闂<EFBFBD><EFBFBD>鐩存帴褰卞搷浜嗘暣涓<EFBFBD>郴缁熺殑璁捐<EFBFBD>銆傝<EFBFBD>鎴戦€愪竴娣卞叆瑙瓟锛?
您提出了非常核心的架构问题,这些问题直接影响了整个系统的设计。让我逐一深入解答:
---
@@ -15,12 +15,12 @@
### 您的建议
> 锛?锛夌郴缁熸€讳綋鏋舵瀯銆佹€讳綋闇€姹侾RD銆佺郴缁熸€讳綋璁捐<E79281>銆佺郴缁熸€讳綋閮ㄧ讲绛夛紝搴旇<E690B4><EFBFBD>竴涓<E7ABB4>嫭绔嬬殑鏂囦欢澶?
> 锛?锛?涓<>ā鍧楀簲璇ユ槸鐙<E6A7B8>珛鐨?涓<>枃浠跺す锛屾瘡涓<E798A1>ā鍧楁湁锛氶」鐩<E3808D><E990A9>杩般€佽<E282AC>璁℃枃妗€佷笟鍔¤<E98D94>鍒欍€佸紑鍙戣<E98D99>鍒掋€佹瘡鏃ヨ繘搴︺€侀儴缃叉枃妗?
> 1系统总体架构、总体需求PRD、系统总体设计、系统总体部署等应该是一个独立的文件夹
> 27个模块应该是独立的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缃戝叧銆佹枃妗<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>鏌ワ級
**使用模块:**
- AIAAI智能问答
- ASLAI智能文献
- 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(知识库文档)
- ✅ DCExcel/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>湇鍔℃媶鍒嗗洶闅?
- 鉂?涓嶆敮鎸佹ā鍧楃嫭绔嬮儴缃?
- **所有表在同一Schemapublic**
- ❌ 未来微服务拆分困难
- ❌ 不支持模块独立部署
---
### 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>锛屾枃妗厛琛?*
**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. 其他架构问题?