feat(aia): Complete AIA V2.0 with universal streaming capabilities

Major Changes:
- Add StreamingService with OpenAI Compatible format
- Upgrade Chat component V2 with Ant Design X integration
- Implement AIA module with 12 intelligent agents
- Update API routes to unified /api/v1 prefix
- Update system documentation

Backend (~1300 lines):
- common/streaming: OpenAI Compatible adapter
- modules/aia: 12 agents, conversation service, streaming integration
- Update route versions (RVW, PKB to v1)

Frontend (~3500 lines):
- modules/aia: AgentHub + ChatWorkspace (100% prototype restoration)
- shared/Chat: AIStreamChat, ThinkingBlock, useAIStream Hook
- Update API endpoints to v1

Documentation:
- AIA module status guide
- Universal capabilities catalog
- System overview updates
- All module documentation sync

Tested: Stream response verified, authentication working
Status: AIA V2.0 core completed (85%)
This commit is contained in:
2026-01-14 19:15:01 +08:00
parent 3d35e9c58b
commit 1b53ab9d52
386 changed files with 52096 additions and 65238 deletions

View File

@@ -2,233 +2,199 @@
## **1\. <20><EFBFBD><E689AF><EFBFBD> (Executive Summary)**
本文档为“壹证循科技”AI科研产品套件提供了一个统一的技术架构方案。
**核心战略**:采用\*\*“演进式架构”**。以**“模块化单体”**Modular Monolith启动快速迭代并为未来向**“微服务”\*\*Microservices架构的平滑过渡做好充分准备。
**核心原则**
1. **平台与产品分离**:严格划分“底层通用模块”(如用户中心)和“上层业务模块”(如统计分析)。
2. **一个架构,多种部署**:设计一套灵活的架构,通过“容器化”和“逻辑重组”,同时支持**①云端SaaS**、**②医院私有化部署**、**③混合部署**和**④医生个人单机版**。
3. **技术异构Polyglot**采用“用最合适的工具做最合适的事”的原则允许Node.js、R、Python、Java等技术栈在微服务架构中共存。
**技术路径**
* **云端/私有化**:采用 Docker(容器) \+ Kubernetes(编排) \+ API网关 的标准微服务部署方案。
* **单机版**:采用 **Electron** 框架,**100%复用前端UI代码**,并通过 Node.js主进程 \+ 本地子进程(R/Python) 的方式重组后端逻辑实现数据100%本地化。
<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>条裦**嚗𡁻<E59A97><F0A181BB>沔*\*<2A>𨀣<EFBFBD>餈𥕦<E9A488><F0A595A6><EFBFBD><E59786>?*<2A><>誑**<2A>𨀣芋<F0A880A3><EFBFBD><E5A092><EFBFBD><E893A5>?*嚗㇈odular Monolith嚗匧鍳<E58CA7><EFBFBD>敹恍<E695B9>蠘翮隞<E7BFAE><E99A9E>撟嗡蛹<E597A1>芣䔉<E88AA3>?*<2A>𨅯凝<F0A885AF>滚𦛚<E6BB9A>𩄼*\*嚗㇈icroservices嚗㗇沲<E39787><E6B2B2><EFBFBD>撟單<E6929F><EFBFBD><EFBFBD>𡁜末<F0A1819C><E69CAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
**<EFBFBD><EFBFBD><EFBFBD><EFBFBD>**嚗?
1. **撟喳蝱銝𦒘漣<F0A69298><E6BCA3><EFBFBD>蝳?*嚗帋艇<E5B88B><EFBFBD><E6BE86><EFBFBD><EFBFBD>𨅯<EFBFBD><EFBFBD><E69285>𡁶鍂璅<E79285><E288AA><EFBFBD><EFBFBD><EFBFBD>瑚葉敹<E89189><E695B9><EFBFBD>𢞖<EFBFBD><EFBFBD><EFBFBD><E69285><EFBFBD>⊥芋<E28AA5><EFBFBD><EFBFBD><EFBFBD><E68692><E99C88><E288AA><EFBFBD><E7909C>?
2. **銝<>銝芣沲<E88AA3><E6B2B2><EFBFBD>憭𡁶<E686AD><F0A181B6>函蔡**嚗朞挽霈∩<E99C88>憟㛖<E6869F>瘣餌<E798A3><E9A48C><EFBFBD>嚗屸<E59A97><EFBFBD><E69C9E>𨅯捆<F0A885AF><EFBFBD><E585B8><EFBFBD><E598A5>𣈯<EFBFBD><EFBFBD><E9A489><EFBFBD><E6BBA8><EFBFBD><E59885>峕𧒄<E5B395><EFBFBD>**<EFBFBD><EFBFBD>蝡特aaS**<2A>?*<2A><E288AA><EFBFBD><EFBCB9><EFBFBD><E58CA7>函蔡**<2A>?*<2A><EFBCB8><E6AFBD><EFBFBD>蝵?*<2A>?*<2A><><EFBFBD>煺葵鈭箏<E988AD><E7AE8F><EFBFBD>**<2A>?
3. **<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Polyglot嚗?*嚗𡁻<E59A97><F0A181BB><EFBFBD>𦦵鍂<F0A6A6B5><E98D82><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>撌亙<E6928C><E4BA99>𡁏<EFBFBD><F0A1818F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>鈭𦥑<E988AD><EFBFBD><E89098><EFBFBD><EFBFBD><E59A97>霈硼ode.js<6A><73><EFBFBD><EFBFBD>ython<6F><6E>ava蝑㗇<E89D91><E39787><EFBFBD><E88880>典凝<E585B8>滚𦛚<E6BB9A><EFBFBD>銝剖<E98A9D>摮塩<E691AE>?
**<2A><><EFBFBD>航楝敺?*嚗?
* **鈭𤑳垢/蝘<><E89D98><EFBFBD>?*嚗𡁻<E59A97><F0A181BB>?Docker(摰孵膥) \+ Kubernetes(蝻𡝗<E89DBB>) \+ API蝵穃<E89DB5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滚𦛚<E6BB9A>函蔡<E587BD><EFBFBD><E5AF9E>?
* **<2A>閙㦤<E99699>?*嚗𡁻<E59A97><F0A181BB>?**Electron** 獢<>沲嚗?*100%憭滨鍂<E6BBA8>滨垢UI隞<49><E99A9E>**嚗<><EFBFBD><EFBFBD> Node.js銝餉<E98A9D>蝔?\+ <20>砍𧑐摮鞱<E691AE>蝔?R/Python) <20><>䲮撘誯<E69298><EFBFBD><E89D8F>蝡舫<E89DA1><EFBFBD><EFBFBD><E59A97><EFBFBD>唳㺭<E594B3>?00%<25>砍𧑐<E7A08D><EFBFBD>?
## **2\. 銝𡁜𦛚<F0A1819C><F0A69B9A><EFBFBD><E79899><EFBFBD><EFBFBD><E59786><EFBFBD>**
### **2.1 产品功能矩阵 (7大模块)**
### **2.1 鈭批<EFBFBD><EFBFBD><EFBFBD><EFBFBD>拚猐 (7憭扳芋<E689B3>?**
1. **<EFBFBD><EFBFBD>蝏蠘恣<EFBFBD><EFBFBD><EFBFBD> (SSA)**
2. **蝏蠘恣<E8A098><E681A3><EFBFBD>撌亙<E6928C> (ST)**
3. **AI<41><EFBFBD><E7AE84><EFBFBD> (AIA)**
4. **AI<41><EFBFBD><E7AE84><EFBFBD>讃 (ASL)**
5. **个人知识库 (PKB)**
5. **銝芯犖<EFBFBD><EFBFBD>摨?(PKB)**
6. **<EFBFBD>唳旿皜<EFBFBD><EFBFBD><EFBFBD><EFBFBD> (DC)**
7. **銝芯犖銝剖<E98A9D> (UAM)**
### **2.2 憭齿<E686AD><E9BDBF><EFBFBD><EFBFBD>銝帋<E98A9D><E5B88B>函蔡<E587BD><EFBFBD>**
1. **多版本 (SaaS)**:云端版分为专业版、高级版、旗舰版。
2. **模块化售卖**任何模块如AI智能文献都可能独立售卖。
3. **私有化部署**医院要求将数据敏感模块如SSA、DC部署在内网服务器。
4. **混合部署**医院本地使用SSA同时又调用云端的ASL。
5. **单机版部署**:医生需要在个人电脑(Windows/Mac)上离线运行SSA、DC、ASL等模块确保数据文献、病例不出本地。
1. **憭𡁶<EFBFBD><EFBFBD>?(SaaS)**嚗帋<E59A97>蝡舐<E89DA1><E88890><EFBFBD>蛹銝㮖<E98A9D><E3AE96><EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝥抒<E89DA5><E68A92><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E59581>?
2. **<EFBFBD><EFBFBD>硋睸<EFBFBD>?*嚗帋遙雿閙芋<E99699><EFBFBD><EFBFBD>I<EFBFBD><EFBFBD><E7AE84><EFBFBD>讃嚗厰<E59A97><E58EB0><EFBFBD><E888AA><EFBFBD><E7A589><EFBFBD><E6A180>?
3. **<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝵?*嚗𡁜龫<F0A1819C><EFBFBD><EFBFBD><E79899><EFBFBD>唳旿<E594B3>𤩺<EFBFBD><E79285><EFBFBD><E59A97>SSA<53><41>C嚗厰<E59A97>蝵脣銁<E884A3><E98A81><EFBFBD><EFBFBD>滚𦛚<E6BB9A><EFBFBD>?
4. **瘛瑕<EFBFBD><EFBFBD>函蔡**嚗𡁜龫<F0A1819C>𧋦<EFBCB8>唬蝙<E594AC>沒SA嚗<41><E59A97><EFBFBD><EFBFBD><EFBFBD>鍂鈭𤑳垢<F0A491B3><E59EA2>SL<53>?
5. **<EFBFBD>閙㦤<EFBFBD><EFBFBD><EFBFBD>蝵?*嚗𡁜龫<F0A1819C><EFBFBD><EFBFBD>銁銝芯犖<E88AAF><EFBFBD>(Windows/Mac)銝羓氖蝥輯<E89DA5>銵玺SA<53><41>C<EFBFBD><43>SL蝑㗇芋<E39787><EFBFBD>蝖桐<E89D96><E6A190>唳旿嚗<E697BF><E59A97><EFBFBD><EFBFBD><E69FB4><EFBFBD>靘页<E99D98>銝滚枂<E6BB9A>砍𧑐<E7A08D>?
## **3\. <20><EFBFBD><E8A9A8><EFBFBD>嚗鋫PI蝵穃<E89DB5> \+ 敺格<E695BA><E6A0BC>?*
## **3\. 核心架构API网关 \+ 微服务**
为满足以上所有需求,我们推荐一个解耦的、面向服务的架构。
* **客户端 (Clients)**包括Web浏览器、PC单机版(Electron)、移动端。
銝箸說頞喃誑銝𦠜<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>睲賑<EFBFBD><EFBFBD><EFBFBD>銝芾圾<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𢒰<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
* **摰<E691B0>蝡?(Clients)**嚗𡁜<E59A97><F0A1819C>柱eb瘚讛<E7989A><E8AE9B><EFBFBD><E585B7>C<EFBFBD>閙㦤<E99699>?Electron)<29><><EFBFBD>函垢<E587BD>?
* **API蝵穃<E89DB5> (API Gateway)**嚗𡁏<E59A97><F0A1818F><EFBFBD><E39787><EFBFBD>蝏煺<E89D8F><E785BA>亙藁<E4BA99><E89781><EFBFBD><EFBFBD><E99F90>
* **认证**校验用户Token
* **路由**:将请求转发给正确的后端微服务(如 /api/stats \-\> SSA服务)。
* **聚合**(未来)合并多个服务的数据。
* **后端服务 (Services)**:真正执行业务逻辑的单元。
* **霈方<EFBFBD>**嚗𡁏嵗撉𣬚鍂<F0A3AC9A>oken<EFBFBD>?
* **頝舐眏**嚗𡁜<E59A97>霂瑟<E99C82>頧砍<E9A0A7>蝏蹱迤蝖桃<E89D96><E6A183>𡒊垢敺格<E695BA><E6A0BC><EFBFBD>憒?/api/stats \-\> SSA<EFBFBD>滚𦛚嚗剹<EFBFBD>?
* **<EFBFBD>𡁜<EFBFBD>**嚗?<3F>芣䔉)<29><>僎憭帋葵<E5B88B>滚𦛚<E6BB9A><F0A69B9A><EFBFBD><EFBFBD>?
* **<EFBFBD>𡒊垢<EFBFBD>滚𦛚 (Services)**嚗𡁶<EFBFBD><EFBFBD><EFBFBD>銵䔶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
## **4\. <20>滚𦛚璅<E79285><E288AA><EFBFBD> (撟喳蝱 vs 鈭批<E988AD>)**
这是架构解耦的第一步。
餈蹱糓<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝚砌<EFBFBD>甇乓<EFBFBD>?
### **4.1 摨訫<E691A8><E8A8AB>𡁶鍂璅<E79285> (撟喳蝱撅?**
### **4.1 底层通用模块 (平台层)**
这些是所有产品共用的“地基”,必须稳固、统一。
1. **用户与权限中心 (UAM)**
* **功能**:管理用户、角色、租户(医院)、权限。
* **价值**实现SaaS多版本专业版/高级版)的功能开关(Feature Flag)控制。
2. **AI大模型网关 (LLM Gateway)**
* **功能**统一管理所有对大模型的调用DeepSeek, Claude等
* **价值**根据SaaS版本、成本考量动态切换模型。是AI功能的核心中枢。
3. **账户/个人中心**:管理用户配置、订单、帮助文档。
4. **通知服务**:邮件、站内信。
### **4.2 独立业务模块 (产品层)**
这些是可插拔的“积木”对应你们的7大功能每个都应设计为**独立的服务**。
餈嗘<EFBFBD><EFBFBD><EFBFBD><EFBFBD>劐漣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𨅯𧑐<EFBFBD><EFBFBD><EFBFBD><EFBFBD>◆蝔喳𤐄<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
1. **<EFBFBD><EFBFBD>銝擧<EFBFBD><EFBFBD>𣂷葉敹?(UAM)**
* **<2A><EFBFBD>**嚗𡁶恣<F0A181B6><E681A3><EFBFBD><EFBFBD><E791AF><EFBFBD><EFBFBD><EFBFBD><E884AF><EFBFBD><EFBFBD><EFBFBD><E79880>駁堺嚗剹<E59A97><E589B9><EFBFBD><EFBFBD><EFBFBD>?
* **隞瑕<E99A9E>?*嚗𡁜<E59A97><F0A1819C>訕aaS憭𡁶<E686AD><F0A181B6>穿<EFBFBD>銝㮖<E98A9D><E3AE96>?擃条漣<E69DA1><E6BCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B3A2>?Feature Flag)<29><EFBFBD><E689B9>?
2. **AI憭扳芋<EFBFBD><EFBFBD><EFBFBD>?(LLM Gateway)**
* **<EFBFBD><EFBFBD>**嚗𡁶<E59A97><EFBFBD>蝞∠<E89D9E><E288A0><EFBFBD><EFBFBD>匧笆憭扳芋<E689B3><EFBFBD><EFBFBD>鍂嚗㇄eepSeek, Claude蝑㚁<E89D91><E39A81>?
* **隞瑕<EFBFBD>?*嚗𡁏覔<F0A1818F>娟aaS<61><53>𧋦<EFBFBD><F0A78BA6><EFBFBD><EFBFBD><EFBFBD><E7A588><EFBFBD><EFBFBD><EFBFBD><E586BD><EFBFBD><EFBFBD><EFBCB8><EFBFBD><E58D9D>糓AI<41><EFBFBD><E8A098><EFBFBD>瓲敹<E793B2><EFBFBD><EFBFBD>?
3. **韐行<EFBFBD>/銝芯犖銝剖<E98A9D>**嚗𡁶恣<F0A181B6><E681A3><EFBFBD><EFBFBD>蝵柴<E89DB5><E69FB4><EFBFBD>𨰻<EFBFBD><F0A8B0BB><EFBFBD><EFBFBD><EFBFBD><E78DA2>?
4. **<EFBFBD>𡁶䰻<EFBFBD>滚𦛚**嚗𡁻<E59A97>隞嗚<E99A9E><E5979A><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
### **4.2 <20><EFBFBD>銝𡁜𦛚璅<E79285> (鈭批<E988AD>撅?**
餈嗘<EFBFBD><EFBFBD>臬虾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𦦵妖<EFBFBD><EFBFBD><EFBFBD>撖孵<EFBFBD>雿牐賑<EFBFBD>?憭批<E686AD><E689B9><EFBFBD>瘥譍葵<E8AD8D><EFBFBD>霈曇恣銝?*<2A><EFBFBD><E7A589><EFBFBD><EFBFBD><EFBFBD>?*<2A>?
1. **<EFBFBD><EFBFBD>蝏蠘恣 (SSA) <20>滚𦛚** (<28><EFBFBD><E887AC><EFBFBD><E288AA>惹T)
2. **AI<41><EFBFBD> (AIA) <20>滚𦛚**
3. **AI<41><49>讃 (ASL) <20>滚𦛚**
4. **知识库 (PKB) 服务**
5. **数据清洗 (DC) 服务** (详见第6节)
4. **<EFBFBD><EFBFBD>摨?(PKB) <EFBFBD>滚𦛚**
5. **<EFBFBD>唳旿皜<EFBFBD><EFBFBD> (DC) <EFBFBD>滚𦛚** (霂西<EFBFBD>蝚?<3F>?
## **5\. 推荐技术栈 (技术异构)**
## **5\. <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><E887AC>?**
我们允许“用最合适的工具做最合适的事”。
<EFBFBD>睲賑<EFBFBD><EFBFBD><EFBFBD>𦦵鍂<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>撌亙<EFBFBD><EFBFBD>𡁏<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>鈭𦥑<EFBFBD><EFBFBD>?
| 憸<><E686B8> | <20><EFBFBD><E588BB><EFBFBD><EFBFBD>?| <20><>眏 |
| <20>滨垢 (UI) | React <20>?Vue | 1\. <20>唬誨SPA獢<41><EFBFBD>?2\. <20>?00%憭滨鍂鈭竝eb<65><62><EFBFBD>Electron<6F>閙㦤<E99699><E3A6A4><EFBFBD>?|
| API蝵穃<E89DB5> & 蝎睃<E89D8E>撅?| Node.js | 1\. 擃睃僎<E79D83>飡/O<><EFBFBD><E689AF>?2\. 雿靝蛹<E99D9D>𨀣<EFBFBD><EFBFBD><E9A485><EFBFBD><EFBFBD><E89098>㇌/Python<6F>𧼮虜<F0A7BCAE><EFBFBD><E99E9F>?3\. Electron<6F>閙㦤<E99699><E3A6A4><EFBFBD>蝡臬<E89DA1><E887AC><EFBFBD>?|
| 蝏蠘恣<E8A098><E681A3><EFBFBD> (SSA) | R 霂剛<E99C82> | 蝏蠘恣<E8A098><E681A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Plumber <20><>𠂔<EFBFBD>脖蛹API嚗峕<E59A97><E5B395><EFBFBD>摮鞱<E691AE>蝔贝<E89D94><E8B49D><EFBFBD>?|
| AI/<2F>唳旿皜<E697BF><E79A9C> (DC) | Python | 撘箏之<E7AE8F><E4B98B>andas<61><73>cikit-learn<72><6E>LP<4C><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> FastAPI <20>湧蠧API嚗峕<E59A97><E5B395><EFBFBD>摮鞱<E691AE>蝔贝<E89D94><E8B49D><EFBFBD>?|
| <20>唳旿摨?| PostgreSQL \+ Vector DB | PostgreSQL憭<4C><E686AD>蝏𤘪<E89D8F><F0A498AA>𡝗㺭<F0A19D97><EFBFBD><E6AEB7><EFBFBD><E785BE>唳旿摨𤘪𣈲<F0A498AA><F0A388B2>䰻霂<E4B0BB><E99C82>(PKB)<29><>AG<41>?|
| <20>函蔡<E587BD><EFBFBD> | Docker \+ Kubernetes | <20>唬誨鈭穃<E988AD><E7A983><EFBFBD><E6AFBA><EFBFBD><E887AD><EFBFBD><EFBFBD><EFBFBD><E59A97><EFBFBD>啣撕<E595A3><EFBFBD>憭𡁶㴓憓<E3B493><E68693>蝵脯<E89DB5>?|
| <20>閙㦤<E99699><E3A6A4>䲮獢?| Electron | <20><EFBFBD><E887AD><EFBFBD><E8B3A2><EFBFBD>𣈲<EFBFBD><F0A388B2>ode.js<6A>𡒊垢<F0A1928A><E59EA2><EFBFBD><EFBFBD>汾eb<65>滨垢UI<55><49>楊撟喳蝱<E596B3><EFBFBD><E5AF9E>?|
| 领域 | 推荐技术 | 理由 |
| 前端 (UI) | React 或 Vue | 1\. 现代SPA框架。 2\. 可100%复用于Web版和Electron单机版。 |
| API网关 & 粘合层 | Node.js | 1\. 高并发I/O性能。 2\. 作为“总指挥”粘合R/Python非常成熟。 3\. Electron单机版后端复用。 |
| 统计分析 (SSA) | R 语言 | 统计分析的王者。通过 Plumber 包暴露为API或通过子进程调用。 |
| AI/数据清洗 (DC) | Python | 强大的Pandas、Scikit-learn、NLP生态。通过 FastAPI 暴露API或通过子进程调用。 |
| 数据库 | PostgreSQL \+ Vector DB | PostgreSQL处理结构化数据向量数据库支持知识库(PKB)的RAG。 |
| 部署方案 | Docker \+ Kubernetes | 现代云原生的唯一标准,实现弹性和多环境部署。 |
| 单机版方案 | Electron | 唯一能原生支持Node.js后端、复用Web前端UI的跨平台方案。 |
## **6\. 模块深度解析:(DC) 数据清洗整理服务**
“数据清洗整理 (DC)” 模块是连接原始数据与有效分析的桥梁,技术挑战分为两部分:
1. **海量表格ETL**:处理百万行、多表格的结构化数据,执行高效的连接(Join)、重组(Pivot)和排序。
2. **非结构化文本NER**从病理、出入院小结等大段文本中提取结构化字段如TNM分期、肿瘤大小
针对不同的部署场景,我们采用两种实现方案:
## **6\. 璅<E79285>瘛勗漲閫<E6BCB2><E996AB>嚗?DC) <20>唳旿皜<E697BF><E79A9C><EFBFBD><EFBFBD><E6B8A1>滚𦛚**
<EFBFBD>𨀣㺭<EFBFBD><EFBFBD>瘣埈㟲<EFBFBD>?(DC)<29>?璅<E79285><E288AA><EFBFBD><E888AA><EFBFBD>憪𧢲㺭<F0A7A2B2><EFBFBD><E6A190><EFBFBD><E39787><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E28098><E79287><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E88880><EFBFBD>銝箔舅<E7AE94><EFBFBD>嚗?
1. **瘚琿<E7989A>銵冽聢ETL**嚗𡁜<E59A97><F0A1819C><EFBFBD>蓡銝<E893A1><E98A9D><EFBFBD><EFBFBD><EFBFBD>銵冽聢<E586BD><E881A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>唳旿嚗峕<E59A97>銵屸<E98AB5><E5B1B8><EFBFBD><EFBFBD>餈墧𦻖(Join)<29><><EFBFBD>蝏?Pivot)<29><EFBFBD>摨譌<E691A8>?
2. **<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𧋦NER**嚗帋<E59A97><E5B88B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>仿堺撠讐<E692A0>蝑匧之畾菜<E795BE><E88F9C>砌葉嚗峕<E59A97><E5B395>𣇉<EFBFBD><F0A38789><EFBFBD><EFBFBD>摮埈挾嚗<E68CBE><E59A97>TNM<4E><4D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>文之撠𧶏<E692A0><F0A7B68F>?
<EFBFBD><EFBFBD>笆銝滚<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝵脣㦤<EFBFBD><EFBFBD><EFBFBD>睲賑<EFBFBD><EFBFBD>鍂銝斤<EFBFBD>摰䂿緵<EFBFBD><EFBFBD>嚗?
### **6.1 <20><EFBFBD><EFBFBD>嚗𡁏<E59A97><F0A1818F><E288AA><E886A5>隡条<E99AA1> (Cloud-Optimal)**
此方案用于**云端SaaS版**和**私有化部署**,目标是追求极致的**效率、准确率和质量**(假设数据已脱敏)。
甇斗䲮獢<EFBFBD>鍂鈭?*鈭𤑳垢SaaS<61>?*<2A>?*蝘<><E89D98><EFBFBD><EFBFBD>蝵?*嚗𣬚𤌍<F0A3AC9A><F0A48C8D>糓餈賣<E9A488><E8B3A3><EFBFBD><EFBFBD>?*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝖桃<E89D96><E6A183>諹捶<E8ABB9>?*嚗<><E59A97>霈暹㺭<E69AB9>桀歇<E6A180><EFBFBD>嚗剹<E59A97>?
* **<2A><><EFBFBD><EFBFBD>**嚗䥪ython (FastAPI) \+ Polars \+ LLM API (Claude/GPT) \+ PostgreSQL
* **工作流**
1. **API接收**FastAPI (Python) 服务接收用户上传的多个Excel文件。
2. **ETL (Polars)**
* **放弃Pandas**采用Polars库。Polars基于Rust,天生**多线程并行**,内存效率极高。
* 在服务器的大内存中如64GB+Polars能以**数秒或数十秒**的速度在内存中完成200万行数据的多表JOIN、GROUP BY等操作速度是Pandas的10-100倍。
3. **NER (LLM API)**
* FastAPI 服务**并行调用** AI大模型网关见4.1节)。
* 使用 **Claude 3** **GPT-4o** 等SOTA模型配合JSON Mode从病理报告中提取结构化信息。
* **优势**:准确率极高,能理解复杂上下文,无需训练模型。
4. **交付**:清洗完成的Polars DataFrame被存入PostgreSQL结果表,前端可在线浏览或导出。
* **架构融合**:此 FastAPI \+ Polars 服务,**就是**白皮书架构中的“数据清洗 (DC) 微服务”由“Node.js API网关”负责调用。
### **6.2 方案二:单机版 (Desktop-Offline)**
此方案用于**医生个人电脑**,目标是**100%数据隐私**和**离线可用性**,是对性能和准确率的**必要妥协**。
* **撌乩<E6928C>瘚?*嚗?
1. **API<EFBFBD>交𤣰**嚗鎄astAPI (Python) <EFBFBD>滚𦛚<EFBFBD>交𤣰<EFBFBD><EFBFBD>銝𠹺<EFBFBD><EFBFBD><EFBFBD><EFBFBD>銝枕xcel<EFBFBD><EFBFBD><EFBFBD>?
2. **ETL (Polars)**嚗?
* **<EFBFBD><EFBFBD>Pandas**嚗屸<EFBFBD><EFBFBD>olars摨瓐<EFBFBD><EFBFBD>olars<EFBFBD><EFBFBD>Rust<EFBFBD><EFBFBD>?*憭𡁶瑪蝔见僎銵?*嚗<><E59A97>摮䀹<E691AE><E480B9><EFBFBD><EFBFBD>擃塩<E69383>?
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>銝哨<EFBFBD>憒?4GB+嚗㚁<EFBFBD>Polars<EFBFBD>賭誑**<2A><EFBFBD><E59581>𡝗㺭<F0A19D97><E3BAAD><EFBFBD>**<2A><><EFBFBD>笔漲嚗<E6BCB2><EFBFBD><E98A81><EFBFBD>銝剖<E98A9D><E58996>?00銝<30><E98A9D><EFBFBD>唳旿<E594B3><E697BF><EFBFBD>銵沅OIN<EFBFBD><EFBFBD>ROUP BY蝑㗇<EFBFBD>雿頣<EFBFBD><EFBFBD>笔漲<EFBFBD>andas<EFBFBD>?0-100<EFBFBD><EFBFBD>?
3. **NER (LLM API)**嚗?
* FastAPI <EFBFBD>滚𦛚**撟嗉<E6929F><EFBFBD>鍂** AI憭扳芋<E689B3><EFBFBD><E8AEA0><EFBFBD>閫?.1<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
* 雿輻鍂 **Claude 3** <EFBFBD>?**GPT-4o** 蝑农OTA璅<E79285>嚗屸<E59A97><E5B1B8>㇇SON Mode嚗䔶<E59A97><E494B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>銝剜<E98A9D><E5899C>𣇉<EFBFBD><F0A38789><EFBFBD><EFBFBD>靽⊥<E99DBD><E28AA5>?
* **隡睃飵**嚗𡁜<E59A97>蝖桃<E89D96><E6A183><EFBFBD><EFBFBD>嚗諹<E59A97><E8ABB9><EFBFBD>圾憭齿<E686AD>銝𠹺<E98A9D><F0A0B9BA><EFBFBD><EFBFBD><EFBFBD>𣳇<EFBFBD>霈剔<E99C88><E79285><E288AA>?
4. **鈭支<EFBFBD>**嚗𡁏<E59A97>瘣堒<E798A3><E5A092><EFBFBD>Polars DataFrame鋡怠<EFBFBD><EFBFBD>ostgreSQL蝏𤘪<EFBFBD>銵剁<EFBFBD><EFBFBD>滨垢<EFBFBD>臬銁蝥踵<EFBFBD><EFBFBD><EFBFBD>撖澆枂<EFBFBD>?
* **<EFBFBD><EFBFBD><EFBFBD><EFBFBD>**嚗𡁏迨 FastAPI \+ Polars <EFBFBD>滚𦛚嚗?*撠望糓**<2A>賜铜銋行沲<E8A18C><E6B2B2><EFBFBD><E89189><EFBFBD>𨀣㺭<F0A880A3><EFBFBD>瘣?(DC) 敺格<E695BA><E6A0BC><EFBFBD><EFBFBD><E59885><EFBFBD>鑥ode.js API蝵穃<E89DB5><E7A983><EFBFBD><EFBFBD><E99F90><EFBFBD><EFBFBD>?
### **6.2 <20><EFBFBD>鈭䕘<E988AD><E49598>閙㦤<E99699>?(Desktop-Offline)**
甇斗䲮獢<EFBFBD>鍂鈭?*<2A><EFBFBD>銝芯犖<E88AAF><EFBFBD>**嚗𣬚𤌍<F0A3AC9A><F0A48C8D>糓**100%<25>唳旿<E594B3><EFBFBD>**<2A>?*蝳餌瑪<E9A48C>舐鍂<E88890>?*嚗峕糓撖寞<E69296><EFBFBD><E689AF><EFBFBD><EFBFBD>蝖桃<E89D96><E6A183>?*敹<><E695B9>憒亙<E68692>**<2A>?
* **<2A><><EFBFBD><EFBFBD>**嚗鍃lectron (Node.js) \+ Python (Pandas) \+ SQLite \+ spaCy (<28>砍𧑐NLP)
* **工作流**
1. **总指挥 (Node.js)**Electron的主进程作为总指挥调度Python子进程。
2. **ETL (SQLite)**
* **严禁**将200万行数据一次性读入内存会导致用户电脑崩溃
* Python脚本被调用,使用Pandas的chunksize参数,**分块**读取Excel**逐行**写入一个本地**SQLite**数据库文件 (.db)
* **关键**:利用 **SQLite 数据库引擎**而不是Pandas内存来执行所有繁重的JOIN和GROUP BY。这是在低内存电脑上处理大数据的唯一稳定方案。
3. **NER (本地 spaCy)**
* **严禁**将原始病例PHI发送到任何云端API重大违规
* Python脚本被调用,加载 **spaCy** 等**100%本地运行**的NLP模型在用户电脑上提取实体。
* **劣势**spaCy准确率有限无法处理复杂语义效果远不如LLM
4. **交付**:所有结果被写回本地 SQLite 数据库。Electron前端通过分页从SQLite中读取数据展示或导出为Excel
* **架构融合**:此方案**就是**白皮书【7.4 场景四:医生单机版】的具体实现。
* **撌乩<E6928C>瘚?*嚗?
1. **<EFBFBD><EFBFBD><EFBFBD>?(Node.js)**嚗鍃lectron<6F><6E>蜓餈𤤿<E9A488>雿靝蛹<E99D9D><EFBFBD><E9A485><EFBFBD><EFBFBD>漲Python摮鞱<E691AE>蝔卝<E89D94>?
2. **ETL (SQLite)**嚗?
* **銝亦<EFBFBD>**撠?00銝<30><E98A9D><EFBFBD>唳旿銝<E697BF>甈⊥<E79488>扯粉<E689AF><EFBFBD>摮矋<E691AE>隡𡁜紡<F0A1819C>渡鍂<E6B8A1>瑞㩞<E7919E>穃援皞<E68FB4><E79A9E><EFBFBD>?
* Python<EFBFBD>𡁏𧋦鋡怨<EFBFBD><EFBFBD><EFBFBD>雿輻鍂Pandas<EFBFBD><EFBFBD>hunksize<EFBFBD><EFBFBD>㺭嚗?*<2A><><EFBFBD>**霂餃<E99C82>Excel嚗?*<2A><EFBFBD>**<2A><EFBFBD><EFBFBD>銝芣𧋦<E88AA3>?*SQLite**<EFBFBD>唳旿摨𤘪<EFBFBD>隞?(.db)<EFBFBD>?
* **<EFBFBD>喲睸**嚗𡁜⏚<F0A1819C>?**SQLite <20>唳旿摨枏<E691A8><E69E8F>?*嚗<><E59A97><EFBFBD><E494B6>烈andas<61><73><EFBFBD>嚗㗇䔉<E39787><EFBFBD><E689AF><EFBFBD><EFBFBD><EFBFBD><E58EA9><EFBFBD>JOIN<EFBFBD>ROUP BY<EFBFBD><EFBFBD><EFBFBD><EFBFBD>臬銁雿𤾸<EFBFBD>摮条㩞<EFBFBD><EFBFBD><EFBFBD><EFBFBD>憭扳㺭<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝔喳<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
3. **NER (<EFBFBD>砍𧑐 spaCy)**嚗?
* **銝亦<EFBFBD>**撠<><E692A0>憪讠<E686AA>靘页<E99D98>PHI嚗匧<E59A97><E58CA7><EFBFBD><EFBFBD>隞颱<E99A9E>鈭𤑳垢API嚗<49><E59A97>憭扯<E686AD><EFBFBD><E996AB><EFBFBD>?
* Python<EFBFBD>𡁏𧋦鋡怨<EFBFBD><EFBFBD><EFBFBD><EFBFBD>㰘蝸 **spaCy** 蝑?*100%<EFBFBD>砍𧑐餈鞱<EFBFBD>**<2A><>LP璅<E79285><EFBFBD><EFBFBD><EFBFBD><E586BD><EFBFBD>銝𦠜<E98A9D><F0A6A09C><EFBFBD>雿瓐<E99BBF>?
* **<EFBFBD><EFBFBD>飵**嚗窃paCy<43><79><EFBFBD><EFBC86><EFBFBD><EFBFBD><EFBFBD><E7909C><EFBFBD><EFBFBD><E686AD>憭齿<E686AD>霂凋<E99C82>嚗峕<E59A97><E5B395>𡏭<EFBFBD>銝滚<E98A9D>LLM<EFBFBD>?
4. **鈭支<EFBFBD>**嚗𡁏<E59A97><F0A1818F><EFBFBD><E58EA9>𡏭◤<F0A18FAD><EFBFBD><E59D94>砍𧑐 SQLite <20>唳旿摨瓐<E691A8><E79390>lectron<6F>滨垢<E6BBA8><EFBFBD><E69C9E><EFBFBD>△隞燑QLite銝剛粉<E5899B>𡝗㺭<F0A19D97><EFBFBD>蝷綽<E89DB7><E7B6BD>硋紡<E7A18B>箔蛹Excel<EFBFBD>?
* **<EFBFBD><EFBFBD><EFBFBD><EFBFBD>**嚗𡁏迨<F0A1818F><EFBFBD>**撠望糓**<2A>賜铜銋艾<E98A8B>?.4 <20>箸艶<E7AEB8>𨥈<EFBFBD><F0A8A588><EFBFBD><E9A48C>閙㦤<E99699><E3A6A4><EFBFBD>𤑳<EFBFBD><F0A491B3><EFBFBD>摰䂿緵<E482BF>?
## **7\. <20>喲睸頝臬<E9A09D>嚗𡁜<E59A97><F0A1819C>函蔡璅<E79285>摰䂿緵**
<EFBFBD><EFBFBD>憟𦯀誨<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>雿閙𣈲<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>銝𡁜㦤<EFBFBD><EFBFBD>
### **7.1 场景一云端SaaS版 (标准微服务)**
### **7.1 <EFBFBD>箸艶銝<EFBFBD>嚗帋<EFBFBD>蝡特aaS<EFBFBD>?(<28><><EFBFBD>敺格<E695BA><E6A0BC>?**
* **架构**:所有服务(UAM, SSA, ASL...和数据库都在云端通过K8s管理。
* **客户端**:用户通过浏览器访问。
### **7.2 场景二:医院本地化部署 (私有化)**
* **架构**:将数据敏感的服务(如 SSA服务、DC服务及其数据库打包为Docker容器。
* **部署**使用K8s或更轻量的K3s在医院内网服务器上“一键部署”。
* **数据**数据100%留在医院内网。
* **<EFBFBD><EFBFBD>**嚗𡁏<E59A97><F0A1818F><EFBFBD><E39787><EFBFBD>UAM, SSA, ASL...嚗匧<EFBFBD><EFBFBD>唳旿摨㯄<EFBFBD><EFBFBD><EFBFBD>蝡荔<EFBFBD><EFBFBD><EFBFBD>K8s蝞∠<EFBFBD><EFBFBD>?
* **<EFBFBD>蝡?*嚗𡁶鍂<F0A181B6><EFBFBD><EFBFBD>瘚讛<E7989A><E8AE9B>刻挪<E588BB><EFBFBD>?
### **7.2 <20>箸艶鈭䕘<E988AD><E49598>駁堺<E9A781>砍𧑐<E7A08D><EFBFBD>蝵?(蝘<><E89D98><EFBFBD>?**
* **<2A><EFBFBD>**嚗𡁜<E59A97><F0A1819C>唳旿<E594B3>𤩺<EFBFBD><F0A4A9BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>憒?SSA<53>滚𦛚<E6BB9A><F0A69B9A>C<EFBFBD>滚𦛚嚗匧<E59A97><E58CA7>嗆㺭<E59786><EFBFBD><E6A180><EFBFBD>銝慣ocker摰孵膥<E5ADB5>?
* **<2A>函蔡**嚗帋蝙<E5B88B>沛8s<38>𡝗凒頧駁<E9A0A7><E9A781><EFBFBD>3s嚗<73><EFBFBD>駁堺<E9A781><E5A0BA><EFBFBD><EFBFBD>滚𦛚<E6BB9A><EFBFBD><E585B6><EFBFBD><E99D9D><EFBFBD>蝵聆<E89DB5><EFBFBD>?
* **<2A>唳旿**嚗𡁏㺭<F0A1818F>?00%<25>坔銁<E59D94>駁堺<E9A781><E5A0BA><EFBFBD><EFBFBD>?
### **7.3 <20>箸艶銝㚁<E98A9D>瘛瑕<E7989B><E79195>函蔡**
* **架构**:在场景二的基础上,前端应用被智能配置。
* **流程**
* 用户访问 .../stats \-\> 前端调用**医院内网API** (http://192.168.x.x/api/stats)
* 用户访问 .../literature \-\> 前端调用**云端公网API** (https://api.yizhengxun.com/api/lit)
* **<EFBFBD><EFBFBD>**嚗𡁜銁<F0A1819C>箸艶鈭𣬚<E988AD><F0A3AC9A><EFBFBD>銝𠺪<E98A9D><F0A0BAAA>滨垢摨𠉛鍂鋡急惣<E680A5><EFBFBD>蝵柴<E89DB5>?
* **<EFBFBD><EFBFBD>**嚗?
* <EFBFBD><EFBFBD>霈輸䔮 .../stats \-\> <EFBFBD>滨垢靚<EFBFBD>鍂**<2A>駁堺<E9A781><E5A0BA><EFBFBD>API** (http://192.168.x.x/api/stats)<EFBFBD>?
* <EFBFBD><EFBFBD>霈輸䔮 .../literature \-\> <EFBFBD>滨垢靚<EFBFBD>鍂**鈭𤑳垢<F0A491B3><EFBFBD>API** (https://api.yizhengxun.com/api/lit)<EFBFBD>?
### **7.4 <20>箸艶<E7AEB8>𨥈<EFBFBD><F0A8A588><EFBFBD><E9A48C>閙㦤<E99699>?(Electron)**
### **7.4 场景四:医生单机版 (Electron)**
这是技术上最关键的“过渡”,它不是“打包”,而是\*\*“架构重组”\*\*。
云端版架构:
餈蹱糓<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>喲睸<EFBFBD><EFBFBD><EFBFBD>𡏭<EFBFBD>皜﹦<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𨀣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>峕糓\*\*<2A>𨀣沲<F0A880A3><E6B2B2><EFBFBD><EFBFBD><E89D8F>𩄼*\*<2A>?
鈭𤑳垢<EFBFBD><EFBFBD><EFBFBD>?
\[瘚讛<E7989A><E8AE9B>沃I\] \<-- (HTTP蝵𤑳<E89DB5>) \--\> \[鈭𤑳垢Node.js API\] \<-- (HTTP) \--\> \[鈭𤑳垢R/Python<6F>滚𦛚\]
单机版架构:
\[Electron UI (复用)\] \<-- (IPC本机通信) \--\> \[Electron主进程 (Node.js复用)\] \<-- (Child Process本机调用) \--\> \[本地R/Python脚本\]
**实现路径:**
<EFBFBD>閙㦤<EFBFBD><EFBFBD><EFBFBD>?
\[Electron UI (憭滨鍂)\] \<-- (IPC<EFBFBD>祆㦤<EFBFBD>帋縑) \--\> \[Electron銝餉<EFBFBD>蝔?(Node.js憭滨鍂)\] \<-- (Child Process<EFBFBD>祆㦤靚<EFBFBD>) \--\> \[<EFBFBD>砍𧑐R/Python<EFBFBD>𡁏𧋦\]
**摰䂿緵頝臬<EFBFBD>嚗?*
1. **新建Electron项目**
2. **移植前端 (UI复用)**将云端版的React/Vue**编译后的静态文件** (dist目录) 完整复制到Electron中。
3. **重组后端 (逻辑复用)**
* 云端版的 **Node.js API逻辑**,被移植到 **Electron的主进程(main.js)** 中。
* 云端版的 **R Python 脚本**,被作为**本地文件**打包进安装包。
1. **<EFBFBD>啣遣Electron憿寧𤌍**<2A>?
2. **蝘餅<EFBFBD><EFBFBD>滨垢 (UI憭滨鍂)**嚗𡁜<E59A97>鈭𤑳垢<F0A491B3><E59EA2><EFBFBD>React/Vue**蝻𤥁<E89DBB><F0A4A581>𡒊<EFBFBD><F0A1928A><EFBFBD><E8B9B1><EFBFBD>隞?* (dist<73><EFBFBD>) 摰峕㟲憭滚<E686AD><E6BB9A>lectron銝准<EFBFBD>?
3. **<EFBFBD><EFBFBD><EFBFBD>𡒊垢 (<28><EFBFBD>憭滨鍂)**嚗?
* 鈭𤑳垢<EFBFBD><EFBFBD><EFBFBD> **Node.js API<EFBFBD><EFBFBD>**嚗諹◤蝘餅<E89D98><E9A485>?**Electron<EFBFBD><EFBFBD>蜓餈𤤿<EFBFBD>(main.js)** 銝准<EFBFBD>?
* 鈭𤑳垢<EFBFBD><EFBFBD><EFBFBD> **R <EFBFBD>?Python <EFBFBD>𡁏𧋦**嚗諹◤雿靝蛹**<EFBFBD>砍𧑐<EFBFBD><EFBFBD>辣**<2A><EFBFBD>餈𥕦<E9A488><EFBFBD><E98B86><EFBFBD>?
* main.js (Node.js) <20><EFBFBD> child\_process.spawn嚗<6E><E59A97>餈𤤿<E9A488>嚗㗇䔉**<2A>砍𧑐靚<F0A79190>鍂**餈嗘<E9A488>R/Python<6F>𡁏𧋦<F0A1818F><F0A78BA6><EFBFBD><EFBFBD><EFBFBD>摰䂿緵閫<E7B7B5>洵6.2<EFBFBD><EFBFBD><EFBFBD>
4. **数据交换**Node.js、R、Python之间通过 stdin/stdout **JSON** 字符串进行数据交换。
5. **本地AI功能 (ASL模块)**
* Node.js (fs模块) 读取本地文献夹中的PDF。
* Node.js (pdf-parse) 在**本地**提取摘要文本。
* Node.js (axios) **只将“摘要文本”发送给云端LLM API** (如DeepSeek) 进行分析。注意这与DC模块的原始病例处理不同
* **文献原文件 (.pdf) 100% 不离开用户电脑**。
6. **本地存储**:使用 **SQLite**(通过 npm install sqlite3在本地存储文献的元数据、分析结果等。
4. **<EFBFBD>唳旿鈭斗揢**嚗鐭ode.js<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ython銋钅𡢿<EFBFBD><EFBFBD> stdin/stdout <EFBFBD>?**JSON** 摮㛖泵銝脰<E98A9D>銵峕㺭<E5B395>桐漱<E6A190><EFBFBD>?
5. **<EFBFBD>砍𧑐AI<EFBFBD><EFBFBD> (ASL璅<E79285>)**嚗?
* Node.js (fs<EFBFBD>) 霂餃<E99C82><E9A483>砍𧑐<E7A08D><F0A79190>讃憭嫣葉<E5ABA3><E89189>DF<44>?
* Node.js (<EFBFBD>?pdf-parse) <EFBFBD>?*<2A>砍𧑐**<2A>𣂼<EFBFBD><F0A382BC><EFBFBD><E48185><EFBFBD>𧋦<EFBFBD>?
* Node.js (<EFBFBD>?axios) **<EFBFBD><EFBFBD><EFBFBD>𨀣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>鈭𤑳垢LLM API** (<EFBFBD>eepSeek) 餈𥡝<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瘜冽<EFBFBD>嚗朞<EFBFBD>銝𥟠C璅<EFBFBD><EFBFBD><EFBFBD><EFBFBD>憪讠<EFBFBD>靘见<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
* **<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>隞?(.pdf) 100% 銝滨氖撘<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**<2A>?
6. **<EFBFBD>砍𧑐摮睃<EFBFBD>**嚗帋蝙<E5B88B>?**SQLite**嚗<><E59A97><EFBFBD> npm install sqlite3嚗匧銁<E58CA7>砍𧑐摮睃<E691AE><E79D83><EFBFBD><EFBFBD><E8AE83><EFBFBD><EFBFBD>唳旿<E594B3><E697BF><EFBFBD><EFBFBD><EFBFBD><E99E9F>𦦵<EFBFBD><F0A6A6B5>?
## **8\. 撌亦<E6928C><E4BAA6><EFBFBD><E7A2B6>澆捆<E6BE86>?(敹<>粉)**
## **8\. 工程化与兼容性 (必读)**
### **8.1 <20>閙㦤<E99699><E3A6A4><EFBFBD><EFBFBD>𨅯<EFBFBD>摰嗆▲<E59786><EFBFBD><E884B2>?*
### **8.1 单机版的“全家桶”挑战**
<EFBFBD>閙㦤<EFBFBD><EFBFBD><EFBFBD>撌亦<EFBFBD><EFBFBD><EFBFBD>銝齿糓撘<EFBFBD><EFBFBD>𡢅<EFBFBD><EFBFBD>峕糓**<2A><EFBFBD>**<2A>?
* <20><EFBFBD> .exe (Windows) <20>?.dmg (Mac) 摰㕑<E691B0><E39591><EFBFBD><EFBFBD>憿餅糓銝<E7B393>銝芬<E98A9D>𨅯<EFBFBD>摰嗆▲<E59786><EFBFBD>?
* <20><EFBFBD><EFBFBD><EFBFBD>?electron-builder 蝑匧極<E58CA7><EFBFBD><EFBFBD>誑銝𧢲<E98A9D><F0A7A2B2><EFBFBD>摰寞<E691B0>蝏𤏸<E89D8F><EFBFBD>銝芸<E98A9D><EFBFBD><E98B86>嚗?
1. <20><EFBFBD>Electron摨𠉛鍂 (Node.js \+ <20>滨垢UI)<29>?
2.<>銝?*撋<><E6928B>撘讐<E69298> Python 餈鞱<E9A488><E99EB1>?*<2A>𦠜<EFBFBD><F0A6A09C><EFBFBD>韏?(pandas, spaCy蝑?<3F>?
3.<>銝?*撋<><E6928B>撘讐<E69298> R 餈鞱<E9A488><E99EB1>?*<2A>𦠜<EFBFBD><F0A6A09C><EFBFBD>韏?(jsonlite蝑?<3F>?
* 餈嗘<E9A488>雿踹<E99BBF><EFBFBD><E98B86>雿梶妖<E6A2B6>睃之嚗<E4B98B><E59A97>500MB+嚗㚁<E59A97>餈坔笆鈭𦒘<E988AD>銝朞蔓隞嗆糓摰<E7B393><E691B0><EFBFBD>臭誑<E887AD><EFBFBD><E4BA99><EFBFBD><EFBFBD>?
### **8.2 敹<><EFBFBD><EFBFBD>嚗阳in 7 銝?32雿滨頂蝏?*
单机版的工程挑战不是开发,而是**打包**。
**餈蹱糓銝<E7B393>銝芸<E98A9D>銝𡁜<E98A9D>摰匧<E691B0><E58CA7><EFBFBD>嚗䔶<E59A97><E494B6><EFBFBD><E88880><EFBFBD>厰★<E58EB0>?*
* 您的 .exe (Windows) 和 .dmg (Mac) 安装包必须是一个“全家桶”。
* 您需要使用 electron-builder 等工具,将以下所有内容捆绑进一个安装包:
1. 您的Electron应用 (Node.js \+ 前端UI)。
2. 一个**嵌入式的 Python 运行时**及所有依赖 (pandas, spaCy等)。
3. 一个**嵌入式的 R 运行时**及所有依赖 (jsonlite等)。
* 这会使安装包体积变大如500MB+),这对于专业软件是完全可以接受的。
### **8.2 必须放弃Win 7 与 32位系统**
**这是一个商业和安全决策,不是技术选项。**
**必须声明:** 您的单机版最低系统要求是 **Windows 10 (64位)**
**理由:**
1. **稳定性的“崩溃”问题**32位系统有4GB内存上限APP最多用2-3GB。您的**R语言统计分析**和**数据清洗**都是内存消耗大户,处理真实数据时**不是变卡,而是会直接崩溃闪退**,导致用户数据丢失。
2. **安全性的“漏洞”问题**微软已放弃Win 7。现代Electron, Node.js, Python, R生态已**全部停止支持32位和Win 7**。强行兼容意味着您必须使用5年前、充满已知安全漏洞的“古董”技术栈来处理敏感医疗数据这是不可接受的。
**敹<>◆憯唳<E686AF>嚗?* <20><EFBFBD><E587BD>閙㦤<E99699><E3A6A4><EFBFBD>雿𡒊頂蝏蠘<E89D8F><EFBFBD>糓 **Windows 10 (64雿?**<EFBFBD>?
**<EFBFBD><EFBFBD>眏嚗?*
1. **蝔喳<E89D94><E596B3><EFBFBD><E68A92>𨅯援皞<E68FB4><E79A9E>嗪䔮憸?*嚗?2雿滨頂蝏<E9A082><E89D8F>4GB<47><42><EFBFBD>銝𢠃<E98A9D>嚗淾PP<50><50>憭𡁶鍂2-3GB<47><42><EFBFBD><EFBFBD>?*R霂剛<E99C82>蝏蠘恣<E8A098><E681A3><EFBFBD>**<EFBFBD>?*<2A>唳旿皜<E697BF><E79A9C>**<2A>賣糓<E8B3A3><E7B393><EFBFBD><EFBFBD><E798A8>堒之<E5A092><EFBFBD><EFBFBD><E686AD><EFBFBD><EFBFBD><E7AC94>唳旿<E594B3>?*銝齿糓<E9BDBF>睃㨃嚗諹<E59A97>峕糓隡𡁶凒<F0A181B6>亙援皞<E68FB4><EFBFBD><E7B7BE>**嚗<><EFBFBD>渡鍂<E6B8A1>瑟㺭<E7919F>桐腺憭晞<E686AD>?
2. **摰匧<E691B0><E58CA7><EFBFBD><E68A92>𨀣<EFBFBD>瘣嫰<E798A3>嗪䔮憸?*嚗𡁜凝頧臬歇<E887AC><EFBFBD>Win 7<><37>緵隞Βlectron, Node.js, Python, R<><52><EFBFBD><EFBFBD>**<EFBFBD><EFBFBD><EFBFBD>𨀣迫<EFBFBD><EFBFBD>32雿滚<EFBFBD>Win 7**<2A><>撩銵<E692A9><E98AB5>摰寞<E691B0><E5AF9E><EFBFBD><E5969F><EFBFBD>憿颱蝙<E9A2B1>?撟游<E6929F><E6B8B8><EFBFBD><EFBFBD><E288AA><EFBFBD><E4BA99><EFBFBD>瘣䂿<E798A3><E482BF>𨅯𧂈<F0A885AF><F0A78288><EFBFBD><EFBFBD><E884B2><EFBFBD><E88880><EFBFBD><E4BA99><EFBFBD><EFBFBD><EFBFBD>笔龫<E7AC94>埈㺭<E59F88><EFBFBD>餈蹱糓銝滚虾<E6BB9A><EFBFBD><E4BA99><EFBFBD><EFBFBD>?
## **9\. <20><>𧫴畾萄<E795BE><E89084>質楝蝥踹㦛 (Roadmap)**
作为初创公司,我们必须务实。
雿靝蛹<EFBFBD><EFBFBD><EFBFBD>砍虬嚗峕<EFBFBD>隞砍<EFBFBD>憿餃𦛚摰𠺶<EFBFBD>?
### **9.1 <20>嗆挾銝<E68CBE>嚗帋<E59A97>蝡烘VP (0-6銝芣<E98A9D>) \- <20>𨀣芋<F0A880A3><EFBFBD><E5A092><EFBFBD><E893A5>?*
### **9.1 阶段一云端MVP (0-6个月) \- “模块化单体”**
* **<2A><EFBFBD>**嚗𡁜翰<F0A1819C><EFBFBD>蝥蹂<E89DA5>蝡特aaS<61><53><EFBFBD>撉諹<E69289><EFBFBD><EFBFBD>?
* **<2A><EFBFBD>**嚗帋<E59A97>銝芯誨<E88AAF><E8AAA8><EFBFBD>摨?(Monorepo)嚗䔶<E59A97>銝芯蜓<E88AAF>𡒊垢<F0A1928A>滚𦛚嚗<F0A69B9A><E59A97>Node.js嚗剹<E59A97>?
* **<2A>喲睸蝥芸<E89DA5> (<28>枏𧑐<E69E8F>?**嚗?
1. **隞<><E99A9E><EFBFBD>𠉛氖**嚗𡁜銁隞<E98A81><E99A9E><EFBFBD><EFBFBD>銝𠺪<E98A9D>銝交聢<E4BAA4><EFBFBD>𨅯像<F0A885AF>唳芋<E594B3><EFBFBD><EFBFBD><E598A5><EFBFBD><E99D9D>⊥芋<E28AA5><EFBFBD><EFBFBD><E598A5><EFBFBD><EFBFBD>?
2. **<EFBFBD>唳旿<EFBFBD>𠉛氖**嚗𡁜銁<F0A1819C><EFBFBD>銝枉ostgreSQL<51>唳旿摨㮖葉嚗?*銝交聢雿輻鍂銝滚<E98A9D><E6BB9A><EFBFBD>chema** (憒?uam\_schema, stats\_schema) <20>仿<EFBFBD>蝳餅㺭<E9A485><EFBFBD><E69FB4><EFBFBD><EFBFBD>舀𧊋<E88880><EFBFBD><E4BAA4><EFBFBD><EFBFBD>滚𦛚<E6BB9A><F0A69B9A><EFBFBD><EFBFBD>賜瑪<E8B39C>?
3. **<EFBFBD><EFBFBD>Docker**嚗帋<E59A97>蝚砌<E89D9A>憭抵絲嚗峕<E59A97><E5B395><EFBFBD><E58CA7><EFBFBD><E3BBAB><EFBFBD>霂𨰻<E99C82><F0A8B0BB><EFBFBD>鈭抒㴓憓<E3B493><E68693><EFBFBD><EFBFBD><EFBFBD> Docker <20>?docker-compose<73>?
### **9.2 <20>嗆挾鈭䕘<E988AD>擐𡝗活<F0A19D97>函蔡 (6-18銝芣<E98A9D>) \- <20>𣈯<EFBFBD>甈⊥<E79488><E28AA5><EFBFBD><EFBFBD>?*
* **目标**快速上线云端SaaS版验证市场。
* **架构**:一个代码仓库 (Monorepo)一个主后端服务如Node.js
* **关键纪律 (打地基)**
1. **代码隔离**:在代码目录上,严格按“平台模块”和“业务模块”划分。
2. **数据隔离**在同一个PostgreSQL数据库中**严格使用不同的Schema** (如 uam\_schema, stats\_schema) 来隔离数据。这是未来拆分微服务的生命线。
3. **全员Docker**:从第一天起,所有开发、测试、生产环境都必须基于 Docker 和 docker-compose。
### **9.2 阶段二:首次部署 (6-18个月) \- “首次拆分”**
* **触发点**:迎来第一个“私有化部署”客户,或“单机版”需求。
* **架构**
1. **引入K8s**在云端正式启用Kubernetes进行服务编排。
2. **引入API网关**在K8s集群前部署Nginx或Kong。
3. **执行首次拆分**:将 SSA 和 DC 模块(连同它们的 stats\_schema从主应用中**物理拆分**出来打包成第一个独立的微服务采用6.1节的“最优版”架构)。
4. **开发单机版**启动第一个Electron项目按照【7.4】中的路径进行“重组”采用6.2节的“单机版”架构)。
### **9.3 阶段三:全面微服务 (18个月+)**
* **目标**:支持灵活的业务组合和团队扩张。
* **架构**:随着业务发展,将 ASL, PKB 等其他成熟模块也逐步拆分为独立的微服务,实现最终的“乐高积木式”的灵活架构。
* **閫血<EFBFBD><EFBFBD>?*嚗朞<E59A97><E69C9E>亦洵銝<E6B4B5>銝芬<E98A9D>𦦵<EFBFBD><F0A6A6B5><EFBFBD><E58CA7>函蔡<E587BD>嘥恥<E598A5><EFBFBD><E79880><EFBFBD>𨅯<EFBFBD><F0A885AF><EFBFBD><E7AE87><EFBFBD><EFBFBD><E79899>?
* **<EFBFBD><EFBFBD>**嚗?
1. **撘訫<E69298>K8s**嚗𡁜銁鈭𤑳垢甇<E59EA2><E79487><EFBFBD>舐鍂Kubernetes餈𥡝<E9A488><F0A5A19D>滚𦛚蝻𡝗<E89DBB><F0A19D97>?
2. **撘訫<EFBFBD>API蝵穃<EFBFBD>**嚗𡁜銁K8s<38><73><EFBFBD><EFBFBD>蝵淇ginx<6E>嬑ong<6E>?
3. **<EFBFBD><EFBFBD>擐𡝗活<EFBFBD><EFBFBD><EFBFBD>**嚗𡁜<E59A97> SSA <20>?DC 璅<E79285><EFBFBD><E59A97><EFBFBD><EFBFBD><EFBFBD>隞祉<E99A9E> stats\_schema嚗劐<E59A97>銝餃<E98A9D><E9A483>其葉**<2A><EFBFBD><E68B8D><EFBFBD><EFBFBD>**<2A>箸䔉嚗峕<E59A97><E5B395><EFBFBD><EFBFBD>蝚砌<E89D9A>銝芰𡠺蝡讠<E89DA1>敺格<E695BA><E6A0BC><EFBFBD><E288B4><EFBFBD>鍂6.1<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𨀣<EFBFBD>隡条<EFBFBD><EFBFBD>脲沲<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
4. **<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**嚗𡁜鍳<F0A1819C>函洵銝<E6B4B5>銝枕lectron憿寧𤌍嚗峕<E59A97><E5B395><EFBFBD>?.4<EFBFBD>睲葉<EFBFBD><EFBFBD>楝敺<EFBFBD><EFBFBD>銵𢞖<EFBFBD>𣈯<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>鍂6.2<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𨅯<EFBFBD><EFBFBD><EFBFBD><EFBFBD>脲沲<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
### **9.3 <20>嗆挾銝㚁<E98A9D><E39A81>券𢒰敺格<E695BA><E6A0BC>?(18銝芣<E98A9D>+)**
* **<2A><EFBFBD>**嚗𡁏𣈲<F0A1818F><F0A388B2><EFBFBD>瘣餌<E798A3>銝𡁜𦛚蝏<F0A69B9A><E89D8F><EFBFBD><EFBFBD>𣪧<EFBFBD><F0A3AAA7><EFBFBD>撘𨬭<E69298>?
* **<2A><EFBFBD>**嚗𡁻<E59A97><F0A181BB><EFBFBD>銝𡁜𦛚<F0A1819C><EFBFBD><EFBFBD><E59A97> ASL, PKB 蝑匧<E89D91>隞𡝗<E99A9E><F0A19D97><EFBFBD><EFBFBD>𦯀<EFBFBD><F0A6AF80>鞉郊<E99E89><E9838A><EFBFBD>銝箇𡠺蝡讠<E89DA1>敺格<E695BA><E6A0BC><EFBFBD>摰䂿緵<E482BF><E7B7B5><EFBFBD><E89D8F><EFBFBD><EFBFBD>擃条妖<E69DA1><EFBFBD><E585B8><EFBFBD><E89098>菜暑<E88F9C><EFBFBD><E59786>?
## **10\. 蝏栞捏**
本架构方案的核心是\*\*“演进”\*\*。它在初期(阶段一)通过“模块化单体”保证了初创公司的迭代速度,同时通过“代码/数据隔离”和“全面Docker化”的纪律为未来阶段二、三向复杂微服务和多部署形态的平滑过渡打下了坚实的地基避免了未来推倒重来的灾难性成本。
<EFBFBD>祆沲<EFBFBD><EFBFBD>䲮獢<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>珮*\*<2A>𨀣<EFBFBD>餈𥕞<E9A488>𩄼*\*<2A><><EFBFBD><EFBFBD><EFBFBD><E585B8><EFBFBD><EFBFBD><EFBFBD>嗆挾銝<E68CBE>嚗厰<E59A97><EFBFBD><E69C9E>𨀣芋<F0A880A3><EFBFBD><E5A092><EFBFBD><E893A5><EFBFBD><EFBFBD><E99C82><EFBFBD><EFBFBD><E598A5>砍虬<E7A08D><E899AC>翮隞<E7BFAE><E99A9E>笔漲嚗<E6BCB2><E59A97><EFBFBD><EFBFBD><EFBFBD><E69C9E>靝誨<E99D9D>?<3F>唳旿<E594B3>𠉛氖<F0A0899B><EFBFBD><E598A5>𨅯<EFBFBD><F0A885AF>¥ocker<65><EFBFBD><EFBFBD>蝥芸<E89DA5>嚗䔶蛹<E494B6>芣䔉嚗<E49489>𧫴畾萎<E795BE><E8908E><EFBFBD><EFBFBD>嚗匧<E59A97>憭齿<E686AD>敺格<E695BA><E6A0BC><EFBFBD>憭𡁻<E686AD>蝵脣耦<E884A3><E880A6><EFBFBD>撟單<E6929F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E988AD>摰䂿<E691B0><E482BF>啣抅嚗屸<E59A97><E5B1B8><EFBFBD><E6BBA2>芣䔉<E88AA3><EFBFBD><EFBFBD><E398BE><EFBFBD><E4BAA6>暸𠗕<E69AB8><EFBFBD><E689B3><EFBFBD>