# 架构设计全景? > **文档版本?* v1.0 > **创建日期?* 2025-11-06 > **文档目的?* 一图看懂整个系统架? --- ## 🎯 完整架构全景 ``` ┌───────────────────────────────────────────────────────────────────────────────? ? 壹证循AI科研平台 - 完整架构 ? └───────────────────────────────────────────────────────────────────────────────? ┌───────────────────────────────────────────────────────────────────────────────? ? 用户层(4类用户) ? ? ┌──────────────?┌──────────────?┌──────────────?┌──────────────? ? ? ? 临床医生 ?? 研究? ?? 期刊编辑? ?? 运营人员 ? ? ? ? 研究机构 ?? 医学? ?? 出版? ?? 管理? ? ? ? └──────────────?└──────────────?└──────────────?└──────────────? ? └───────────────────────────────────────────────────────────────────────────────? ? ? ? ? ┌───────────────────────────────────────────────────────────────────────────────? ? 前端应用层(4个独立应用) ? ? ┌─────────────?┌─────────────?┌─────────────?┌─────────────? ? ? ? Web前端 ?? 单机? ?? 独立产品 ?? 运营管理? ? ? ? ? (React) ??Electron) ?? 前端 ??(Admin) ? ? ? ? ?? ?? ?? ? ? ? ?app.xxx.com ??桌面应用 ??独立域名 ?│admin.xxx.com? ? ? └─────────────?└─────────────?└─────────────?└─────────────? ? └───────────────────────────────────────────────────────────────────────────────? ? ? ? ? ┌───────────────────────────────────────────────────────────────────────────────? ? API网关层(可选,微服务时? ? ? Kong / Traefik - 统一路由和鉴? ? └───────────────────────────────────────────────────────────────────────────────? ? ┌───────────────────────────────────────────────────────────────────────────────? ? 业务模块层(8个独立业务模块) ? ? ? ? ┌────────?┌────────?┌────────?┌────────?┌────────?┌────────? ? ? ? AIA ?? ASL ?? PKB ?? DC ?? SSA ?? ST ? ? ? │智能问答│ │智能文献│ │知识库 ?│数据清洗│ │智能统计│ │分析工具│ ? ? ? ?? ?? ?? ?? ?? ? ? ? │✅已完成│ │⏳重点 ?│✅已完成│ │⏳规划中│ │⏳规划中│ │⏳规划中│ ? ? └────────?└────────?└────────?└────────?└────────?└────────? ? ? ? ? ┌────────?┌────────? ? ? ? RVW ??ADMIN ? ? ? │稿件审查│ │运营管理│ ? ? ? ?? ? ? ? │⚡独立 ?│⭐新增 ? ? ? └────────?└────────? ? └───────────────────────────────────────────────────────────────────────────────? ?依赖 ┌───────────────────────────────────────────────────────────────────────────────? ? 通用能力层(5个核心技术能力) ? ? ? ? ┌──────────────?┌──────────────?┌──────────────?┌──────────────? ? ? ? LLM网关 ?? 文档处理 ?? RAG引擎 ?? ETL引擎 ? ? ? ? ?? ?? ?? ? ? ? ?5模块依赖 ??6模块依赖 ??3模块依赖 ??2模块依赖 ? ? ? ?71%复用 ??86%复用 ??43%复用 ??29%复用 ? ? ? ? ?? ?? ?? ? ? ? ?❌待实现 ??✅已实现 ??✅已实现 ??❌待实现 ? ? ? └──────────────?└──────────────?└──────────────?└──────────────? ? ? ? ? ┌──────────────? ? ? ? 医学NLP ? ? ? ? ? ? ? ?1模块依赖 ? ? ? ?14%复用 ? ? ? ? ? ? ? ?❌待实现 ? ? ? └──────────────? ? └───────────────────────────────────────────────────────────────────────────────? ?依赖 ┌───────────────────────────────────────────────────────────────────────────────? ? 平台基础层(通用基础设施? ? ? ? ? ┌──────────────?┌──────────────?┌──────────────?┌──────────────? ? ? │用户与权限中心?? 存储服务 ?? 通知服务 ?? 监控与日? ? ? ? ? ?? ?? ?? ? ? ? ?- 用户认证 ??- 文件上传 ??- 站内消息 ??- 操作日志 ? ? ? ?- JWT Token ??- OSS/本地 ??- 邮件通知 ??- 错误监控 ? ? ? ?- RBAC权限 ??- 临时URL ??- WebSocket ??- 审计日志 ? ? ? ?- Feature Flag?? ?? ?? ? ? ? ? ?? ?? ?? ? ? ? ?✅已有基础 ??✅已实现 ??⏳待实现 ??✅已实现 ? ? ? └──────────────?└──────────────?└──────────────?└──────────────? ? ? ? ? ┌──────────────? ? ? ? 系统配置 ? ? ? ? ? ? ? ?- 全局配置 ? ? ? ?- 动态配? ? ? ? ? ? ? ? ?⏳待增强 ? ? ? └──────────────? ? └───────────────────────────────────────────────────────────────────────────────? ? ┌───────────────────────────────────────────────────────────────────────────────? ? 数据存储层(Schema隔离? ? ? ? ? ┌────────────────────────────────────────────────────────────────────────? ? ? ? PostgreSQL(当前:逻辑隔离? ? ? ? ? ? ? ? ? ┌─────────────?┌─────────────?┌─────────────?┌─────────────? ? ? ? ? │platform ?│aia_schema ?│asl_schema ?│pkb_schema ? ? ? ? ? │_schema ?? ?? ?? ? ? ? ? ? ? ??- projects ??- projects ??- kb ? ? ? ? ? ?- users ??- conv ??- items ??- documents ? ? ? ? ? ?- roles ??- messages ??- screening ?? ? ? ? ? ? ?- feature ?? ??- extraction?? ? ? ? ? ? ? _flags ?? ?? ?? ? ? ? ? ? └─────────────?└─────────────?└─────────────?└─────────────? ? ? ? ? ? ? ? ? ┌─────────────?┌─────────────?┌─────────────?┌─────────────? ? ? ? ? │dc_schema ?│ssa_schema ?│st_schema ?│review ? ? ? ? ? ? ?? ?? ?│_schema ? ? ? ? ? ?- projects ??- projects ??- usage ?? ? ? ? ? ? ?- raw_files ??- tasks ?? ??- tasks ? ? ? ? ? ?- cleaned ??- results ?? ??- journals ? ? ? ? ? ?- ner ?? ?? ??- reviewers ? ? ? ? ? └─────────────?└─────────────?└─────────────?└─────────────? ? ? ? ? ? ? ? ? ┌─────────────? ? ? ? ? │admin ? ? ? ? ? │_schema ? ? ? ? ? ? ? ? ? ? ? ?- admin_users? ? ? ? ? ?- llm_models? ? ? ? ? ?- tenants ? ? ? ? ? ?- audit_logs? ? ? ? ? └─────────────? ? ? ? └────────────────────────────────────────────────────────────────────────? ? ? ? ? ┌────────────────────────────────────────────────────────────────────────? ? ? ? Dify向量数据库(RAG? ? ? ? ? 通过API访问,不直接连接 ? ? ? └────────────────────────────────────────────────────────────────────────? ? └───────────────────────────────────────────────────────────────────────────────? ? ┌───────────────────────────────────────────────────────────────────────────────? ? 外部服务? ? ? ? ? ┌──────────────?┌──────────────?┌──────────────?┌──────────────? ? ? ? DeepSeek ?? Qwen3 ?? Qwen-Long ?? Claude ? ? ? ? API ?? API ?? API ?? API ? ? ? ? ?? ?? ?? ? ? ? ?¥1/百万tokens??¥5/百万tokens??¥20/百万 ??¥50/百万 ? ? ? └──────────────?└──────────────?└──────────────?└──────────────? ? ? ? ? ┌──────────────?┌──────────────? ? ? ? Dify API ?? Python微服务│ ? ? ? (RAG) ?? (文档提取) ? ? ? └──────────────?└──────────────? ? └───────────────────────────────────────────────────────────────────────────────? ``` --- ## 📦 四种部署模式 ### 模式1:云端SaaS版(当前重点? ``` ┌─────────────────────────────────────────? ? 云端服务? ? ? ? ? ┌────────────────────────────────────?? ? ? Nginx (反向代理) ?? ? ? ├─ app.yizhengxun.com ?? ? ? └─ admin.yizhengxun.com ?? ? └────────────────────────────────────?? ? ? ? ? ┌────────────────────────────────────?? ? ? Web前端 (React) ?? ? ? Admin前端 (React + Ant Design Pro)?? ? └────────────────────────────────────?? ? ? ? ? ┌────────────────────────────────────?? ? ? 后端 (Node.js + Fastify) ?? ? ? - 8个业务模? ?? ? ? - 通用能力? ?? ? ? - 平台基础? ?? ? └────────────────────────────────────?? ? ? ? ? ┌────────────────────────────────────?? ? ? PostgreSQL (Docker) ?? ? ? - 多Schema隔离 ?? ? └────────────────────────────────────?? ? ? ? ┌────────────────────────────────────?? ? ? Redis (缓存) ?? ? └────────────────────────────────────?? ? ? ? ┌────────────────────────────────────?? ? ? Dify (RAG服务) ?? ? └────────────────────────────────────?? ? ? ? ┌────────────────────────────────────?? ? ? Python微服?(文档提取) ?? ? └────────────────────────────────────?? └─────────────────────────────────────────? 用户通过浏览器访? ``` --- ### 模式2:独立产品包(Docker打包? ``` ┌─────────────────────────────────────────? ? 审稿系统独立产品? ? ? (Docker Compose一键部? ? ? ? ? ┌────────────────────────────────────?? ? ? 前端容器 (Nginx + React) ?? ? └────────────────────────────────────?? ? ? ? ? ┌────────────────────────────────────?? ? ? 后端容器 (Node.js) ?? ? ? - RVW模块(审稿功能) ?? ? ? - LLM网关(精简版) ?? ? ? - 文档处理(精简版) ?? ? ? - 用户认证(精简版) ?? ? └────────────────────────────────────?? ? ? ? ? ┌────────────────────────────────────?? ? ? PostgreSQL容器 ?? ? ? - 只包含review_schema和users ?? ? └────────────────────────────────────?? ? ? ? 一键部署脚本:deploy.sh ? ? 配置文件:docker-compose.yml ? └─────────────────────────────────────────? 医院内网部署,数据不外泄 ``` --- ### 模式3:Electron单机? ``` ┌─────────────────────────────────────────? ? 用户电脑 (Windows/Mac) ? ? ? ? ┌────────────────────────────────────?? ? ? Electron应用 ?? ? ? ?? ? ? ┌──────────────────────────────? ?? ? ? ? 渲染进程 (Chromium) ? ?? ? ? ? React前端(复?0%+? ? ?? ? ? └──────────────────────────────? ?? ? ? ?IPC通信 ?? ? ? ┌──────────────────────────────? ?? ? ? ? 主进?(Node.js) ? ?? ? ? ? 后端逻辑(复?0%+? ? ?? ? ? └──────────────────────────────? ?? ? ? ? ?? ? ? ┌──────────────────────────────? ?? ? ? ? SQLite (本地数据? ? ?? ? ? ? ~/Documents/YizhengxunData/ ? ?? ? ? └──────────────────────────────? ?? ? ? ? ?? ? ? ┌──────────────────────────────? ?? ? ? ? Python子进? ? ?? ? ? ? 文档提取(打包在应用内) ? ?? ? ? └──────────────────────────────? ?? ? └────────────────────────────────────?? ? ? ? 安装包:500MB+ ? ? 100%离线运行 ? └─────────────────────────────────────────? ``` --- ### 模式4:私有化部署(K8s/Docker? ``` ┌─────────────────────────────────────────? ? 医院内网服务? ? ? ? ? ┌────────────────────────────────────?? ? ? K8s / Docker Swarm ?? ? ? ?? ? ? Pod/Container: ?? ? ? ├─ 前端服务 x2(高可用? ?? ? ? ├─ 后端服务 x3(负载均衡) ?? ? ? ├─ PostgreSQL x1(主从) ?? ? ? ├─ Redis x1 ?? ? ? ├─ Python微服?x2 ?? ? ? └─ Dify服务(可选) ?? ? ? ?? ? ? Ingress: hospital-a.yizhengxun.com?? ? └────────────────────────────────────?? ? ? ? 一键部署脚?+ 运维监控 ? └─────────────────────────────────────────? 数据100%留在医院内网 ``` --- ## 🎯 代码组织架构 ### 当前结构(简单) ``` AIclinicalresearch/ ├── frontend/ # Web前端 ├── backend/ # 后端 └── extraction_service/ # Python服务 ``` --- ### 目标结构(Monorepo? ``` AIclinicalresearch/ ├── packages/ # 共享包(可复用) ? ├── shared-types/ # 类型定义(前后端共享? ? ├── platform-core/ # 平台核心 ? ? ├── auth/ # 用户认证 ? ? ├── storage/ # 存储服务 ? ? └── monitoring/ # 监控日志 ? ├── capabilities-core/ # 通用能力 ? ? ├── llm-gateway/ # LLM网关 ? ? ├── document-processor/ # 文档处理 ? ? └── rag-engine/ # RAG引擎 ? └── ui-components/ # UI组件库(可选) ? ├── apps/ # 应用 ? ├── web-frontend/ # Web前端 ? ├── web-backend/ # Web后端 ? ├── admin-frontend/ # 运营管理端前? ? └── electron/ # Electron单机版(未来? ? ├── main/ # 主进? ? └── renderer/ # 渲染进程 ? ├── products/ # 独立产品打包(未来) ? ├── review-system/ # 审稿系统独立产品 ? ├── literature-system/ # AI文献独立产品 ? └── data-cleaning-system/ # 数据清洗独立产品 ? ├── services/ # 微服务(未来? ? ├── platform/ # 平台服务 ? ├── capabilities/ # 通用能力服务 ? └── modules/ # 业务模块服务 ? ├── extraction_service/ # Python服务(保持原位) ├── docker-compose.yml # Docker配置 ├── pnpm-workspace.yaml # Workspace配置 └── package.json # 根package.json ``` **转换成本?* 2-3? **未来收益?* 节省7-11? --- ## 📊 关键指标 ### 模块复用分析 | 通用能力 | 使用频率 | 依赖模块 | 优先?| 状?| |---------|---------|---------|--------|------| | **LLM网关** | 71% | AIA、ASL、PKB、DC、RVW | P0 | ?待实?| | **文档处理** | 86% | AIA、ASL、PKB、DC、SSA、ST、RVW | P0 | ?已实?| | **RAG引擎** | 43% | AIA、ASL、PKB | P1 | ?已实?| | **ETL引擎** | 29% | DC、SSA | P2 | ?待实?| | **医学NLP** | 14% | DC | P2 | ?待实?| ### 模块独立性分? | 模块 | 独立?| 商业价?| 可独立销?| 优先?| |------|-------|---------|-----------|--------| | RVW(审稿) | ⭐⭐⭐⭐?| ⭐⭐⭐⭐?| ??| P1 | | ASL(文献) | ⭐⭐⭐⭐?| ⭐⭐⭐⭐?| ??| P0 | | DC(数据清洗) | ⭐⭐⭐⭐?| ⭐⭐⭐⭐?| ??| P1 | | ADMIN(运营) | ⭐⭐⭐⭐?| ⭐⭐⭐⭐?| ?是(SaaS?| P1 | | SSA(统计分析) | ⭐⭐⭐⭐ | ⭐⭐⭐⭐?| ⚠️ 与ST协同 | P2 | | ST(分析工具) | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⚠️ 与SSA协同 | P2 | | AIA(AI问答?| ⭐⭐?| ⭐⭐⭐⭐ | ⚠️ 与PKB关联 | P2 | | PKB(知识库?| ⭐⭐?| ⭐⭐?| ⚠️ 与AIA关联 | P2 | --- ## 🎯 技术债务与投资决? ### 两个关键技术改? | 改造项?| 现在?| 未来?| 投入产出?| 建议 | |---------|-------|-------|-----------|------| | **Schema隔离** | 1?| 3-5?| 300-500% | ⭐⭐⭐⭐?现在?| | **Monorepo转换** | 2-3?| 7-11?| 300-400% | ⭐⭐⭐⭐?现在?| **核心结论?* ``` 现在投入? - Schema隔离?? - Monorepo转换?? - 总计?天(1周) 未来节省? - Schema隔离?5-25? - Monorepo转换?-11? - 总计?2-36天(1个月+? 投入产出比:300-500% 建议:立即做? ``` --- ## 📋 下一步行动方? ### 方案A:快速推进业?⭐⭐? **适合:时间紧迫,必须立即上线ASL模块** **本周?* - Day 1-7:ASL模块开? **风险?* - ?技术债累? - ?未来改造成本高?个月? --- ### 方案B:夯实基础,稳步推?⭐⭐⭐⭐?**强烈推荐** **适合:重视长期架构健康,愿意投入1?* **Week 1:架构改造(6天)** - Day 1-3:Schema隔离 * 设计Schema结构 * 修改Prisma Schema * 数据迁移 * 测试验证 - Day 4-6:Monorepo转换 * 学习pnpm workspaces * 重构代码结构 * 提取共享代码 * 测试验证 **Week 2-4:ASL模块开?* - 享受清晰的架? - 享受代码复用的便? **优点?* - ?一次性还清技术? - ??个模块打基础 - ?避免未来1个月的重构成? **投入产出比:** ⭐⭐⭐⭐?极高 --- ### 方案C:折中方?⭐⭐⭐⭐ **适合:部分认同,希望快速看到业务进?* **本周?* - Day 1-3:Monorepo转换(必须,近期开发运营管理端? - Day 4-7:ASL模块开? **未来?-2个月后)?* - Schema隔离(数据量增长前) **优点?* - ?解决最紧迫的问? - ?快速推进业? **缺点?* - ⚠️ Schema隔离成本会增? --- ## 🎉 今日成就总结 ### 完成的核心工? **1. 系统架构设计?00%?* - ?三层架构设计 - ?8个业务模块规? - ?5个通用能力定义 - ?依赖关系分析 **2. 部署方案设计?00%?* - ?云端SaaS部署 - ?独立产品包部? - ?Electron单机版方? - ?私有化部? **3. 数据库架构(100%?* - ?PostgreSQL Docker部署说明 - ?Schema隔离方案 - ?逻辑vs物理隔离对比 - ?改造成本分? **4. 运营管理端(100%?* - ?15个功能模块设? - ?3阶段实施计划 - ?权限体系设计 - ?数据库Schema设计 **5. 模块独立部署?00%?* - ?完整打包方案 - ?共享服务方案 - ?Electron架构设计 - ?代码复用率分? **6. Monorepo架构?00%?* - ?必要性评? - ?成本收益分析 - ?实施方案设计 - ?时机建议 **7. 文档体系重构?00%?* - ?v2.0文档结构设计 - ?模块文档模板 - ?迁移计划 --- ### 产出的核心价? **技术价值:** - ?清晰的技术路线图(未?-12个月? - ?完整的架构设计(三层架构?个模块) - ?详细的实施方案(部署、数据库、代码组织) **商业价值:** - ?支持模块独立销售(审稿、AI文献、数据清洗) - ?支持多种部署模式(覆盖全市场? - ?支持灵活商业模式(订阅、License、模块化售卖? **决策价值:** - ?明确的优先级(P0-P2? - ?清晰的成本收益分? - ?具体的实施建? --- ## 📈 架构成熟度评? ### 设计完整性:⭐⭐⭐⭐?(5/5) - ?系统架构:三层架构,职责清晰 - ?业务模块?个模块,完整规划 - ?部署方案?种模式,覆盖全市? - ?数据库架构:Schema隔离,支持微服务 - ?代码组织:Monorepo,支持复? - ?运营管理?5个功能,商业基础 ### 可实施性:⭐⭐⭐⭐?(5/5) - ?详细的实施步? - ?明确的时间估? - ?清晰的成本收益分? - ?具体的技术方? - ?现实的风险评? ### 商业价值:⭐⭐⭐⭐?(5/5) - ?支持模块独立销? - ?支持多种部署模式 - ?支持灵活定价策略 - ?成本控制机制完善 --- ## 🚀 明确的下一? ### 立即可做?件事 **1. 开始ASL模块开发(方案A?* - 使用现有架构 - 快速推进业? - 风险:累积技术? **2. Schema隔离 + Monorepo(方案B?* ⭐⭐⭐⭐? - 投入1? - 夯实基础 - 避免未来1个月改造成? **3. Monorepo转换后开发(方案C?* - 投入2-3? - 快速推? - 延后Schema隔离 --- ## 💼 需要讨论的问题 ### 技术决? 1. **Schema隔离?* 现在?or 延后? - 建议:现在做(成本最低) 2. **Monorepo?* 现在转换 or 延后? - 建议:现在转换(近期开发运营管理端? 3. **部署优先级:** 先做哪种部署? - 建议:专注云端SaaS(阶段一? ### 业务规划 4. **模块开发顺序:** ASL ?DC ?SSA? - 建议:ASL(已有PRD)→ DC(核心竞争力? 5. **运营管理端时机:** 何时开发? - 建议:ASL完成后(1-2个月后) 6. **独立产品时机?* 何时打包独立产品? - 建议:阶段二?-12个月后) --- ## 🎯 我的最终建? **推荐:方案B(夯实基础,稳步推进)** **实施计划?* ``` Week 1(本周):架构改? Day 1-3:Schema隔离 Day 4-6:Monorepo转换 Week 2-4(下2-3周):ASL模块开? 标题摘要初筛 + 全文复筛 Week 5-6(第5-6周):ASL模块完善 全文解析与数据提? Week 7-8(第7-8周):运营管理端P0功能 用户管理 + Feature Flag + LLM模型管理 ``` **核心理由?* 1. ?投入1周,节省未来1个月 2. ??个模块打下坚实基础 3. ?架构清晰,长期收益巨? 4. ?避免技术债累? --- **最后更新:** 2025-11-06 **总结人:** 技术架构师 --- ## 📖 相关文档 - [系统架构分层设计](./01-系统架构分层设计.md) - [文档体系重构方案v2.0](./02-文档体系重构方案.md) - [Schema隔离方案与成本分析](./05-Schema隔离方案与成本分?md) - [模块独立部署与单机版方案](./06-模块独立部署与单机版方案.md) - [Monorepo架构评估](./07-Monorepo架构评估.md)