Files
AIclinicalresearch/docs/05-部署文档/00-部署架构总览.md
HaHafeng 1b53ab9d52 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%)
2026-01-14 19:15:01 +08:00

1105 lines
70 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AI涓村簥鐮旂┒骞冲彴 - 闃块噷浜戦儴缃叉灦鏋勬€昏<E282AC>
> **鏂囨。鐗堟湰锛?* v1.0
> **鍒涘缓鏃ユ湡锛?* 2025-12-14
> **鐩<>爣鐜<E788A3><E9909C>锛?* 闃块噷浜?SAE + RDS PostgreSQL 15 + OSS
> **鏋舵瀯绫诲瀷锛?* 浜戝師鐢?Serverless + 瀹瑰櫒鍖栧井鏈嶅姟
> **閫傜敤鍥㈤槦锛?* 1-2浜哄垵鍒涘洟闃?鈫?10浜烘垚闀垮洟闃?
---
## 馃搵 鐩<>
1. [鏋舵瀯鍏ㄦ櫙鍥綸(#鏋舵瀯鍏ㄦ櫙鍥?
2. [5涓<35>牳蹇冩ā鍧楀叧绯籡(#5涓<EFBFBD>牳蹇冩ā鍧楀叧绯?
3. [妯″潡涓庨樋閲屼簯鏈嶅姟鏄犲皠](#妯″潡涓庨樋閲屼簯鏈嶅姟鏄犲皠)
4. [寮€鍙戠幆澧冧笌閮ㄧ讲鐜<EFBFBD><EFBFBD>](#寮€鍙戠幆澧冧笌閮ㄧ讲鐜<E8AEB2><E9909C>)
5. [Docker鐗堟湰绠悊绛栫暐](#docker鐗堟湰绠悊绛栫暐)
6. [绾夸笂鏁呴殰蹇<E6AEB0>€熶慨澶峕(#绾夸笂鏁呴殰蹇<EFBFBD>€熶慨澶?
7. [閮ㄧ讲鏂囨。瀵艰埅](#閮ㄧ讲鏂囨。瀵艰埅)
---
## 鏋舵瀯鍏ㄦ櫙鍥?
### 1. 閫昏緫鏋舵瀯锛堢敤鎴疯<E98EB4>瑙掞級
```
鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹? 鐢ㄦ埛娴忚<E5A8B4><EFBFBD>紙Browser锛? 鈹?鈹? https://your-domain.com 鈹?鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹<E282AC>攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹? 鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈻尖攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹? 鍓嶇<E98D93> SPA (React 19) 鈹? 鈹? - 鐢ㄦ埛鐣岄潰 鈹? 鈹? - 璺<>敱绠悊 鈹? 鈹? - API璋冪敤 鈹? 鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹<E282AC>攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹? 鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹尖攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹? 鈹? 鈹? 鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈻尖攢鈹€鈹€鈹€鈹€鈹€鈹? 鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈻尖攢鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹屸攢鈹€鈹€鈹€鈹€鈹€鈻尖攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹? Node.js鍚庣<E98D9A> 鈹? 鈹?Python寰<6E>湇鍔? 鈹? 鈹? Dify RAG骞冲彴 鈹? 鈹? (Fastify) 鈹? 鈹? (FastAPI) 鈹? 鈹? (鐭ヨ瘑搴撴<E690B4>绱? 鈹? 鈹? 鈹? 鈹? 鈹? 鈹? 鈹? 鈹?- 涓氬姟閫昏緫 鈹? 鈹?- PDF瑙瀽 鈹? 鈹?- 鏂囨。涓婁紶 鈹? 鈹?- 鏉冮檺鎺у埗 鈹? 鈹?- 鏁版嵁娓呮礂 鈹? 鈹?- 鍚戦噺妫€绱? 鈹? 鈹?- API鑱氬悎 鈹? 鈹?- 鏂囦欢鎻愬彇 鈹? 鈹?- LLM瀵硅瘽 鈹? 鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹<E282AC>攢鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹<E282AC>攢鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹<E282AC>攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹? 鈹? 鈹? 鈹? 鈹? 鈹? 鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹尖攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹? 鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈻尖攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹? PostgreSQL 15 鏁版嵁搴? 鈹? 鈹? (RDS) 鈹? 鈹? 鈹? 鈹? - 10涓猄chema闅旂<E99785> 鈹? 鈹? - pg-boss浠诲姟闃熷垪 鈹? 鈹? - Postgres-Only鏋舵瀯 鈹? 鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?```
### 2. 鐗╃悊鏋舵瀯锛堥樋閲屼簯璧勬簮锛?
```
鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹? 闃块噷浜?VPC锛堜笓鏈夌綉缁滐級 鈹?鈹? 172.16.0.0/12锛堝唴缃戦殧绂伙級 鈹?鈹溾攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹? 鈹?鈹? 鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹?鈹? 鈹? SAE (Serverless Application Engine) 鈹? 鈹?鈹? 鈹? 瀹瑰櫒鍖栧簲鐢ㄩ儴缃插钩鍙? 鈹? 鈹?鈹? 鈹溾攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹?鈹? 鈹? 鈹? 鈹?鈹? 鈹? 鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹? 鈹?鈹? 鈹? 鈹? 鍓嶇<E98D93>Nginx 鈹? 鈹?Node.js鍚庣<E98D9A> 鈹? 鈹?Python寰<6E>湇鍔? 鈹? 鈹? 鈹?鈹? 鈹? 鈹? 瀹瑰櫒搴旂敤 鈹? 鈹? 瀹瑰櫒搴旂敤 鈹? 鈹? 瀹瑰櫒搴旂敤 鈹? 鈹? 鈹?鈹? 鈹? 鈹溾攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹溾攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹溾攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹? 鈹?鈹? 鈹? 鈹?Nginx 1.25 鈹? 鈹?Node.js 22 鈹? 鈹?Python 3.11 鈹? 鈹? 鈹?鈹? 鈹? 鈹?React鏋勫缓浜х墿 鈹? 鈹?Fastify 5 鈹? 鈹?FastAPI 0.104 鈹? 鈹? 鈹?鈹? 鈹? 鈹?鍋ュ悍妫€鏌?璺<>敱 鈹? 鈹?Prisma 6 鈹? 鈹?PyMuPDF/Polars 鈹? 鈹? 鈹?鈹? 鈹? 鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹<E282AC>攢鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹<E282AC>攢鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹<E282AC>攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹? 鈹?鈹? 鈹? 鈹? 鈹? 鈹? 鈹? 鈹?鈹? 鈹? 鈹? 鍐呯綉璋冪敤 鈹? 鍐呯綉璋冪敤 鈹? 鈹? 鈹?鈹? 鈹? 鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹粹攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹? 鈹?鈹? 鈹? 鈹? 鈹? 鈹?鈹? 鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹尖攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹?鈹? 鈹? 鈹?鈹? 鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹?鈹? 鈹? 猸?NAT缃戝叧 + EIP锛堝叕缃戝嚭鍙紝蹇呴渶锛? 鈹? 鈹?鈹? 鈹溾攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹?鈹? 鈹? - 涓篠AE鎻愪緵鍏<E7B7B5>綉璁块棶鑳藉姏 鈹? 鈹?鈹? 鈹? - 鍚庣<E98D9A>璋冪敤DeepSeek/OpenAI API 鈹? 鈹?鈹? 鈹? - Python涓嬭浇鍏<E6B587>綉PDF 鈹? 鈹?鈹? 鈹? - npm install鍏<6C>綉渚濊禆 鈹? 鈹?鈹? 鈹? - 鎴愭湰锛歂AT缃戝叧楼60/鏈?+ EIP娴侀噺璐? 鈹? 鈹?鈹? 鈹? - 鈿狅笍 娌℃湁NAT缃戝叧锛孉I鍔熻兘鍏ㄩ儴瓒呮椂锛? 鈹? 鈹?鈹? 鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹?鈹? 鈹? 鈹?鈹? 鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈻尖攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹?鈹? 鈹? RDS PostgreSQL 15锛堜簯鏁版嵁搴擄級 鈹? 鈹?鈹? 鈹? rds.pg.s2.large (2鏍?GB) 鈹? 鈹?鈹? 鈹溾攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹?鈹? 鈹? - 鏁版嵁搴撳悕锛歛i_clinical_research 鈹? 鈹?鈹? 鈹? - 鐢ㄦ埛锛歛iclinical_rw锛堝簲鐢ㄤ笓鐢ㄨ处鍙凤級 鈹? 鈹?鈹? 鈹? - 鍐呯綉鍦板潃锛歳m-xxxxx.pg.rds.aliyuncs.com:5432 鈹? 鈹?鈹? 鈹? - 鑷<>姩澶囦唤锛氭瘡澶╁噷鏅?鐐?+ 鏃ュ織澶囦唤锛圥ITR锛? 鈹? 鈹?鈹? 鈹? - 鐧藉悕鍗曪細172.16.0.0/12锛圫AE鐨刅PC缃戞<E7BC83>锛? 鈹? 鈹?鈹? 鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹?鈹? 鈹?鈹? 鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹?鈹? 鈹? OSS (Object Storage Service) 瀵硅薄瀛樺偍 鈹? 鈹?鈹? 鈹? Bucket: aiclinical-data-prod 鈹? 鈹?鈹? 鈹溾攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹?鈹? 鈹? - 鐢ㄦ埛涓婁紶鏂囦欢锛圥DF銆乄ord銆丒xcel锛? 鈹? 鈹?鈹? 鈹? - 鏂囩尞鏁版嵁锛圓SL妯″潡锛? 鈹? 鈹?鈹? 鈹? - 鏁版嵁娓呮礂缁撴灉锛圖C妯″潡锛? 鈹? 鈹?鈹? 鈹? - 鏁版嵁搴撳<E690B4>浠藉綊妗紙鍙<E7B499>€夛級 鈹? 鈹?鈹? 鈹? - 璁块棶鏂瑰紡锛歋DK锛堝唴缃戝厤娴侀噺璐癸級 鈹? 鈹?鈹? 鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹?鈹? 鈹?鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?
鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹? 鐙<>珛 ECS 鏈嶅姟鍣<E5A79F>紙Dify閮ㄧ讲锛? 鈹?鈹? ecs.c6.xlarge (4鏍?GB) 鈹?鈹溾攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹? 鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹?鈹? 鈹? Dify RAG 骞冲彴 (Docker Compose) 鈹? 鈹?鈹? 鈹溾攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹?鈹? 鈹? - Dify API (dify/api:0.6.13) 鈹? 鈹?鈹? 鈹? - Dify Web (dify/web:0.6.13) 鈹? 鈹?鈹? 鈹? - PostgreSQL 15 (postgres:15-alpine锛孌ify涓撶敤鏁版嵁搴? 鈹? 鈹?鈹? 鈹? - Redis (redis:6-alpine锛孌ify缂撳瓨) 鈹? 鈹?鈹? 鈹? - Weaviate (鍚戦噺鏁版嵁搴? 鈹? 鈹?鈹? 鈹? - Nginx (璺<>敱灞傦紝澶勭悊CORS) 鈹? 鈹?鈹? 鈹? - Sandbox (浠爜鎵ц<E98EB5>娌欑<E5A88C>) 鈹? 鈹?鈹? 鈹? 鈹? 鈹?鈹? 鈹? 鍐呯綉鍦板潃锛歨ttp://172.16.x.x锛堥€氳繃VPC涓嶴AE浜掕仈锛? 鈹? 鈹?鈹? 鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹?鈹? 鈹?鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?```
### 3. 鏁版嵁娴佸悜鍥?
```
鐢ㄦ埛涓婁紶鏂囦欢
鈹? 鈹溾攢鈹€鈻?鍓嶇<E98D93> (React)
鈹? 鈹? 鈹? 鈹溾攢鈹€鈻?/api/v1/pkb/documents (涓婁紶鍒扮煡璇嗗簱)
鈹? 鈹? 鈹? 鈹? 鈹? 鈹溾攢鈹€鈻?Node.js鍚庣<E98D9A>
鈹? 鈹? 鈹? 鈹? 鈹? 鈹? 鈹? 鈹溾攢鈹€鈻?OSS (瀛樺偍鍘熷<E98D98>鏂囦欢)
鈹? 鈹? 鈹? 鈹斺攢鈹€鈻?Dify API (鍒涘缓鏂囨。鍚戦噺)
鈹? 鈹? 鈹? 鈹? 鈹? 鈹? 鈹? 鈹斺攢鈹€鈻?Weaviate (瀛樺偍鍚戦噺)
鈹? 鈹? 鈹? 鈹? 鈹? 鈹斺攢鈹€鈻?RDS (瀛樺偍鍏冩暟鎹?
鈹? 鈹? 鈹? 鈹溾攢鈹€鈻?/api/v1/asl/literatures (鏂囩尞绛涢€?
鈹? 鈹? 鈹? 鈹? 鈹? 鈹溾攢鈹€鈻?Node.js鍚庣<E98D9A>
鈹? 鈹? 鈹? 鈹? 鈹? 鈹? 鈹? 鈹溾攢鈹€鈻?Python寰<6E>湇鍔?(PDF瑙瀽)
鈹? 鈹? 鈹? 鈹? 鈹? 鈹? 鈹? 鈹? 鈹? 鈹斺攢鈹€鈻?OSS (璇诲彇PDF)
鈹? 鈹? 鈹? 鈹? 鈹? 鈹? 鈹? 鈹斺攢鈹€鈻?RDS (瀛樺偍鏂囩尞鏁版嵁)
鈹? 鈹? 鈹? 鈹? 鈹? 鈹斺攢鈹€鈻?杩斿洖瑙f瀽缁撴灉
鈹? 鈹? 鈹? 鈹斺攢鈹€鈻?/api/v1/dc/extraction (鏁版嵁娓呮礂)
鈹? 鈹? 鈹? 鈹溾攢鈹€鈻?Node.js鍚庣<E98D9A>
鈹? 鈹? 鈹? 鈹? 鈹? 鈹溾攢鈹€鈻?Python寰<6E>湇鍔?(Polars鏁版嵁澶勭悊)
鈹? 鈹? 鈹? 鈹? 鈹? 鈹? 鈹? 鈹斺攢鈹€鈻?OSS (璇诲彇Excel/CSV)
鈹? 鈹? 鈹? 鈹? 鈹? 鈹斺攢鈹€鈻?RDS (瀛樺偍娓呮礂缁撴灉)
鈹? 鈹? 鈹? 鈹斺攢鈹€鈻?杩斿洖娓呮礂缁撴灉
鈹? 鈹斺攢鈹€鈻?灞曠ず缁撴灉
```
---
## 5涓<35>牳蹇冩ā鍧楀叧绯?
### 1. 妯″潡渚濊禆鍏崇郴鍥?
```
鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹? 鏍稿績渚濊禆灞傜骇 (浠庝笅鍒颁笂) 鈹?鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?
L4: 鐢ㄦ埛鐣岄潰灞?鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹? 鍓嶇<E98D93> (React 19 + Vite 7) 鈹?鈹? - 璋冪敤 Node.js鍚庣<E98D9A>鐨?REST API 鈹?鈹? - 涓嶇洿鎺ヨ皟鐢?Python寰<6E>湇鍔″拰Dify 鈹?鈹? - 閫氳繃鍙嶅悜浠g悊 (/api/) 璺<>敱鍒板悗绔? 鈹?鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈻? 鈹?HTTP/HTTPS
鈹?鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€
L3: 涓氬姟閫昏緫灞?鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹? Node.js 鍚庣<E98D9A> (Fastify + Prisma) 鈹?鈹? - 涓氬姟閫昏緫鑱氬悎 鈹?鈹? - 鏉冮檺鎺у埗 鈹?鈹? - 璋冪敤 Python寰<6E>湇鍔?(鍐呯綉HTTP) 鈹?鈹? - 璋冪敤 Dify API (鍐呯綉HTTP) 鈹?鈹? - 鏁版嵁搴撹<E690B4>闂?(Prisma ORM) 鈹?鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈻? 鈻? 鈻? 鈹? 鈹? 鈹? 鈹?(鍐呯綉) 鈹?(鍐呯綉) 鈹?(Prisma)
鈹? 鈹? 鈹? 鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹粹攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹粹攢鈹€鈹€鈹€鈹€鈹€鈹? 鈹屸攢鈹€鈹€鈹€鈻尖攢鈹€鈹€鈹€鈹€鈹€鈹? 鈹?Python寰<6E>湇鍔? 鈹? 鈹? Dify骞冲彴 鈹? 鈹?PostgreSQL鈹? 鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?
鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€
L2: 鑳藉姏鏀<E5A78F>拺灞?鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹? Python 寰<>湇鍔? 鈹? 鈹? Dify RAG 骞冲彴 鈹?鈹? (FastAPI + PyMuPDF) 鈹? 鈹? (鐭ヨ瘑搴?+ LLM) 鈹?鈹溾攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹溾攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹? - PDF瑙瀽 (ASL妯″潡) 鈹? 鈹? - 鏂囨。涓婁紶鍒嗗潡 鈹?鈹? - Docx/Txt鎻愬彇 (ASL) 鈹? 鈹? - Embedding鍚戦噺鍖? 鈹?鈹? - 鏁版嵁娓呮礂 (DC妯″潡) 鈹? 鈹? - 鍚戦噺妫€绱? 鈹?鈹? - Polars鏁版嵁澶勭悊 鈹? 鈹? - LLM瀵硅瘽鐢熸垚 鈹?鈹? - OCR璇嗗埆 (Nougat) 鈹? 鈹? - RAG娴佺▼缂栨帓 鈹?鈹? 鈹? 鈹? 鈹?鈹? 渚濊禆锛? 鈹? 鈹? 渚濊禆锛? 鈹?鈹? - OSS (璇诲彇鏂囦欢) 鈹? 鈹? - Weaviate (鍚戦噺瀛樺偍) 鈹?鈹? - RDS (瀛樺偍缁撴灉锛屽彲閫? 鈹? 鈹? - PostgreSQL (Dify涓撶敤) 鈹?鈹? 鈹? 鈹? - Redis (Dify缂撳瓨) 鈹?鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈻? 鈻? 鈹? 鈹? 鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹<E282AC>攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹?鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€
L1: 鍩虹<E98DA9>璁炬柦灞?鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹? PostgreSQL 15 鈹? 鈹? OSS瀵硅薄瀛樺偍 鈹? 鈹? Redis (鍙<>€? 鈹?鈹? (RDS) 鈹? 鈹? (鏂囦欢瀛樺偍) 鈹? 鈹? (Dify涓撶敤) 鈹?鈹溾攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹溾攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹溾攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹?- 10涓猄chema闅旂<E99785> 鈹? 鈹?- PDF鏂囦欢 鈹? 鈹?- Dify缂撳瓨 鈹?鈹?- pg-boss浠诲姟闃熷垪 鈹? 鈹?- Word/Excel 鈹? 鈹?- Dify浼氳瘽 鈹?鈹?- 鐢ㄦ埛鏁版嵁 鈹? 鈹?- 鏂囩尞鏁版嵁 鈹? 鈹? 鈹?鈹?- 涓氬姟鏁版嵁 鈹? 鈹?- 娓呮礂缁撴灉 鈹? 鈹?(鍒濇湡涓嶉渶瑕? 鈹?鈹?- Prisma ORM璁块棶 鈹? 鈹?- SDK璁块棶 鈹? 鈹? Redis锛屽彲鐢? 鈹?鈹? 鈹? 鈹?- 鍐呯綉鍏嶆祦閲? 鈹? 鈹? Postgres鏇夸唬)鈹?鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?```
### 2. 妯″潡闂磋皟鐢ㄥ叧绯昏〃
| 璋冪敤鏂?| 琚<>皟鐢ㄦ柟 | 璋冪敤鏂瑰紡 | 璋冪敤鐩<E695A4>殑 | 缃戠粶 |
|--------|---------|---------|---------|------|
| **鍓嶇<E98D93>** | Node.js鍚庣<E98D9A> | HTTP REST API | 鎵€鏈変笟鍔″姛鑳?| 鍏<>綉锛圚TTPS锛?|
| **Node.js鍚庣<E98D9A>** | Python寰<6E>湇鍔?| HTTP REST API | PDF瑙瀽銆佹暟鎹<E69A9F>竻娲?| 鍐呯綉锛圴PC锛?|
| **Node.js鍚庣<E98D9A>** | Dify API | HTTP REST API | 鐭ヨ瘑搴撶<E690B4>鐞嗐€丷AG妫€绱?| 鍐呯綉锛圴PC锛?|
| **Node.js鍚庣<E98D9A>** | PostgreSQL | Prisma ORM | 鏁版嵁CRUD銆佷簨鍔?| 鍐呯綉锛圴PC锛?|
| **Node.js鍚庣<E98D9A>** | OSS | SDK (ali-oss) | 鏂囦欢涓婁紶/涓嬭浇 | 鍐呯綉锛圴PC锛?|
| **Python寰<6E>湇鍔?* | OSS | SDK (oss2) | 璇诲彇PDF/Excel | 鍐呯綉锛圴PC锛?|
| **Python寰<6E>湇鍔?* | PostgreSQL | 鍙<>€夛紙鐩存帴SQL锛?| 璇诲彇閰嶇疆鏁版嵁 | 鍐呯綉锛圴PC锛?|
| **Dify** | Weaviate | gRPC | 鍚戦噺瀛樺偍/妫€绱?| 鏈<>湴锛圖ify鍐呴儴锛?|
| **Dify** | PostgreSQL | 鍘熺敓椹卞姩 | Dify鍏冩暟鎹?| 鏈<>湴锛圖ify鍐呴儴锛?|
| **Dify** | Redis | 鍘熺敓椹卞姩 | Dify缂撳瓨 | 鏈<>湴锛圖ify鍐呴儴锛?|
**鍏抽敭鍘熷垯锛?*
- 鉁?**鍗曚竴鍏ュ彛**锛氬墠绔<E5A2A0>彧璋冪敤 Node.js鍚庣<E98D9A>锛屼笉鐩存帴璋冪敤鍏朵粬鏈嶅姟
- 鉁?**鍐呯綉閫氫俊**锛歋AE鍐呴儴鏈嶅姟閫氳繃鍐呯綉浜掕仈锛堝厤娴侀噺璐癸紝浣庡欢杩燂級
- 鉁?**鏈嶅姟闅旂<E99785>**锛欴ify鐙<79>珛閮ㄧ讲鍦‥CS锛岄€氳繃鍐呯綉鏆撮湶API
- 鉁?**鏁版嵁鎸佷箙鍖?*锛氭牳蹇冩暟鎹<E69A9F>粺涓€瀛樺偍鍦≧DS锛屾枃浠跺瓨鍌ㄥ湪OSS
### 3. 妯″潡璐d换杈圭晫
| 妯″潡 | 鏍稿績鑱岃矗 | 涓嶈礋璐?|
|------|---------|--------|
| **鍓嶇<E98D93>** | - 鐢ㄦ埛浜や簰<br>- 椤甸潰娓叉煋<br>- 璺<>敱绠悊<br>- API璋冪敤 | 鉂?涓氬姟閫昏緫<br>鉂?鏉冮檺鏍¢獙<br>鉂?鐩存帴璁块棶鏁版嵁搴?OSS |
| **Node.js鍚庣<E98D9A>** | - 涓氬姟閫昏緫鑱氬悎<br>- 鏉冮檺鎺у埗<br>- API缃戝叧<br>- 鏁版嵁搴撹<E690B4>闂?br>- 璋冨害寰<E5AEB3>湇鍔?| 鉂?PDF瑙瀽<br>鉂?鏁版嵁娓呮礂<br>鉂?鍚戦噺妫€绱?|
| **Python寰<6E>湇鍔?* | - PDF瑙瀽<br>- 鏂囨。鎻愬彇<br>- 鏁版嵁娓呮礂<br>- OCR璇嗗埆 | 鉂?涓氬姟閫昏緫<br>鉂?鏉冮檺鎺у埗<br>鉂?鏁版嵁搴揅RUD |
| **Dify骞冲彴** | - 鐭ヨ瘑搴撶<E690B4>鐞?br>- 鍚戦噺瀛樺偍<br>- RAG妫€绱?br>- LLM瀵硅瘽 | 鉂?鐢ㄦ埛璁よ瘉<br>鉂?涓氬姟鏁版嵁瀛樺偍<br>鉂?鏉冮檺绠$悊 |
| **PostgreSQL** | - 涓氬姟鏁版嵁鎸佷箙鍖?br>- 浜嬪姟绠$悊<br>- 浠诲姟闃熷垪锛坧g-boss锛?| 鉂?鏂囦欢瀛樺偍<br>鉂?缂撳瓨锛堝彲閫夛級 |
| **OSS** | - 鏂囦欢瀛樺偍<br>- 闈欐€佽祫婧?br>- 澶囦唤褰掓。 | 鉂?缁撴瀯鍖栨暟鎹?br>鉂?瀹炴椂璁$畻 |
---
## 妯″潡涓庨樋閲屼簯鏈嶅姟鏄犲皠
### 1. 鏈嶅姟鏄犲皠琛?
| 鏍稿績妯″潡 | 闃块噷浜戞湇鍔?| 瑙勬牸閰嶇疆 | 鎴愭湰浼扮畻 | 閮ㄧ讲鏂囨。 |
|---------|-----------|---------|---------|---------|
| **鍓嶇<E98D93> (React)** | SAE瀹瑰櫒瀹炰緥 | 0.5鏍?GB 脳 1瀹炰緥 | 楼50/鏈?| [06-鍓嶇<E98D93>Nginx-SAE瀹瑰櫒閮ㄧ讲鎸囧崡](./06-鍓嶇<E98D93>Nginx-SAE瀹瑰櫒閮ㄧ讲鎸囧崡.md) |
| **Node.js鍚庣<E98D9A>** | SAE瀹瑰櫒瀹炰緥 | 1鏍?GB 脳 2瀹炰緥锛堝脊鎬э級 | 楼200/鏈?| [05-Node.js鍚庣<E98D9A>-SAE瀹瑰櫒閮ㄧ讲鎸囧崡](./05-Node.js鍚庣<E98D9A>-SAE瀹瑰櫒閮ㄧ讲鎸囧崡.md) |
| **Python寰<6E>湇鍔?* | SAE瀹瑰櫒瀹炰緥 | 1鏍?GB 脳 1瀹炰緥锛堚殸锔?濡侽OM鍗囪嚦4GB锛?| 楼100-200/鏈?| [04-Python寰<6E>湇鍔?SAE瀹瑰櫒閮ㄧ讲鎸囧崡](./04-Python寰<6E>湇鍔?SAE瀹瑰櫒閮ㄧ讲鎸囧崡.md) |
| **Dify骞冲彴** | ECS鏈嶅姟鍣?| 4鏍?GB锛堢嫭绔嬶級 | 楼300/鏈?| [03-Dify-ECS閮ㄧ讲瀹屽叏鎸囧崡](./03-Dify-ECS閮ㄧ讲瀹屽叏鎸囧崡.md) |
| **PostgreSQL 15** | RDS PostgreSQL | 2鏍?GB (rds.pg.s2.large) | 楼400/鏈?| [PostgreSQL閮ㄧ讲绛栫暐-鎽稿簳鎶ュ憡](./PostgreSQL閮ㄧ讲绛栫暐-鎽稿簳鎶ュ憡.md) |
| **鏂囦欢瀛樺偍** | OSS鏍囧噯瀛樺偍 | 鎸夐噺浠樿垂锛?0GB锛?| 楼10/鏈?| 锛堝悇妯″潡鏂囨。涓<E38082>寘鍚<E5AF98>級 |
| **猸?NAT缃戝叧** | NAT缃戝叧 + EIP | 灏忚<E7818F>鏍糔AT + 鎸夐噺EIP | 楼60-100/鏈?| 鈿狅笍 **蹇呴渶**锛圫AE璁块棶鍏<E6A3B6>綉锛?|
| **瀹瑰櫒闀滃儚** | ACR瀹瑰櫒闀滃儚浠撳簱 | 涓<>汉鐗堬紙鍏嶈垂锛?| 楼0/鏈?| 锛堝悇妯″潡鏂囨。涓<E38082>寘鍚<E5AF98>級 |
| **VPC缃戠粶** | VPC涓撴湁缃戠粶 | 榛樿<E6A69B>閰嶇疆 | 楼0/鏈?| 锛堝悇妯″潡鏂囨。涓<E38082>寘鍚<E5AF98>級 |
| **鍩熷悕/CDN** | 锛堝彲閫夛級鏈<E7B49A>潵閰嶇疆 | - | 楼50/鏈?| - |
**鎬绘垚鏈<E59E9A>及绠楋細** 楼1,200-1,350/鏈堬紙鍒濇湡閰嶇疆锛屽惈NAT缃戝叧锛?
鈿狅笍 **鎴愭湰浼樺寲璇存槑锛?*
- NAT缃戝叧锛埪?00/鏈堬級鏄<E7B49A>敓浜х幆澧冩爣閰嶏紝涓嶅缓璁<E7BC93>渷鐣?- 鏇夸唬鏂规<E98F82>锛歋AE缁戝畾EIP锛埪?0-50/鏈堬紝閮ㄥ垎鍦板煙鏀<E78599>寔锛岀ǔ瀹氭€ц緝宸<E7B79D>級鎴朎CS鍋歋NAT锛埪?锛岄厤缃<E58EA4><E7BC83>鏉傦紝涓嶆帹鑽愶級
- Python鏈嶅姟濡傞亣OOM锛岄渶鍗囩骇鑷?GB鍐呭瓨锛堝<E9949B>鍔犅?00/鏈堬級
### 2. SAE涓?涓<>ā鍧楃殑鍏崇郴
#### 2.1 SAE閮ㄧ讲鐨勬ā鍧楋紙3涓<33>
```
鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹? SAE (Serverless Application Engine) 鈹?鈹? 寮规€т几缂?+ 鎸夐渶浠樿垂 鈹?鈹溾攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹? 鈹?鈹? 鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹愨攤
鈹? 鈹? 鍓嶇<E98D93>Nginx瀹瑰櫒 鈹? 鈹?Node.js鍚庣<E98D9A>瀹瑰櫒 鈹? 鈹?Python瀹瑰櫒 鈹傗攤
鈹? 鈹溾攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹溾攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹溾攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹も攤
鈹? 鈹?瀹炰緥鏁帮細1 鈹? 鈹?瀹炰緥鏁帮細2-10 鈹? 鈹?瀹炰緥鏁帮細1-3 鈹傗攤
鈹? 鈹?CPU: 0.5鏍? 鈹? 鈹?CPU: 1鏍? 鈹? 鈹?CPU: 1鏍? 鈹傗攤
鈹? 鈹?鍐呭瓨: 1GB 鈹? 鈹?鍐呭瓨: 2GB 鈹? 鈹?鍐呭瓨: 2GB 鈹傗攤
鈹? 鈹?鍋ュ悍妫€鏌? / 鈹? 鈹?鍋ュ悍妫€鏌? /health鈹? 鈹?鍋ュ悍妫€鏌? /health鈹傗攤
鈹? 鈹?鑷<>姩浼哥缉: 鍏抽棴 鈹? 鈹?鑷<>姩浼哥缉: 寮€鍚? 鈹? 鈹?鑷<>姩浼哥缉: 寮€鍚<E282AC>攤鈹?鈹? 鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹樷攤
鈹? 鈹?鈹? 鍏卞悓鐗规€э細 鈹?鈹? 鉁?Docker瀹瑰櫒閮ㄧ讲锛堥暅鍍忎粠ACR鎷夊彇锛? 鈹?鈹? 鉁?鍐呯綉浜掕仈锛堝厤娴侀噺璐癸級 鈹?鈹? 鉁?鑷<>姩鎵╃缉瀹癸紙鍩轰簬CPU/鍐呭瓨/QPS锛? 鈹?鈹? 鉁?婊氬姩鍙戝竷锛堥浂鍋滄満閮ㄧ讲锛? 鈹?鈹? 鉁?鍋ュ悍妫€鏌ワ紙鑷<E7B499>姩閲嶅惎寮傚父瀹炰緥锛? 鈹?鈹? 鉁?鏃ュ織鑷<E7B994>姩鏀堕泦锛坰tdout/stderr 鈫?SLS锛? 鈹?鈹? 鉁?鐜<><E9909C>鍙橀噺娉ㄥ叆锛圖ATABASE_URL绛夋晱鎰熶俊鎭<E4BF8A>級 鈹?鈹? 鈹?鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?```
**SAE鐨勬牳蹇冧环鍊硷細**
1. **寮规€т几缂?*锛氭祦閲忛珮宄拌嚜鍔ㄦ墿瀹癸紝浣庤胺鑷<E883BA>姩缂╁<E7BC82>
2. **鎸夐渶浠樿垂**锛氬彧涓哄疄闄呬娇鐢ㄧ殑璧勬簮浠樿垂
3. **闆惰繍缁?*锛氭棤闇€绠悊鏈嶅姟鍣<E5A79F>紝鑷<E7B49D>姩鏁呴殰杞<E6AEB0>Щ
4. **蹇<>€熼儴缃?*锛氫粠闀滃儚鍚<E5849A>姩瀹炰緥<30绉?
#### 2.2 闈濻AE閮ㄧ讲鐨勬ā鍧楋紙2涓<32>
| 妯″潡 | 閮ㄧ讲鏂瑰紡 | 鍘熷洜 |
|------|---------|------|
| **Dify骞冲彴** | ECS + Docker Compose | - 鏈嶅姟澶嶆潅锛?涓<><E6B693><EFBFBD>級<br>- 闇€瑕佺ǔ瀹欼P锛堝唴缃戣皟鐢<E79A9F>級<br>- 鐙<>珛鏁版嵁搴?Redis<br>- 涓嶉渶瑕佸脊鎬т几缂?|
| **PostgreSQL 15** | RDS鎵樼<E98EB5>鏈嶅姟 | - 浼佷笟绾ф暟鎹<E69A9F>簱<br>- 鑷<>姩澶囦唤/PITR<br>- 楂樺彲鐢<E5BDB2>紙涓讳粠锛?br>- 鏃犻渶鑷<E6B8B6>繁杩愮淮 |
### 3. OSS涓?涓<>ā鍧楃殑鍏崇郴
#### 3.1 OSS浣跨敤鍦烘櫙
| 妯″潡 | 浣跨敤OSS鐨勫満鏅?| 璇?鍐?| Bucket鐩<74>綍缁撴瀯 |
|------|--------------|-------|---------------|
| **Node.js鍚庣<E98D9A>** | - 鐢ㄦ埛涓婁紶鏂囦欢<br>- 鏂囨。绠$悊<br>- 涓存椂鏂囦欢涓<E6ACA2>浆 | 璇?鍐?| `/uploads/{userId}/{fileId}.pdf` |
| **Python寰<6E>湇鍔?* | - 璇诲彇PDF杩涜<E69DA9>瀽<br>- 璇诲彇Excel杩涜<E69DA9>娓呮礂<br>- 鍐欏叆澶勭悊缁撴灉 | 璇?鍐?| `/asl/literatures/`<br>`/dc/extracted/` |
| **Dify骞冲彴** | - 锛堝彲閫夛級涓婁紶鏂囨。鍒癘SS<br>- Dify鍐呴儴浣跨敤鏈<E695A4>湴瀛樺偍 | 涓嶄娇鐢?| - |
| **鍓嶇<E98D93>** | - 涓嶇洿鎺ヨ<E98EBA>闂甇SS<br>- 閫氳繃鍚庣<E98D9A>API涓婁紶/涓嬭浇 | 涓嶄娇鐢?| - |
| **PostgreSQL** | - 锛堝彲閫夛級澶囦唤褰掓。鍒癘SS | 涓嶄娇鐢?| `/backups/` |
#### 3.2 OSS Bucket璁捐<E79281>
```
aiclinical-data-prod (Bucket鍚嶇О)
鈹?鈹溾攢鈹€ uploads/ # 鐢ㄦ埛涓婁紶鐨勫師濮嬫枃浠?鈹? 鈹溾攢鈹€ {userId}/
鈹? 鈹? 鈹溾攢鈹€ {fileId}.pdf
鈹? 鈹? 鈹溾攢鈹€ {fileId}.docx
鈹? 鈹? 鈹斺攢鈹€ {fileId}.xlsx
鈹? 鈹?鈹溾攢鈹€ asl/ # ASL鏅鸿兘鏂囩尞妯″潡
鈹? 鈹溾攢鈹€ literatures/ # 鏂囩尞PDF
鈹? 鈹? 鈹斺攢鈹€ {projectId}/{litId}.pdf
鈹? 鈹溾攢鈹€ extracted/ # 鎻愬彇鐨勬枃鏈?鈹? 鈹? 鈹斺攢鈹€ {projectId}/{litId}.json
鈹? 鈹?鈹溾攢鈹€ dc/ # DC鏁版嵁娓呮礂妯″潡
鈹? 鈹溾攢鈹€ raw/ # 鍘熷<E98D98>鏁版嵁鏂囦欢
鈹? 鈹? 鈹斺攢鈹€ {taskId}/data.xlsx
鈹? 鈹溾攢鈹€ cleaned/ # 娓呮礂鍚庣殑鏁版嵁
鈹? 鈹? 鈹斺攢鈹€ {taskId}/result.xlsx
鈹? 鈹?鈹溾攢鈹€ pkb/ # PKB涓<42>汉鐭ヨ瘑搴撴ā鍧?鈹? 鈹溾攢鈹€ documents/ # 鐭ヨ瘑搴撴枃妗?鈹? 鈹? 鈹斺攢鈹€ {kbId}/{docId}.pdf
鈹? 鈹?鈹斺攢鈹€ backups/ # 鏁版嵁搴撳<E690B4>浠斤紙鍙<E7B499>€夛級
鈹斺攢鈹€ {date}/ai_clinical_research.sql.gz
```
**OSS閰嶇疆瑕佺偣锛?*
- 鉁?**鍐呯綉璁块棶**锛歋AE閫氳繃鍐呯綉璁块棶OSS锛堝厤娴侀噺璐癸級
- 鉁?**鏉冮檺鎺у埗**锛氫娇鐢≧AM瑙掕壊鎺堟潈锛屼笉鏆撮湶AccessKey
- 鉁?**鐢熷懡鍛ㄦ湡**锛氫复鏃舵枃浠?0澶╁悗鑷<E68297>姩鍒犻櫎
- 鉁?**璺ㄥ煙閰嶇疆**锛氬<E9949B>鏋滃墠绔<E5A2A0>洿浼狅紝闇€閰嶇疆CORS
### 4. RDS涓?涓<>ā鍧楃殑鍏崇郴
#### 4.1 RDS璁块棶鏉冮檺
| 妯″潡 | 鏁版嵁搴撳悕绉?| 璁块棶鐢ㄦ埛 | 鏉冮檺 | 杩炴帴鏂瑰紡 |
|------|-----------|---------|------|---------|
| **Node.js鍚庣<E98D9A>** | ai_clinical_research | aiclinical_rw | SELECT/INSERT/UPDATE/DELETE | Prisma ORM |
| **Python寰<6E>湇鍔?* | ai_clinical_research | aiclinical_rw锛堝彲閫夛級 | SELECT锛堝彧璇婚厤缃<E58EA4>級 | psycopg2锛堝彲閫夛級 |
| **Dify骞冲彴** | 鉂?涓嶄娇鐢ㄤ富RDS | - | - | Dify浣跨敤鐙<E695A4>珛PostgreSQL |
| **鍓嶇<E98D93>** | 鉂?涓嶇洿鎺ヨ<E98EBA>闂?| - | - | 閫氳繃鍚庣<E98D9A>API |
| **PostgreSQL** | - | postgres锛堣秴绾х敤鎴凤級 | ALL | 浠呯敤浜庤縼绉?澶囦唤 |
**杩炴帴姹犻厤缃<E58EA4>細**
```
鎬昏繛鎺ユ暟锛?00锛圧DS榛樿<E6A69B>锛?鈹溾攢鈹€ Node.js鍚庣<E98D9A>锛?00 (2瀹炰緥 脳 10杩炴帴/瀹炰緥锛岄<E9949B>鐣?80)
鈹溾攢鈹€ Python寰<6E>湇鍔★細50 (1瀹炰緥 脳 5杩炴帴/瀹炰緥锛岄<E9949B>鐣?5)
鈹溾攢鈹€ pg-boss锛?0 (鍚庡彴浠诲姟)
鈹溾攢鈹€ 棰勭暀锛?00 (绠悊銆佸<E98A86>浠姐€佷复鏃舵墿瀹?
```
---
## 寮€鍙戠幆澧冧笌閮ㄧ讲鐜<E8AEB2><E9909C>
### 1. 鐜<><E9909C>瀵规瘮琛?
| 缁村害 | 鏈<>湴寮€鍙戠幆澧?| 闃块噷浜戦儴缃茬幆澧?|
|------|-------------|---------------|
| **鍓嶇<E98D93>** | Vite Dev Server (localhost:3000) | SAE Nginx瀹瑰櫒 (HTTPS) |
| **Node.js鍚庣<E98D9A>** | tsx watch (localhost:3001) | SAE瀹瑰櫒 (鍐呯綉 + 鍏<>綉) |
| **Python寰<6E>湇鍔?* | uvicorn (localhost:8000) | SAE瀹瑰櫒 (鍐呯綉) |
| **Dify骞冲彴** | Docker Compose (localhost) | ECS Docker Compose (鍐呯綉) |
| **PostgreSQL** | Docker (localhost:5432) | RDS (鍐呯綉鍦板潃) |
| **OSS** | 鏈<>湴鏂囦欢绯荤粺 (./uploads) | 闃块噷浜慜SS |
| **Redis** | 鉂?涓嶄娇鐢<E5A887>紙Postgres-Only锛?| 鉂?涓嶄娇鐢<E5A887>紙Dify鐙<79>珛Redis锛?|
### 2. 寮€鍙戜笌閮ㄧ讲鐨勫钩婊戣縼绉?
#### 2.1 閰嶇疆绠$悊绛栫暐
```
椤圭洰鏍圭洰褰?
鈹?鈹溾攢鈹€ backend/
鈹? 鈹溾攢鈹€ .env.local # 鏈<>湴寮€鍙戦厤缃<E58EA4>紙涓嶆彁浜<E5BD81>it锛?鈹? 鈹溾攢鈹€ .env.example # 閰嶇疆妯℃澘锛堟彁浜<E5BD81>it锛?鈹? 鈹斺攢鈹€ src/config/env.ts # 閰嶇疆鍔犺浇閫昏緫
鈹?鈹溾攢鈹€ frontend-v2/
鈹? 鈹溾攢鈹€ .env.local # 鏈<>湴寮€鍙戦厤缃?鈹? 鈹溾攢鈹€ .env.production # 鐢熶骇鐜<E9AA87><E9909C>閰嶇疆妯℃澘
鈹? 鈹斺攢鈹€ vite.config.ts # Vite閰嶇疆
鈹?鈹斺攢鈹€ extraction_service/
鈹溾攢鈹€ .env.local # 鏈<>湴寮€鍙戦厤缃? 鈹斺攢鈹€ app/config.py # Python閰嶇疆鍔犺浇
```
**閰嶇疆鍔犺浇浼樺厛绾э細**
```
<EFBFBD><EFBFBD>鍙橀噺 > .env.local > .env > 浠爜榛樿<E6A69B>鍊?```
#### 2.2 鐜<><E9909C>鍙橀噺瀵规瘮
**鏈<>湴寮€鍙?(`.env.local`)锛?*
```bash
# 鏁版嵁搴?DATABASE_URL=postgresql://postgres:postgres@localhost:5432/ai_clinical_research
# 瀛樺偍
STORAGE_TYPE=local
LOCAL_STORAGE_DIR=./uploads
# 缂撳瓨/闃熷垪
CACHE_TYPE=memory
QUEUE_TYPE=memory
# 寰<>湇鍔?DIFY_API_URL=http://localhost/v1
EXTRACTION_SERVICE_URL=http://localhost:8000
```
**闃块噷浜戦儴缃诧紙SAE鐜<45><E9909C>鍙橀噺閰嶇疆锛夛細**
```bash
# 鏁版嵁搴擄紙鈿狅笍 鏁忔劅淇℃伅锛孲AE鍔犲瘑瀛樺偍锛?DATABASE_URL=postgresql://aiclinical_rw:寮哄瘑鐮丂rm-xxxxx.pg.rds.aliyuncs.com:5432/ai_clinical_research?connection_limit=10&pool_timeout=10
# 瀛樺偍锛圤SS锛?STORAGE_TYPE=oss
OSS_REGION=cn-hangzhou
OSS_BUCKET=aiclinical-data-prod
OSS_ACCESS_KEY_ID=LTAI5***锛圫AE鐜<45><E9909C>鍙橀噺锛?OSS_ACCESS_KEY_SECRET=***锛圫AE鍔犲瘑锛?
# 缂撳瓨/闃熷垪锛圥ostgres-Only锛?CACHE_TYPE=postgres
QUEUE_TYPE=pgboss
# 寰<>湇鍔★紙鍐呯綉鍦板潃锛夆殸锔?浣跨敤鍐呯綉IP锛屼笉瑕佺敤.sae鍩熷悕
DIFY_API_URL=http://172.16.x.x/v1
EXTRACTION_SERVICE_URL=http://172.16.x.x:8000
# 鈿狅笍 娉ㄦ剰锛?# - 172.16.x.x 闇€瑕佹浛鎹<E6B59B>负瀹為檯鐨勫唴缃慖P
# - 鑾峰彇鏂瑰紡锛歋AE鎺у埗鍙?> 搴旂敤璇︽儏 > 瀹炰緥鍒楄〃 > 鏌ョ湅鍐呯綉IP
# - 鉂?涓嶈<E6B693>浣跨敤 .sae 鎴?.cluster.local 鍩熷悕锛圞8s鏈嶅姟鍙戠幇闇€瑕侀<E79195>澶栭厤缃<E58EA4>
# 鐢熶骇鐜<E9AA87><E9909C>鏍囪瘑
NODE_ENV=production
```
### 3. 鎸佺画閮ㄧ讲娴佺▼锛圕I/CD锛?
#### 3.1 鏁翠綋娴佺▼鍥?
```
鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹? 寮€鍙戣€呮湰鍦板紑鍙? 鈹?鈹? 1. 淇<>敼浠爜 鈹?鈹? 2. 鏈<>湴娴嬭瘯锛坣pm run dev / pytest锛? 鈹?鈹? 3. Git鎻愪氦锛坓it commit -m "feat: xxx"锛? 鈹?鈹? 4. 鎺ㄩ€佸埌杩滅▼浠撳簱锛坓it push origin main锛? 鈹?鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹<E282AC>攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹? 鈻?鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹? CI/CD 娴佹按绾匡紙鏈<E7B499>潵锛欸itHub Actions锛? 鈹?鈹? 鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹?鈹? 鈹?Stage 1: 鏋勫缓涓庢祴璇? 鈹?鈹?鈹? 鈹溾攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹?鈹? 鈹? - npm install / pip install 鈹?鈹?鈹? 鈹? - npm run build / docker build 鈹?鈹?鈹? 鈹? - npm test / pytest 鈹?鈹?鈹? 鈹? - Lint妫€鏌?(eslint / flake8) 鈹?鈹?鈹? 鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹?鈹? 鈹? 鈹?鈹? 鈻? 鈹?鈹? 鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹?鈹? 鈹?Stage 2: Docker闀滃儚鏋勫缓 鈹?鈹?鈹? 鈹溾攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹?鈹? 鈹? - docker build -t frontend:v1.2.3 鈹?鈹?鈹? 鈹? - docker build -t backend:v1.2.3 鈹?鈹?鈹? 鈹? - docker build -t python-service:v1.2.3 鈹?鈹?鈹? 鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹?鈹? 鈹? 鈹?鈹? 鈻? 鈹?鈹? 鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹?鈹? 鈹?Stage 3: 鎺ㄩ€佸埌ACR瀹瑰櫒闀滃儚浠撳簱 鈹?鈹?鈹? 鈹溾攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹?鈹? 鈹? - docker tag ... registry.cn-hangzhou.aliyuncs.com/... 鈹?鈹?鈹? 鈹? - docker push registry.cn-hangzhou.aliyuncs.com/... 鈹?鈹?鈹? 鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹?鈹? 鈹? 鈹?鈹? 鈻? 鈹?鈹? 鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹?鈹? 鈹?Stage 4: 閮ㄧ讲鍒癝AE 鈹?鈹?鈹? 鈹溾攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹?鈹? 鈹? - SAE瑙﹀彂婊氬姩閮ㄧ讲 鈹?鈹?鈹? 鈹? - 鍋ュ悍妫€鏌?-> 鍒囨崲娴侀噺 鈹?鈹?鈹? 鈹? - 鑷<>姩鍥炴粴锛堝<E9949B>鏋滃け璐ワ級 鈹?鈹?鈹? 鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹?鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹? 鈻?鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹? 鐢熶骇鐜<E9AA87><E9909C>杩愯<E69DA9> 鈹?鈹? - 鍋ュ悍妫€鏌ョ洃鎺? 鈹?鈹? - 鏃ュ織鏀堕泦鍒嗘瀽 鈹?鈹? - 鎬ц兘鎸囨爣鐩戞帶 鈹?鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?```
#### 3.2 鍒濇湡鎵嬪伐閮ㄧ讲娴佺▼锛堟帹鑽愶級
**闃舵<E99783>1锛氬垵鏈燂紙1-2浜哄洟闃燂紝鍓?涓<>湀锛?*
```bash
# ===== 鍓嶇<E98D93>閮ㄧ讲 =====
cd frontend-v2
npm run build # 鏋勫缓鐢熶骇鐗堟湰
docker build -t frontend:v1.0.0 . # 鏋勫缓Docker闀滃儚
docker tag frontend:v1.0.0 registry.cn-hangzhou.aliyuncs.com/your-namespace/frontend:v1.0.0
docker push registry.cn-hangzhou.aliyuncs.com/your-namespace/frontend:v1.0.0
# 鍦⊿AE鎺у埗鍙扮偣鍑?閮ㄧ讲" -> 閫夋嫨鏂伴暅鍍?-> 纭<><E7BAAD>
# ===== 鍚庣<E98D9A>閮ㄧ讲 =====
cd backend
npm run build # 缂栬瘧TypeScript
docker build -t backend:v1.0.0 .
docker tag backend:v1.0.0 registry.cn-hangzhou.aliyuncs.com/your-namespace/backend:v1.0.0
docker push registry.cn-hangzhou.aliyuncs.com/your-namespace/backend:v1.0.0
# 鍦⊿AE鎺у埗鍙扮偣鍑?閮ㄧ讲" -> 閫夋嫨鏂伴暅鍍?-> 纭<><E7BAAD>
# ===== Python寰<6E>湇鍔¢儴缃?=====
cd extraction_service
docker build -t python-service:v1.0.0 .
docker tag python-service:v1.0.0 registry.cn-hangzhou.aliyuncs.com/your-namespace/python-service:v1.0.0
docker push registry.cn-hangzhou.aliyuncs.com/your-namespace/python-service:v1.0.0
# 鍦⊿AE鎺у埗鍙扮偣鍑?閮ㄧ讲" -> 閫夋嫨鏂伴暅鍍?-> 纭<><E7BAAD>
```
**浼樺娍锛?*
- 鉁?绠€鍗曠洿鎺ワ紝瀛︿範鎴愭湰浣?- 鉁?瀹屽叏鍙<E58F8F>帶锛屽嚭閿欏<E996BF>鏄撴帓鏌?- 鉁?鏃犻渶閰嶇疆CI/CD宸ュ叿
**闃舵<E99783>2锛氭垚闀挎湡锛?-10浜哄洟闃燂紝3涓<33>湀鍚庯級**
閰嶇疆GitHub Actions鎴栭樋閲屼簯浜戞晥鑷<E699A5>姩鍖栭儴缃层€?
#### 3.3 閮ㄧ讲棰戠巼寤鸿<E5AFA4>
| 妯″潡 | 閮ㄧ讲棰戠巼 | 寤鸿<E5AFA4>鏃堕棿 | 鍥炴粴绛栫暐 |
|------|---------|---------|---------|
| **鍓嶇<E98D93>** | 姣忓懆1-2娆?| 鍛ㄤ簲涓嬪崍 | SAE涓€閿<E282AC>洖婊氾紙淇濈暀3涓<33>増鏈<E5A297>級 |
| **Node.js鍚庣<E98D9A>** | 姣忓懆1-2娆?| 鍛ㄤ簲涓嬪崍 | SAE涓€閿<E282AC>洖婊?+ 鏁版嵁搴撳洖婊氳剼鏈?|
| **Python寰<6E>湇鍔?* | 姣?鍛?娆?| 鍛ㄤ簲涓嬪崍 | SAE涓€閿<E282AC>洖婊?|
| **Dify骞冲彴** | 鎸夐渶锛堝緢灏戯級 | 鍛ㄦ湯 | Docker Compose閲嶅惎鏃ч暅鍍?|
| **PostgreSQL** | 鎸夐渶锛堣縼绉伙級 | 鍛ㄦ湯鍑屾櫒 | RDS蹇<53>収鎭㈠<E98EAD> |
### 4. 寮€鍙戝埌閮ㄧ讲鐨勬<E990A8>鏌ユ竻鍗?
#### 4.1 浠爜鍑嗗<E98D91>
```
鈽?1. 鏈<>湴娴嬭瘯閫氳繃
鈹溾攢 npm run dev / uvicorn姝父杩愯<E69DA9>
鈹溾攢 鏍稿績鍔熻兘鎵嬪伐娴嬭瘯
鈹斺攢 鍗曞厓娴嬭瘯/闆嗘垚娴嬭瘯閫氳繃锛堝<E9949B>鏋滄湁锛?
鈽?2. 浠g爜瀹℃煡
鈹溾攢 Lint妫€鏌ラ€氳繃锛坋slint / flake8锛? 鈹溾攢 浠爜鏍煎紡鍖栵紙prettier / black锛? 鈹斺攢 鏃犳晱鎰熶俊鎭<E4BF8A>硠婕忥紙.env鏂囦欢涓嶆彁浜わ級
鈽?3. 鐜<><E9909C>鍙橀噺纭<E599BA><E7BAAD>
鈹溾攢 鎵€鏈夌敓浜х幆澧冨彉閲忓凡閰嶇疆鍒癝AE
鈹溾攢 鏁版嵁搴撹繛鎺ュ瓧绗︿覆姝锛堝惈connection_limit锛? 鈹斺攢 OSS/Dify绛夊<E7BB9B>閮ㄦ湇鍔″湴鍧€姝
```
#### 4.2 Docker闀滃儚鏋勫缓
```
鈽?4. Dockerfile浼樺寲
鈹溾攢 浣跨敤澶氶樁娈垫瀯寤猴紙鍑忓皬闀滃儚浣撶Н锛? 鈹溾攢 鍩虹<E98DA9>闀滃儚鐗堟湰鍥哄畾锛堝<E9949B> node:22-alpine锛屼笉鐢╨atest锛? 鈹溾攢 闈瀝oot鐢ㄦ埛杩愯<E69DA9>锛堝畨鍏<E795A8>
鈹斺攢 鍋ュ悍妫€鏌ラ厤缃<E58EA4><E7BC83>纭?
鈽?5. 闀滃儚鏋勫缓涓庢祴璇? 鈹溾攢 docker build鎴愬姛
鈹溾攢 docker run鏈<6E>湴娴嬭瘯閫氳繃
鈹溾攢 闀滃儚澶у皬鍚堢悊锛堝墠绔?100MB锛屽悗绔?300MB锛孭ython<1GB锛? 鈹斺攢 闀滃儚鎵撴爣绛撅紙鐗堟湰鍙凤級
```
#### 4.3 閮ㄧ讲鍒癝AE
```
鈽?6. 閮ㄧ讲鍓嶅噯澶? 鈹溾攢 澶囦唤鏁版嵁搴擄紙RDS鎵嬪姩蹇<E5A7A9>収锛? 鈹溾攢 閫氱煡鍥㈤槦锛堝<E9949B>鏋滄槸閲嶅ぇ鍙樻洿锛? 鈹斺攢 鍑嗗<E98D91>鍥炴粴鏂规<E98F82>
鈽?7. SAE閮ㄧ讲
鈹溾攢 鎺ㄩ€侀暅鍍忓埌ACR
鈹溾攢 SAE閫夋嫨鏂伴暅鍍忕増鏈? 鈹溾攢 婊氬姩鍙戝竷锛堢伆搴﹀彂甯冿紝閫愪釜瀹炰緥鏇挎崲锛? 鈹斺攢 瑙傚療鏃ュ織鍜岀洃鎺?
鈽?8. 閮ㄧ讲鍚庨獙璇? 鈹溾攢 鍋ュ悍妫€鏌ョ<E98F8C>鐐硅繑鍥?00
鈹溾攢 鏍稿績鍔熻兘鍐掔儫娴嬭瘯
鈹溾攢 鏃ュ織鏃燛RROR
鈹斺攢 鐩戞帶鎸囨爣姝父锛圕PU/鍐呭瓨/鍝嶅簲鏃堕棿锛?
鈽?9. 鍥炴粴鍑嗗<E98D91>锛堝<E9949B>鏋滃け璐ワ級
鈹溾攢 SAE涓€閿<E282AC>洖婊氬埌涓婁竴鐗堟湰
鈹溾攢 鏁版嵁搴撴仮澶嶅揩鐓э紙濡傛灉鏈塖chema鍙樻洿锛? 鈹斺攢 鎺掓煡闂<E785A1><E99782>鏃ュ織
```
---
## Docker鐗堟湰绠悊绛栫暐
### 1. 闀滃儚鐗堟湰鍛藉悕瑙勮寖
#### 1.1 璇<>箟鍖栫増鏈?(Semantic Versioning)
```
鏍煎紡锛歿鏈嶅姟鍚峿:{涓荤増鏈瑌.{娆$増鏈瑌.{淇<><E6B787>鐗堟湰}[-{鐜<><E9909C>}]
绀轰緥锛?frontend:1.0.0 # 鐢熶骇鐗堟湰
frontend:1.0.0-dev # 寮€鍙戠増鏈?frontend:1.1.0 # 鍔熻兘鏇存柊
frontend:1.1.1 # Bug淇<67><E6B787>
```
**鐗堟湰鍙疯<E98D99>鍒欙細**
- **涓荤増鏈?(Major)**锛氶噸澶ф灦鏋勫彉鏇达紝涓嶅吋瀹规棫鐗堟湰锛堝<E9949B> 1.x.x 鈫?2.x.x锛?- **娆$増鏈?(Minor)**锛氭柊澧炲姛鑳斤紝鍚戜笅鍏煎<E98D8F>锛堝<E9949B> 1.0.x 鈫?1.1.x锛?- **淇<><E6B787>鐗堟湰 (Patch)**锛欱ug淇<67><E6B787>锛屽畬鍏ㄥ吋瀹癸紙濡?1.0.0 鈫?1.0.1锛?
#### 1.2 鏍囩<E98F8D>绛栫暐
| 鏍囩<E98F8D>绫诲瀷 | 绀轰緥 | 鐢ㄩ€?| 淇濈暀绛栫暐 |
|---------|------|------|---------|
| **鐗堟湰鍙?* | `v1.2.3` | 姝e紡鍙戝竷鐗堟湰 | 姘镐箙淇濈暀 |
| **latest** | `latest` | 鏈€鏂扮ǔ瀹氱増 | 鑷<>姩鏇存柊 |
| **dev** | `dev` | 寮€鍙戞祴璇曠増 | 婊氬姩淇濈暀鏈€杩?0涓?|
| **Git SHA** | `sha-a1b2c3d` | 鐗瑰畾鎻愪氦鐗堟湰 | 鎸夐渶淇濈暀 |
| **鏃ユ湡** | `20251214` | 鎸夋棩鏈熷綊妗?| 淇濈暀30澶?|
**瀹屾暣绀轰緥锛?*
```bash
# 鏋勫缓鏃舵墦澶氫釜鏍囩<E98F8D>
docker build -t frontend:v1.2.3 \
-t frontend:latest \
-t frontend:sha-a1b2c3d \
-t frontend:20251214 \
.
# 鎺ㄩ€佸埌ACR
docker tag frontend:v1.2.3 registry.cn-hangzhou.aliyuncs.com/aiclinical/frontend:v1.2.3
docker tag frontend:v1.2.3 registry.cn-hangzhou.aliyuncs.com/aiclinical/frontend:latest
docker push registry.cn-hangzhou.aliyuncs.com/aiclinical/frontend:v1.2.3
docker push registry.cn-hangzhou.aliyuncs.com/aiclinical/frontend:latest
```
### 2. 鏈<>湴鐗堟湰绠
#### 2.1 鏈<>湴鏄<E6B9B4>惁闇€瑕佺増鏈<E5A297><E98F88>鐞嗭紵
**绛旀<E7BB9B>锛氬垵鏈熶笉闇€瑕侊紝鎴愰暱鏈熷缓璁<E7BC93>交閲忕<E996B2>鐞嗐€?*
| 闃舵<E99783> | 鏈<>湴绠悊绛栫暐 | 鍘熷洜 |
|------|-------------|------|
| **鍒濇湡锛?-2浜猴級** | 鉂?涓嶉渶瑕?| - 寮€鍙戣€呭皯锛屽彛澶村崗璋冨嵆鍙?br>- 鏈<>湴闀滃儚鍙<E5849A>敤浜庢祴璇?br>- 鐩存帴鎺ㄩ€佸埌ACR缁熶竴绠悊 |
| **鎴愰暱鏈燂紙3-10浜猴級** | 鉁?杞婚噺绠$悊 | - 浣跨敤Git鏍囩<E98F8D>悊鐗堟湰<br>- `package.json`/`pyproject.toml`璁板綍鐗堟湰<br>- 鏈<>湴闀滃儚瀹氭湡娓呯悊 |
#### 2.2 鏈<>湴闀滃儚娓呯悊
```bash
# 鏌ョ湅鏈<E6B985>湴闀滃儚
docker images | grep frontend
# 鍒犻櫎鏈<E6AB8E>娇鐢ㄧ殑闀滃儚锛堜繚鐣欐渶杩?涓<>増鏈<E5A297>
docker image prune -a --filter "until=720h" # 鍒犻櫎30澶╁墠鐨勯暅鍍?
# 鍒犻櫎鎵€鏈夋湭浣跨敤鐨勯暅鍍忥紙鍗遍櫓锛屾厧鐢<E58EA7>
docker image prune -a
```
**寤鸿<E5AFA4>娓呯悊棰戠巼锛?*
- 寮€鍙戞満锛氭瘡鍛ㄦ竻鐞嗕竴娆?- CI/CD鏈嶅姟鍣<E5A79F>細姣忔<E5A7A3>鏋勫缓鍚庤嚜鍔ㄦ竻鐞?
### 3. ACR瀹瑰櫒闀滃儚浠撳簱绠
#### 3.1 闀滃儚浠撳簱缁撴瀯
```
闃块噷浜戝<EFBFBD>鍣ㄩ暅鍍忔湇鍔?(ACR)
鈹溾攢鈹€ 鍛藉悕绌洪棿: aiclinical锛堝洟闃熷叡浜<E58FA1>
鈹? 鈹?鈹? 鈹溾攢鈹€ 浠撳簱: frontend
鈹? 鈹? 鈹溾攢鈹€ latest锛堣嚜鍔ㄦ洿鏂帮級
鈹? 鈹? 鈹溾攢鈹€ v1.0.0
鈹? 鈹? 鈹溾攢鈹€ v1.0.1
鈹? 鈹? 鈹溾攢鈹€ v1.1.0
鈹? 鈹? 鈹斺攢鈹€ ... (淇濈暀鏈€杩?0涓<30>増鏈?
鈹? 鈹?鈹? 鈹溾攢鈹€ 浠撳簱: backend
鈹? 鈹? 鈹溾攢鈹€ latest
鈹? 鈹? 鈹溾攢鈹€ v1.0.0
鈹? 鈹? 鈹溾攢鈹€ v1.0.1
鈹? 鈹? 鈹斺攢鈹€ ...
鈹? 鈹?鈹? 鈹溾攢鈹€ 浠撳簱: python-service
鈹? 鈹? 鈹溾攢鈹€ latest
鈹? 鈹? 鈹溾攢鈹€ v1.0.0
鈹? 鈹? 鈹斺攢鈹€ ...
鈹? 鈹?鈹? 鈹斺攢鈹€ 浠撳簱: dify (鍙<>€夛紝濡傛灉鑷<E78189>畾涔夋瀯寤?
鈹? 鈹斺攢鈹€ v0.6.13
鈹?鈹斺攢鈹€ 涓<>汉鐗堝厤璐归厤棰濓細3涓<33>懡鍚嶇┖闂达紝鏃犻檺浠撳簱鏁帮紝300GB瀛樺偍/鏈?```
#### 3.2 闀滃儚鐢熷懡鍛ㄦ湡绠$悊
**淇濈暀绛栫暐锛?*
```yaml
瑙勫垯1: 淇濈暀鏈€鏂扮殑20涓<30>増鏈<E5A297>爣绛?瑙勫垯2: 淇濈暀鎵€鏈夊甫"v"鍓嶇紑鐨勬<E990A8>寮忕増鏈<E5A297>紙v1.0.0銆乿1.1.0绛夛級
瑙勫垯3: 鑷<>姩娓呯悊30澶╁墠鐨刣ev/test鏍囩<E98F8D>
瑙勫垯4: latest鏍囩<E98F8D>姘镐箙淇濈暀
```
**ACR閰嶇疆绀轰緥锛堟帶鍒跺彴閰嶇疆锛夛細**
```
瀹瑰櫒闀滃儚鏈嶅姟 > 浠撳簱绠$悊 > frontend > 鐢熷懡鍛ㄦ湡瑙勫垯
鈹溾攢 瑙勫垯1: 淇濈暀鏈€杩?0涓<30>増鏈?鈹? 鈹溾攢 绫诲瀷: 鎸夋暟閲忎繚鐣?鈹? 鈹溾攢 淇濈暀鏁伴噺: 20
鈹? 鈹斺攢 鏍囩<E98F8D>鍖归厤: *
鈹?鈹斺攢 瑙勫垯2: 娓呯悊鏃х殑dev鏍囩<E98F8D>
鈹溾攢 绫诲瀷: 鎸夋椂闂存竻鐞? 鈹溾攢 淇濈暀鏃堕棿: 30澶? 鈹斺攢 鏍囩<E98F8D>鍖归厤: *-dev
```
### 4. 鐗堟湰涓嶨it鐨勫叧绯?
#### 4.1 Git鏍囩<E98F8D>涓嶥ocker鏍囩<E98F8D>鍚屾<E98D9A>
```bash
# 寮€鍙戞祦绋?git add .
git commit -m "feat: add user profile page"
git push origin main
# 鍙戝竷鐗堟湰鏃跺垱寤篏it鏍囩<E98F8D>
git tag -a v1.2.3 -m "Release v1.2.3: Add user profile"
git push origin v1.2.3
# 鏋勫缓Docker闀滃儚锛堢増鏈<E5A297>彿涓嶨it鏍囩<E98F8D>涓€鑷达級
docker build -t frontend:v1.2.3 .
docker tag frontend:v1.2.3 registry.cn-hangzhou.aliyuncs.com/aiclinical/frontend:v1.2.3
docker push registry.cn-hangzhou.aliyuncs.com/aiclinical/frontend:v1.2.3
```
#### 4.2 鑷<>姩鐗堟湰鍙风<E98D99>鐞嗭紙鍙<E7B499>€夛級
**鏂规硶1锛氫粠 `package.json` 璇诲彇鐗堟湰鍙?*
```json
// frontend-v2/package.json
{
"name": "aiclinical-frontend",
"version": "1.2.3",
...
}
```
```bash
# 鏋勫缓鑴氭湰鑷<E6B9B0>姩璇诲彇鐗堟湰鍙?VERSION=$(node -p "require('./package.json').version")
docker build -t frontend:v$VERSION .
```
**鏂规硶2锛氫粠Git鎻愪氦SHA鐢熸垚鐗堟湰鍙?*
```bash
# 浣跨敤Git SHA浣滀负鐗堟湰鍙凤紙閫傚悎CI/CD锛?GIT_SHA=$(git rev-parse --short HEAD)
docker build -t frontend:sha-$GIT_SHA .
```
### 5. 鐗堟湰绠$悊宸ュ叿鎺ㄨ崘
| 宸ュ叿 | 鐢ㄩ€?| 閫傜敤闃舵<E99783> |
|------|------|---------|
| **Git Tags** | 浠g爜鐗堟湰绠$悊 | 鉁?鎵€鏈夐樁娈?|
| **package.json/pyproject.toml** | 搴旂敤鐗堟湰澹版槑 | 鉁?鎵€鏈夐樁娈?|
| **Docker Labels** | 闀滃儚鍏冩暟鎹<E69A9F>爣璁?| 鉁?鎴愰暱鏈? |
| **璇<>箟鍖栫増鏈<E5A297>伐鍏?(semantic-release)** | 鑷<>姩鐗堟湰鍙风敓鎴?| 鍙<>€夛紙鎴愮啛鏈燂級 |
| **Harbor/ACR鐗堟湰绠悊** | 闀滃儚浠撳簱娌荤悊 | 鉁?鎴愰暱鏈? |
---
## 绾夸笂鏁呴殰蹇<E6AEB0>€熶慨澶?
### 1. 鏁呴殰鍒嗙骇涓庝慨澶嶇瓥鐣?
| 鏁呴殰绛夌骇 | 褰卞搷鑼冨洿 | 淇<><E6B787>绛栫暐 | 棰勬湡RTO | 绀轰緥 |
|---------|---------|---------|---------|------|
| **P0锛堣嚧鍛斤級** | 鍏ㄧ珯涓嶅彲鐢?| 绔嬪嵆鍥炴粴 | <5鍒嗛挓 | 鏁版嵁搴撹繛鎺ュけ璐ャ€佸簲鐢ㄥ惎鍔ㄥけ璐?|
| **P1锛堜弗閲嶏級** | 鏍稿績鍔熻兘涓嶅彲鐢?| 鍥炴粴鎴栫儹淇<E584B9><E6B787> | <30鍒嗛挓 | 鐢ㄦ埛鏃犳硶鐧诲綍銆佹枃浠朵笂浼犲け璐?|
| **P2锛堜竴鑸<E7ABB4>級** | 閮ㄥ垎鍔熻兘寮傚父 | 鐑<>慨澶嶆垨涓嬩釜鐗堟湰 | <2灏忔椂 | 鏌愪釜椤甸潰鎶ラ敊銆佹牱寮忛敊涔?|
| **P3锛堣交寰<E4BAA4>級** | 鐢ㄦ埛浣撻獙闂<E78D99><E99782> | 涓嬩釜鐗堟湰淇<E6B9B0><E6B787> | <1澶?| 鏂囨<E98F82>閿欒<E996BF>銆佸浘鏍囩己澶?|
### 2. 淇<><E6B787>鏂规<E98F82>瀵规瘮
| 淇<><E6B787>鏂规硶 | 閫傜敤鍦烘櫙 | 鎿嶄綔姝ラ<E5A79D> | 浼樼偣 | 缂虹偣 | 鎺ㄨ崘搴?|
|---------|---------|---------|------|------|--------|
| **鏂规<E98F82>1锛歋AE涓€閿<E282AC>洖婊?* | P0/P1鏁呴殰 | SAE鎺у埗鍙扮偣鍑?鍥炴粴" | 鉁?鏈€蹇<E282AC>紙<5鍒嗛挓锛?br>鉁?闆堕<E99786>闄?| 鉂?鍥炲埌鏃х増鏈<E5A297>紝鏂板姛鑳戒涪澶?| 猸愨瓙猸愨瓙猸?|
| **鏂规<E98F82>2锛氱儹淇<E584B9><E6B787>锛堥噸鏂伴儴缃插畬鏁撮暅鍍忥級** | P1/P2鏁呴殰 | 淇<>敼浠爜鈫掓瀯寤洪暅鍍忊啋鎺ㄩ€佲啋閮ㄧ讲 | 鉁?褰诲簳淇<E7B0B3><E6B787><br>鉁?淇濈暀鏂板姛鑳?| 鉂?鎱<>紙10-30鍒嗛挓锛?br>鉂?闇€瑕佸畬鏁存瀯寤?| 猸愨瓙猸愨瓙 |
| **鏂规<E98F82>3锛氬崟鏂囦欢鐑<E6ACA2>洿鏂帮紙涓嶆帹鑽愶級** | 鉂?涓嶆帹鑽?| SSH杩涘<E69DA9>鍣ㄢ啋淇<E5958B>敼鏂囦欢 | 鉁?蹇?| 鉂?瀹瑰櫒閲嶅惎鍚庝涪澶?br>鉂?鏃犵増鏈<E5A297><E98F88>褰?br>鉂?杩濆弽Docker鐞嗗康 | 猸?|
| **鏂规<E98F82>4锛氶厤缃<E58EA4>儹鏇存柊** | 閰嶇疆閿欒<E996BF> | SAE鐜<45><E9909C>鍙橀噺鈫掗噸鍚<E599B8>簲鐢?| 鉁?蹇<>紙<5鍒嗛挓锛?br>鉁?鏃犻渶閲嶆柊鏋勫缓 | 鉂?鍙<>€傜敤浜庨厤缃<E58EA4>棶棰?| 猸愨瓙猸愨瓙 |
### 3. 璇︾粏淇<E7B28F><E6B787>娴佺▼
#### 3.1 鏂规<E98F82>1锛歋AE涓€閿<E282AC>洖婊氾紙鎺ㄨ崘锛夆瓙猸愨瓙猸愨瓙
**閫傜敤鍦烘櫙锛?*
- 鏂扮増鏈<E5A297>儴缃插悗鍙戠幇涓ラ噸Bug
- 鎬ц兘鎬ュ墽涓嬮檷
- 鍔熻兘瀹屽叏涓嶅彲鐢?
**鎿嶄綔姝ラ<E5A79D>锛?*
```
姝ラ<EFBFBD>1: 鐧诲綍闃块噷浜戞帶鍒跺彴 鈫?SAE
姝ラ<EFBFBD>2: 閫夋嫨闂<E5ABA8><E99782>搴旂敤锛堝<E9949B> aiclinical-backend锛?姝ラ<E5A79D>3: 鐐瑰嚮"閮ㄧ讲鍘嗗彶"
姝ラ<EFBFBD>4: 鎵惧埌涓婁竴涓<E7ABB4>ǔ瀹氱増鏈<E5A297>紙濡?v1.2.2锛?姝ラ<E5A79D>5: 鐐瑰嚮"鍥炴粴"鎸夐挳
姝ラ<EFBFBD>6: 纭<><E7BAAD> 鈫?SAE鑷<45>姩鎵ц<E98EB5>婊氬姩鍥炴粴
姝ラ<EFBFBD>7: 瑙傚療鍋ュ悍妫€鏌ュ拰鏃ュ織
姝ラ<EFBFBD>8: 楠岃瘉鍔熻兘鎭㈠<E98EAD>
棰勮<EFBFBD>鏃堕棿锛?-5鍒嗛挓
```
**SAE鍥炴粴鏈哄埗锛?*
```
鍥炴粴杩囩▼锛堟粴鍔ㄥ洖婊氾紝闆跺仠鏈猴級
鈹溾攢鈹€ 闃舵<E99783>1: 浠嶢CR鎷夊彇鏃х増鏈<E5A297>暅鍍?鈹溾攢鈹€ 闃舵<E99783>2: 鍚<>姩1涓<31>棫鐗堟湰瀹炰緥
鈹溾攢鈹€ 闃舵<E99783>3: 鍋ュ悍妫€鏌ラ€氳繃鍚庯紝鍒囨崲娴侀噺鍒版棫瀹炰緥
鈹溾攢鈹€ 闃舵<E99783>4: 閫愭<E996AB>鍋滄<E98D8B>鏂扮増鏈<E5A297>疄渚?鈹溾攢鈹€ 闃舵<E99783>5: 鍏ㄩ儴瀹炰緥鍥炴粴瀹屾垚
鈹斺攢鈹€ 鏃堕棿锛?-3鍒嗛挓锛?瀹炰緥鐨勬儏鍐碉級
```
**鍥炴粴鍚庣殑澶勭悊锛?*
```
鈽?1. 楠岃瘉鏍稿績鍔熻兘鎭㈠<E98EAD>
鈽?2. 閫氱煡鍥㈤槦鍥炴粴瀹屾垚
鈽?3. 鍒嗘瀽鏁呴殰鍘熷洜锛堟棩蹇?鐩戞帶锛?鈽?4. 淇<><E6B787>Bug锛堟湰鍦版祴璇曞厖鍒嗭級
鈽?5. 閲嶆柊閮ㄧ讲淇<E8AEB2><E6B787>鐗堟湰
```
#### 3.2 鏂规<E98F82>2锛氱儹淇<E584B9><E6B787>锛堥噸鏂伴儴缃插畬鏁碊ocker闀滃儚锛夆瓙猸愨瓙猸?
**閫傜敤鍦烘櫙锛?*
- 鏃犳硶鍥炴粴锛堟棫鐗堟湰涔熸湁闂<E6B981><E99782>锛?- Bug宸插畾浣嶄笖淇<E7AC96><E6B787>绠€鍗?- 闇€瑕佷繚鐣欐柊鍔熻兘
**鎿嶄綔姝ラ<E5A79D>锛?*
```bash
# ===== 鍦烘櫙锛氬悗绔疉PI杩斿洖500閿欒<E996BF> =====
# 姝ラ<E5A79D>1: 鏈<>湴澶嶇幇闂<E5B987><E99782>
npm run dev
# 娴嬭瘯API: POST /api/v1/users
# 閿欒<E996BF>鏃ュ織: TypeError: Cannot read property 'email' of undefined
# 姝ラ<E5A79D>2: 淇<><E6B787>
# backend/src/modules/users/userService.ts
# 淇<><E6B787>锛氭坊鍔犵┖鍊兼牎楠?if (!userData || !userData.email) {
throw new Error('Email is required')
}
# 姝ラ<E5A79D>3: 鏈<>湴娴嬭瘯閫氳繃
npm run dev
# 閲嶆柊娴嬭瘯API 鈫?200 OK
# 姝ラ<E5A79D>4: 鏋勫缓鏂伴暅鍍忥紙鐗堟湰鍙峰崌绾э級
npm run build
docker build -t backend:v1.2.4 . # 淇<><E6B787>鐗堟湰鍙?1
# 姝ラ<E5A79D>5: 鎺ㄩ€佸埌ACR
docker tag backend:v1.2.4 registry.cn-hangzhou.aliyuncs.com/aiclinical/backend:v1.2.4
docker push registry.cn-hangzhou.aliyuncs.com/aiclinical/backend:v1.2.4
# 姝ラ<E5A79D>6: SAE閮ㄧ讲
# 鎺у埗鍙?鈫?閮ㄧ讲 鈫?闀滃儚鐗堟湰: v1.2.4 鈫?纭<><E7BAAD> 鈫?婊氬姩鍙戝竷
# 姝ラ<E5A79D>7: 瑙傚療閮ㄧ讲杩囩▼
# SAE鏃ュ織瀹炴椂鏌ョ湅 鈫?鏃燛RROR 鈫?鍋ュ悍妫€鏌ラ€氳繃
# 姝ラ<E5A79D>8: 楠岃瘉淇<E79889><E6B787>
curl -X POST https://api.your-domain.com/api/v1/users \
-H "Content-Type: application/json" \
-d '{"email":"test@example.com"}'
# 杩斿洖: 200 OK
# 姝ラ<E5A79D>9: 鏇存柊Git
git add .
git commit -m "hotfix: add email validation in userService"
git tag v1.2.4
git push origin main
git push origin v1.2.4
```
**棰勮<E6A3B0>鏃堕棿锛?0-30鍒嗛挓**
```
爜淇<EFBFBD><EFBFBD>: 5鍒嗛挓
鏋勫缓闀滃儚: 3-5鍒嗛挓锛圢ode.js鍚庣<E98D9A>锛?鎺ㄩ€侀暅鍍? 1-2鍒嗛挓
SAE閮ㄧ讲: 2-3鍒嗛挓
楠岃瘉: 2鍒嗛挓
Git鎻愪氦: 1鍒嗛挓
```
#### 3.3 鏂规<E98F82>3锛氬崟鏂囦欢鐑<E6ACA2>洿鏂帮紙鉂屼笉鎺ㄨ崘锛屼粎绱ф€ユ儏鍐碉級
**涓轰粈涔堜笉鎺ㄨ崘锛?*
1. 鉂?**瀹瑰櫒閲嶅惎鍚庝涪澶?*锛氬<E9949B>鍣ㄦ槸鏃犵姸鎬佺殑锛岄噸鍚<E599B8>悗淇<E68297>敼娑堝け
2. 鉂?**鏃犵増鏈<E5A297><E98F88>褰?*锛氭棤娉曡拷婧<E68BB7>慨鏀瑰巻鍙?3. 鉂?**澶氬疄渚嬩笉涓€鑷?*锛歋AE鏈夊<E98F88><EFBFBD>疄渚嬶紝鍙<E7B49D>慨鏀逛竴涓<E7ABB4>疄渚嬫棤鏁?4. 鉂?**杩濆弽Docker鐞嗗康**锛氬<E9949B>鍣ㄥ簲璇ユ槸涓嶅彲鍙樼殑
**濡傛灉蹇呴』浣跨敤锛堟瀬绔<E780AC>揣鎬ユ儏鍐碉級锛?*
```bash
# 鈿狅笍 浠呬緵绱ф€ユ儏鍐靛弬鑰冿紝涓嶆帹鑽?
# 姝ラ<E5A79D>1: 鐧诲綍SAE瀹炰緥锛堥€氳繃浜戝姪鎵嬶級
# SAE鎺у埗鍙?鈫?瀹炰緥鍒楄〃 鈫?鐧诲綍瀹炰緥
# 姝ラ<E5A79D>2: 鎵惧埌鏂囦欢浣嶇疆
cd /app
ls -la
# 姝ラ<E5A79D>3: 淇<>敼鏂囦欢
vi src/modules/users/userService.js
# 淇<>敼閿欒<E996BF>鐨勪唬鐮?
# 姝ラ<E5A79D>4: 閲嶅惎搴旂敤锛圫AE浼氳嚜鍔ㄩ噸鍚<E599B8>
# 鈿狅笍 娉ㄦ剰锛氳繖涓<E7B996>慨鏀瑰彧鍦ㄥ綋鍓嶅疄渚嬬敓鏁堬紝閲嶅惎鍚庝涪澶?
# 姝ラ<E5A79D>5: 绔嬪嵆鍑嗗<E98D91>紡淇<E7B4A1><E6B787>锛堟柟妗?锛?# 鏈<>湴淇<E6B9B4>敼 鈫?鏋勫缓闀滃儚 鈫?閮ㄧ讲
```
**鎬荤粨锛氶櫎闈炵郴缁熷畬鍏ㄥ穿婧冧笖鏃犳硶鍥炴粴锛屽惁鍒欎笉瑕佷娇鐢ㄥ崟鏂囦欢鐑<E6ACA2>洿鏂帮紒**
#### 3.4 鏂规<E98F82>4锛氶厤缃<E58EA4>儹鏇存柊锛堢幆澧冨彉閲忥級猸愨瓙猸愨瓙
**閫傜敤鍦烘櫙锛?*
- 鏁版嵁搴撹繛鎺ュ瓧绗︿覆閿欒<E996BF>
- API瀵嗛挜/Token杩囨湡
- 澶栭儴鏈嶅姟鍦板潃鍙樻洿
- Feature Flag寮€鍏?
**鎿嶄綔姝ラ<E5A79D>锛?*
```
# 鍦烘櫙锛欴ify API鍦板潃閰嶇疆閿欒<E996BF>
姝ラ<EFBFBD>1: SAE鎺у埗鍙?鈫?閫夋嫨搴旂敤 鈫?鐜<><E9909C>鍙橀噺
姝ラ<EFBFBD>2: 鎵惧埌閿欒<E996BF>鐨勫彉閲? DIFY_API_URL=http://172.16.1.100/v1 # 鉂?閿欒<E996BF>IP
姝ラ<EFBFBD>3: 淇<>敼涓烘<E6B693><EFBFBD>€? DIFY_API_URL=http://172.16.2.50/v1 # 鉁?姝IP
姝ラ<EFBFBD>4: 淇濆瓨 鈫?SAE鎻愮ず"闇€瑕侀噸鍚<E599B8>簲鐢?
姝ラ<EFBFBD>5: 鐐瑰嚮"閲嶅惎搴旂敤" 鈫?婊氬姩閲嶅惎锛堥浂鍋滄満锛?姝ラ<E5A79D>6: 瑙傚療鏃ュ織 鈫?杩炴帴鎴愬姛
姝ラ<EFBFBD>7: 楠岃瘉鍔熻兘鎭㈠<E98EAD>
棰勮<EFBFBD>鏃堕棿锛?-5鍒嗛挓
```
**鐜<><E9909C>鍙橀噺淇<E599BA>敼鐨勬敞鎰忎簨椤癸細**
- 鉁?淇<>敼鍚庡繀椤婚噸鍚<E599B8>簲鐢ㄦ墠鑳界敓鏁?- 鉁?婊氬姩閲嶅惎锛屼笉褰卞搷鏈嶅姟鍙<E5A79F>敤鎬?- 鈿狅笍 鏁忔劅淇℃伅锛堝瘑鐮侊級淇<E7B49A>敼鍚庯紝璁板緱鏇存柊鏈<E69F8A>湴 `.env.example`
- 鈿狅笍 濡傛灉娑夊強鏁版嵁搴撹縼绉伙紝纭<E7B49D>繚鏁版嵁搴撳凡鍑嗗<E98D91>濂?
### 4. 鏁呴殰棰勯槻涓庣洃鎺?
#### 4.1 棰勯槻鎺<E6A7BB>
```
鈽?1. 鍏呭垎鐨勬湰鍦版祴璇? 鈹溾攢 鏍稿績鍔熻兘鎵嬪伐娴嬭瘯
鈹溾攢 杈圭晫鏉′欢娴嬭瘯
鈹斺攢 涓庣敓浜х幆澧冪被浼肩殑鏁版嵁娴嬭瘯
鈽?2. 鐏板害鍙戝竷锛圫AE鏀<45>寔锛? 鈹溾攢 鍏堥儴缃插埌1涓<31>疄渚嬶紙10%娴侀噺锛? 鈹溾攢 瑙傚療10-30鍒嗛挓
鈹斺攢 鏃犻棶棰樺悗鍏ㄩ噺鍙戝竷
鈽?3. 鍋ュ悍妫€鏌ュ畬鍠? 鈹溾攢 /health 绔<>偣妫€鏌ユ暟鎹<E69A9F>簱杩炴帴
鈹溾攢 /health 绔<>偣妫€鏌ュ<E98F8C>閮ㄦ湇鍔★紙Dify/OSS锛? 鈹斺攢 鍋ュ悍妫€鏌ュけ璐ヨ嚜鍔ㄩ噸鍚?
鈽?4. 鐩戞帶鍛婅<E98D9B>
鈹溾攢 閿欒<E996BF>鏃ュ織鍛婅<E98D9B>锛圫LS锛? 鈹溾攢 API鍝嶅簲鏃堕棿鍛婅<E98D9B>锛圓RMS锛? 鈹斺攢 鏁版嵁搴撹繛鎺ユ暟鍛婅<E98D9B>锛圧DS鐩戞帶锛?
鈽?5. 鑷<>姩鍖栨祴璇曪紙鏈<E7B499>潵锛? 鈹溾攢 鍗曞厓娴嬭瘯锛圝est / Pytest锛? 鈹溾攢 闆嗘垚娴嬭瘯锛圫upertest / Playwright锛? 鈹斺攢 CI/CD涓<44>嚜鍔ㄦ墽琛?```
#### 4.2 鐩戞帶鎸囨爣
| 鎸囨爣绫诲瀷 | 鐩戞帶鎸囨爣 | 鍛婅<E98D9B>闃堝€?| 澶勭悊鎺<E6828A>柦 |
|---------|---------|---------|---------|
| **搴旂敤鐩戞帶** | 閿欒<E996BF>鐜?| >5% | 绔嬪嵆鏌ョ湅鏃ュ織锛岃€冭檻鍥炴粴 |
| **搴旂敤鐩戞帶** | API鍝嶅簲鏃堕棿 | >2绉?| 妫€鏌ユ暟鎹<E69A9F>簱鎱㈡煡璇€€佸<E282AC>閮ㄦ湇鍔?|
| **搴旂敤鐩戞帶** | 鍋ュ悍妫€鏌ュけ璐?| >3娆?| 鑷<>姩閲嶅惎瀹炰緥锛屾<E9949B>鏌ヤ緷璧栨湇鍔?|
| **鏁版嵁搴撶洃鎺?* | 杩炴帴鏁?| >80% | 妫€鏌ヨ繛鎺ユ硠婕忥紝澧炲姞杩炴帴姹?|
| **鏁版嵁搴撶洃鎺?* | 鎱㈡煡璇?| >1绉?| 浼樺寲SQL锛屾坊鍔犵储寮?|
| **瀹瑰櫒鐩戞帶** | CPU浣跨敤鐜?| >70% | 妫€鏌ユ<E98F8C><EFBFBD>幆锛岃€冭檻鎵╁<E98EB5> |
| **瀹瑰櫒鐩戞帶** | 鍐呭瓨浣跨敤鐜?| >80% | 妫€鏌ュ唴瀛樻硠婕忥紝閲嶅惎瀹炰緥 |
### 5. 鏁呴殰淇<E6AEB0><E6B787>鍐崇瓥鏍?
```
鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹? 鍙戠幇绾夸笂鏁呴殰 鈹? 鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹<E282AC>攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹? 鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈻尖攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹?褰卞搷鑼冨洿璇勪及锛? 鈹? 鈹斺攢鈹€鈹€鈹€鈹<E282AC>攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹? 鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹尖攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹? 鈹? 鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈻尖攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹屸攢鈹€鈹€鈹€鈹€鈹€鈻尖攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹? 鍏ㄧ珯涓嶅彲鐢? 鈹? 鈹?閮ㄥ垎鍔熻兘寮傚父 鈹? 鈹? (P0/P1) 鈹? 鈹? (P2/P3) 鈹? 鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹<E282AC>攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹<E282AC>攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹? 鈹? 鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈻尖攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹屸攢鈹€鈹€鈹€鈹€鈹€鈻尖攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹?鑳藉惁蹇<E68381>€熷畾浣嶏紵 鈹? 鈹?鑳藉惁蹇<E68381>€熶慨澶嶏紵 鈹? 鈹斺攢鈹€鈹€鈹<E282AC>攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹<E282AC>攢鈹€鈹€鈹? 鈹斺攢鈹€鈹<E282AC>攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹<E282AC>攢鈹€鈹€鈹? 鈹?No 鈹?Yes 鈹?Yes 鈹?No
鈹? 鈹? 鈹? 鈹? 鈹屸攢鈹€鈹€鈹€鈹€鈻尖攢鈹€鈹?鈹屸攢鈹€鈻尖攢鈹€鈹€鈹€鈹€鈹?鈹屸攢鈹€鈻尖攢鈹€鈹?鈹屸攢鈹€鈹€鈻尖攢鈹€鈹€鈹€鈹? 鈹?绔嬪嵆 鈹?鈹?鏄<>厤缃?鈹?鈹?鐑<>慨鈹?鈹?涓嬩釜鐗?鈹? 鈹?鍥炴粴 鈹?鈹?闂<><E99782>锛?鈹?鈹?澶? 鈹?鈹?鏈<>慨澶?鈹? 鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹斺攢鈹€鈹<E282AC>攢鈹€鈹<E282AC>攢鈹€鈹?鈹斺攢鈹€鈹€鈹€鈹€鈹?鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹? 鈹? 鈹? 鈹屸攢鈹€鈹€鈹€鈹€鈻尖攢鈹€鈻尖攢鈹€鈹€鈹€鈹? 鈹?淇<>敼鐜<E695BC><E9909C>鍙橀噺 鈹? 鈹?+ 閲嶅惎搴旂敤 鈹? 鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?```
---
## 閮ㄧ讲鏂囨。瀵艰埅
### 馃摎 鐙<>珛閮ㄧ讲鏂囨。娓呭崟
| # | 鏂囨。鍚嶇О | 閮ㄧ讲瀵硅薄 | 鐩<>爣鐜<E788A3><E9909C> | 棰勮<E6A3B0>鏃堕棿 |
|---|---------|---------|---------|---------|
| 1 | [PostgreSQL閮ㄧ讲绛栫暐-鎽稿簳鎶ュ憡](./PostgreSQL閮ㄧ讲绛栫暐-鎽稿簳鎶ュ憡.md) | PostgreSQL 15鏁版嵁搴?| RDS PostgreSQL 15 | 10鍒嗛挓锛坧g_dump瀵煎叆锛?|
| 2 | [Dify-ECS閮ㄧ讲瀹屽叏鎸囧崡](./03-Dify-ECS閮ㄧ讲瀹屽叏鎸囧崡.md) | Dify RAG骞冲彴 | ECS + Docker Compose | 30-60鍒嗛挓 |
| 3 | [Python寰<6E>湇鍔?SAE瀹瑰櫒閮ㄧ讲鎸囧崡](./04-Python寰<6E>湇鍔?SAE瀹瑰櫒閮ㄧ讲鎸囧崡.md) | Python寰<6E>湇鍔?| SAE瀹瑰櫒瀹炰緥 | 20-30鍒嗛挓 |
| 4 | [Node.js鍚庣<E98D9A>-SAE瀹瑰櫒閮ㄧ讲鎸囧崡](./05-Node.js鍚庣<E98D9A>-SAE瀹瑰櫒閮ㄧ讲鎸囧崡.md) | Node.js鍚庣<E98D9A> | SAE瀹瑰櫒瀹炰緥 | 20-30鍒嗛挓 |
| 5 | [鍓嶇<E98D93>Nginx-SAE瀹瑰櫒閮ㄧ讲鎸囧崡](./06-鍓嶇<E98D93>Nginx-SAE瀹瑰櫒閮ㄧ讲鎸囧崡.md) | React鍓嶇<E98D93> | SAE瀹瑰櫒瀹炰緥 | 15-20鍒嗛挓 |
**鎬婚儴缃叉椂闂达細** 绾?-3灏忔椂锛堜粠0鍒板叏閮ㄤ笂绾匡級
### 馃幆 閮ㄧ讲椤哄簭寤鸿<E5AFA4>
```
<EFBFBD>竴闃舵<EFBFBD>锛氬熀纭€璁炬柦锛圖ay 1锛夆瓙 蹇呴渶
鈹溾攢鈹€ 1. 鍒涘缓VPC鍜屽畨鍏ㄧ粍 (10鍒嗛挓)
鈹溾攢鈹€ 2. 猸?鍒涘缓NAT缃戝叧 + 缁戝畾EIP (15鍒嗛挓) 鈫?鏂板<E98F82>锛屽繀闇€锛?鈹溾攢鈹€ 3. 閮ㄧ讲RDS PostgreSQL 15 (10鍒嗛挓锛岀瓑寰呭疄渚嬪垱寤?5鍒嗛挓)
鈹溾攢鈹€ 4. 瀵煎叆鏁版嵁搴擄紙pg_dump锛?(5鍒嗛挓)
鈹斺攢鈹€ 5. 鍒涘缓OSS Bucket (5鍒嗛挓)
鈹斺攢鈹€ 閰嶇疆鐢熷懡鍛ㄦ湡銆佹潈闄?
<EFBFBD>簩闃舵<EFBFBD>锛氭牳蹇冩湇鍔★紙Day 1锛夆殸锔?涓存椂閰嶇疆
鈹溾攢鈹€ 6. 閮ㄧ讲Node.js鍚庣<E98D9A>鍒癝AE (20鍒嗛挓)
鈹? 鈹斺攢鈹€ 鈿狅笍 DIFY_API_KEY=temp锛堜复鏃跺€硷紝绛塂ify閮ㄧ讲鍚庢洿鏂帮級
鈹溾攢鈹€ 7. 閮ㄧ讲Python寰<6E>湇鍔″埌SAE (20鍒嗛挓)
鈹斺攢鈹€ 8. 绔<>埌绔<E59F8C>祴璇曪紙鍚庣<E98D9A>API + Python鏈嶅姟锛?(15鍒嗛挓)
<EFBFBD>笁闃舵<EFBFBD>锛氱敤鎴风晫闈<EFBFBD>紙Day 2锛?鈹溾攢鈹€ 9. 閮ㄧ讲鍓嶇<E98D93>鍒癝AE (15鍒嗛挓)
鈹斺攢鈹€ 10. 瀹屾暣鍔熻兘娴嬭瘯锛堜笉鍚玃KB妯″潡锛?(30鍒嗛挓)
<EFBFBD>洓闃舵<EFBFBD>锛欴ify鏈嶅姟锛圖ay 2-3锛夆瓙 PKB妯″潡蹇呴渶
鈹溾攢鈹€ 11. 閮ㄧ讲Dify鍒癊CS (60鍒嗛挓)
鈹溾攢鈹€ 12. 鐧诲綍Dify鐢熸垚API Key (5鍒嗛挓)
鈹溾攢鈹€ 13. 鏇存柊鍚庣<E98D9A>DIFY_API_KEY鐜<59><E9909C>鍙橀噺 (5鍒嗛挓)
鈹斺攢鈹€ 14. 娴嬭瘯PKB鐭ヨ瘑搴撳姛鑳?(15鍒嗛挓)
鎬昏<EFBFBD>锛氱害4-5灏忔椂锛堝疄闄呮搷浣滄椂闂达紝涓嶅惈绛夊緟锛?```
### 馃摉 濡備綍浣跨敤杩欎簺鏂囨。锛?
#### 鏂板洟闃熼<E99783>娆¢儴缃?
```
姝ラ<EFBFBD>1: 闃呰<E99783><EFBFBD>€婇儴缃叉灦鏋勬€昏<E282AC>銆? 鈹溾攢 鐞嗚В鏁翠綋鏋舵瀯
鈹溾攢 鐞嗚В妯″潡渚濊禆鍏崇郴
鈹斺攢 鐔熸倝闃块噷浜戞湇鍔?
姝ラ<EFBFBD>2: 鎸夐『搴忛槄璇荤嫭绔嬮儴缃叉枃妗? 鈹溾攢 PostgreSQL閮ㄧ讲绛栫暐锛堢悊瑙暟鎹<E69A9F>簱鏋舵瀯锛? 鈹溾攢 Node.js鍚庣<E98D9A>閮ㄧ讲锛堟牳蹇冩湇鍔★級
鈹溾攢 Python寰<6E>湇鍔¢儴缃诧紙鑳藉姏鏀<E5A78F>拺锛? 鈹溾攢 鍓嶇<E98D93>Nginx閮ㄧ讲锛堢敤鎴风晫闈<E699AB>
鈹斺攢 Dify閮ㄧ讲锛堝彲閫夛紝PKB妯″潡闇€瑕侊級
姝ラ<EFBFBD>3: 鍑嗗<E98D91>闃块噷浜戣处鍙峰拰璧勬簮
鈹溾攢 瀹炲悕璁よ瘉
鈹溾攢 鍏呭€硷紙寤鸿<E5AFA4>楼500璧锋<E792A7>锛? 鈹溾攢 鍒涘缓RAM瀛愯处鍙凤紙瀹夊叏锛? 鈹斺攢 寮€閫歋AE/RDS/OSS/ACR鏈嶅姟
姝ラ<EFBFBD>4: 鎸夌<E98EB8>涓€闃舵<E99783>鈫掔<E988AB>浜岄樁娈碘啋绗<E5958B>笁闃舵<E99783>椤哄簭閮ㄧ讲
鈹斺攢 姣忎釜闃舵<E99783>瀹屾垚鍚庢祴璇曢獙璇?
姝ラ<EFBFBD>5: 鐩戞帶涓庝紭鍖? 鈹溾攢 閰嶇疆鍛婅<E98D9B>瑙勫垯
鈹溾攢 瑙傚療7澶╄繍琛屾儏鍐? 鈹斺攢 鏍规嵁瀹為檯鎯呭喌璋冩暣瑙勬牸
```
#### 宸叉湁绯荤粺缁存姢
```
鏃ュ父寮€鍙戦儴缃?
鈹溾攢 淇<>敼浠
鈹溾攢 鏈<>湴娴嬭瘯
鈹溾攢 鏋勫缓Docker闀滃儚
鈹溾攢 鎺ㄩ€佸埌ACR
鈹斺攢 SAE鎺у埗鍙伴儴缃?
绾夸笂鏁呴殰澶勭悊:
鈹溾攢 鍙傝€?绾夸笂鏁呴殰蹇<E6AEB0>€熶慨澶?绔犺妭
鈹溾攢 P0/P1: 绔嬪嵆鍥炴粴
鈹溾攢 P2/P3: 鐑<>慨澶嶆垨涓嬩釜鐗堟湰
鈹斺攢 鏁呴殰澶嶇洏锛屾洿鏂版枃妗?
鏂版ā鍧椾笂绾?
鈹溾攢 鍙傝€冨<E282AC>搴旂殑鐙<E6AE91>珛閮ㄧ讲鏂囨。
鈹溾攢 纭<><E7BAAD>渚濊禆鏈嶅姟锛堟暟鎹<E69A9F>簱/OSS/鍏朵粬鏈嶅姟锛?鈹溾攢 鐏板害鍙戝竷锛堝厛1涓<31>疄渚嬶級
鈹斺攢 鍏ㄩ噺鍙戝竷
```
### 馃敆 鏂囨。闂寸殑寮曠敤鍏崇郴
```
00-閮ㄧ讲鏋舵瀯鎬昏<E98EAC>.md (鏈<>枃妗?
鈹?鈹溾攢鈹€鈻?PostgreSQL閮ㄧ讲绛栫暐-鎽稿簳鎶ュ憡.md
鈹? 鈹溾攢 鏁版嵁搴撴灦鏋勮<E98F8B>瑙?鈹? 鈹溾攢 pg_dump瀵煎叆娴佺▼
鈹? 鈹溾攢 澶囦唤绛栫暐
鈹? 鈹斺攢 鏈€浣冲疄璺?鈹?鈹溾攢鈹€鈻?03-Dify-ECS閮ㄧ讲瀹屽叏鎸囧崡.md
鈹? 鈹溾攢 Docker Compose閰嶇疆
鈹? 鈹溾攢 Nginx璺<78>敱灞?鈹? 鈹溾攢 Swap閰嶇疆
鈹? 鈹斺攢 鏁呴殰鎺掓煡
鈹?鈹溾攢鈹€鈻?04-Python寰<6E>湇鍔?SAE瀹瑰櫒閮ㄧ讲鎸囧崡.md
鈹? 鈹溾攢 Dockerfile澶氶樁娈垫瀯寤?鈹? 鈹溾攢 绯荤粺渚濊禆瀹夎<E780B9>锛圥yTorch/OpenCV锛?鈹? 鈹溾攢 SAE閰嶇疆
鈹? 鈹斺攢 鍐呯綉璋冪敤
鈹?鈹溾攢鈹€鈻?05-Node.js鍚庣<E98D9A>-SAE瀹瑰櫒閮ㄧ讲鎸囧崡.md
鈹? 鈹溾攢 Prisma鍙嶅悜鍚屾<E98D9A>锛坉b pull锛?鈹? 鈹溾攢 鏁版嵁搴撹繛鎺ユ睜
鈹? 鈹溾攢 浼橀泤鍏抽棴
鈹? 鈹斺攢 鐜<><E9909C>鍙橀噺閰嶇疆
鈹?鈹斺攢鈹€鈻?06-鍓嶇<E98D93>Nginx-SAE瀹瑰櫒閮ㄧ讲鎸囧崡.md
鈹溾攢 SPA璺<41>敱閰嶇疆
鈹溾攢 API鍙嶅悜浠
鈹溾攢 闈欐€佽祫婧愮紦瀛? 鈹斺攢 envsubst鍔ㄦ€侀厤缃?```
---
## 馃洝锔?瀹夊叏涓庢渶浣冲疄璺?
### 1. 鏃跺尯缁熶竴閰嶇疆 猸愨瓙猸愨瓙猸?
**闂<><E99782>锛?* 涓嶅悓鏈嶅姟鐨勬椂鍖轰笉涓€鑷翠細瀵艰嚧锛?- 鏃ュ織鏃堕棿瀵逛笉涓婏紙鍓嶇<E98D93>14:00锛屽悗绔?6:00锛?- pg-boss瀹氭椂浠诲姟鍦ㄩ敊璇<E6958A>椂闂磋Е鍙?- 鐢ㄦ埛鐪嬪埌鐨勬椂闂存埑閿欒<E996BF>
**瑙e喅锛?* 鎵€鏈夋湇鍔$粺涓€浣跨敤 `Asia/Shanghai` 鏃跺尯
```dockerfile
# backend/Dockerfile - Node.js鍚庣<E98D9A>
FROM node:22-alpine AS runtime
RUN apk add --no-cache tzdata
ENV TZ=Asia/Shanghai
# ... 鍏朵粬閰嶇疆
# extraction_service/Dockerfile - Python寰<6E>湇鍔?FROM python:3.11-slim AS runtime
RUN apt-get update && apt-get install -y tzdata
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# ... 鍏朵粬閰嶇疆
# frontend-v2/Dockerfile - 鍓嶇<E98D93>锛堝凡閰嶇疆锛?FROM nginx:1.25-alpine
RUN apk add --no-cache tzdata
ENV TZ=Asia/Shanghai
# ... 鍏朵粬閰嶇疆
```
```sql
-- RDS PostgreSQL 鏃跺尯閰嶇疆
-- RDS鎺у埗鍙?> 鍙傛暟璁剧疆 > timezone
timezone = Asia/Shanghai
```
**楠岃瘉鏃跺尯锛?*
```bash
# 鏌ョ湅瀹瑰櫒鏃跺尯
docker exec <container-id> date
# 搴旇<E690B4>鏄剧ず锛歋at Dec 14 14:30:00 CST 2024
# 鏌ョ湅RDS鏃跺尯
psql -c "SHOW timezone;"
# 搴旇<E690B4>鏄剧ず锛欰sia/Shanghai
```
### 2. 瀹夊叏缁勯厤缃<E58EA4>渶浣冲疄璺?猸愨瓙猸愨瓙猸?
#### ECS瀹夊叏缁勯厤缃<E58EA4>紙Dify鏈嶅姟鍣<E5A79F>
**姝g‘閰嶇疆锛?*
```bash
# ECS鎺у埗鍙?> 瀹夊叏缁?> 閰嶇疆瑙勫垯
# 鉁?鍏ユ柟鍚戣<E98D9A>鍒欙紙Inbound锛?鍏佽<E98D8F> 80/TCP 鏉ユ簮锛?72.16.0.0/12 # Nginx锛圴PC鍐呯綉璁块棶锛?鍏佽<E98D8F> 22/TCP 鏉ユ簮锛氭偍鐨勫姙鍏<E5A799><E98D8F><EFBFBD>綉IP # SSH绠
鎷掔粷 鎵€鏈? 鏉ユ簮锛?.0.0.0/0 # 榛樿<E6A69B>鎷掔粷
```
**鈿狅笍 瀹夊叏绾㈢嚎锛堢粷瀵圭<E780B5><EFBFBD>級锛?*
```bash
# 鉂?绂佹<E7BB82> 5000/TCP锛圖ify API锛夊<E9949B><EFBFBD>綉寮€鏀?# 鍚庢灉锛氶粦瀹㈠彲缁曡繃鍚庣<E98D9A>娑堣€桳LM棰濆害
# 鉂?绂佹<E7BB82> 8080/TCP锛圵eaviate锛夊<E9949B><EFBFBD>綉寮€鏀?# 鍚庢灉锛氬悜閲忔暟鎹<E69A9F>彲鑳借<E991B3>绐冨彇
# 鉂?绂佹<E7BB82> 6379/TCP锛圧edis锛夊<E9949B><EFBFBD>綉寮€鏀?# 鍚庢灉锛歊edis鏃犲瘑鐮侊紝鍙<E7B49D>兘琚<E58598>竻绌?
# 鉁?姝锛歞ocker-compose.yaml涓<6C><E6B693>粦瀹?services:
redis:
ports:
- "127.0.0.1:6379:6379" # 鍙<>洃鍚<E6B483>湰鍦? weaviate:
ports:
- "127.0.0.1:8080:8080" # 鍙<>洃鍚<E6B483>湰鍦?```
**楠岃瘉瀹夊叏閰嶇疆锛?*
```bash
# 浠庡叕缃戞祴璇曪紙搴旇<E690B4>澶辫触锛?telnet ECS鍏<53>綉IP 6379
# 搴旇<E690B4>瓒呮椂鎴栨嫆缁濊繛鎺?
# 浠嶸PC鍐呮祴璇曪紙搴旇<E690B4>鎴愬姛锛?curl http://172.16.x.x # Dify鍐呯綉鍦板潃
# 搴旇<E690B4>杩斿洖 Dify 鍝嶅簲
```
馃敆 **璇︾粏閰嶇疆锛?* 鍙傝€?`03-Dify-ECS閮ㄧ讲瀹屽叏鎸囧崡.md`
### 3. 闀滃儚鎷夊彇绛栫暐 猸愨瓙猸愨瓙猸?
**闂<><E99782>锛?* SAE鍙<45>兘涓嶄細鎷夊彇鏂伴暅鍍忥紙浠爜涓嶆洿鏂扮殑"鐏靛紓浜嬩欢"锛?
```bash
# 鍦烘櫙锛?寮€鍙戣€呬慨鏀逛唬鐮?鈫?鏋勫缓闀滃儚 鈫?鎺ㄩ€佸埌ACR锛堣<E9949B>鐩杤1.0.0锛?鈫?SAE閮ㄧ讲 鈫?鍙戠幇浠g爜娌℃洿鏂帮紵锛燂紵
# 鍘熷洜锛?SAE榛樿<E6A69B>闀滃儚鎷夊彇绛栫暐鍙<E69A90>兘鏄?IfNotPresent
濡傛灉鏈<EFBFBD>湴宸叉湁 v1.0.0锛屼笉浼氶噸鏂版媺鍙?```
**瑙喅鏂规<E98F82>锛?*
| 鏂规<E98F82> | 閫傜敤鐜<E695A4><E9909C> | 浼樺娍 | 鍔e娍 |
|------|---------|------|------|
| **鏂规<E98F82>A锛氱増鏈<E5A297>彿绠悊** | 鐢熶骇鐜<E9AA87><E9909C> | 鐗堟湰鍙<E6B9B0>拷婧<E68BB7>紝绋冲畾 | 闇€鎵嬪姩閫掑<E996AB>鐗堟湰鍙?|
| **鏂规<E98F82>B锛欰lways鎷夊彇** | 娴嬭瘯鐜<E798AF><E9909C> | 濮嬬粓鏈€鏂帮紝鏂逛究 | 姣忔<E5A7A3>閲嶅惎鎷夊彇锛屾參 |
**鏂规<E98F82>A锛氭瘡娆¢儴缃蹭娇鐢ㄦ柊鐗堟湰鍙凤紙寮虹儓鎺ㄨ崘锛?*
```bash
# 浣跨敤璇<E695A4>箟鍖栫増鏈<E5A297>彿
v1.0.0 鈫?v1.0.1 鈫?v1.0.2 ...
# 鎴栦娇鐢ㄦ椂闂存埑
v20251214-1430 鈫?v20251214-1530 ...
# 鎴栦娇鐢℅it SHA
v-a1b2c3d 鈫?v-b2c3d4e ...
```
**鏂规<E98F82>B锛氶厤缃甋AE闀滃儚鎷夊彇绛栫暐**
```bash
# SAE鎺у埗鍙?> 搴旂敤閰嶇疆 > 闀滃儚璁剧疆
闀滃儚鎷夊彇绛栫暐锛欰lways
# 鈿狅笍 娉ㄦ剰锛?# - 姣忔<E5A7A3>閲嶅惎閮戒細鎷夊彇闀滃儚锛堝惎鍔ㄧ◢鎱<E297A2>
# - 閫傚悎娴嬭瘯鐜<E798AF><E9909C>锛屼笉鎺ㄨ崘鐢熶骇鐜<E9AA87><E9909C>
```
### 4. 寮€鍙戣皟璇曟渶浣冲疄璺?
#### 鏈<>湴杩炴帴RDS鏁版嵁搴擄紙SSH闅ч亾锛?
**鍦烘櫙锛?* 寮€鍙戜汉鍛橀渶瑕佺敤Navicat/DBeaver鏌ョ湅RDS鏁版嵁
**闂<><E99782>锛?* RDS鍦╒PC鍐呯綉锛屾湰鍦版棤娉曠洿鎺ヨ<E98EBA>闂?
**瑙e喅锛?* 閫氳繃ECS寤虹珛SSH闅ч亾
```bash
# 姝ラ<E5A79D>1锛氬缓绔婼SH闅ч亾
ssh -N -L 5433:rm-xxxxx.pg.rds.aliyuncs.com:5432 \
root@ECS鍏<53>綉IP \
-i ~/.ssh/dify-ecs.pem
# 鍙傛暟璇存槑锛?# -N: 涓嶆墽琛岃繙绋嬪懡浠わ紝鍙<E7B49D>缓绔嬮毀閬?# -L: 鏈<>湴绔<E6B9B4>彛杞<E5BD9B>
# 5433: 鏈<>湴鐩戝惉绔<E68389>彛锛堥伩鍏嶄笌鏈<E7AC8C>湴PostgreSQL 5432鍐茬獊锛?# rm-xxxxx: RDS鍐呯綉鍦板潃
# 5432: RDS绔<53>
# 姝ラ<E5A79D>2锛歂avicat/DBeaver杩炴帴閰嶇疆
涓绘満锛歭ocalhost
<EFBFBD>彛锛?433
鐢ㄦ埛鍚嶏細aiclinical_rw
瀵嗙爜锛氾紙RDS瀵嗙爜锛?鏁版嵁搴擄細ai_clinical_research
# 姝ラ<E5A79D>3锛氭祴璇曡繛鎺?# 搴旇<E690B4>鎴愬姛杩炴帴鍒癛DS锛?```
**鍚庡彴杩愯<E69DA9>锛堝彲閫夛級锛?*
```bash
# 鏂规硶1锛歯ohup鍚庡彴杩愯<E69DA9>
nohup ssh -N -L 5433:rm-xxxxx.pg.rds.aliyuncs.com:5432 \
root@ECS-IP -i key.pem > /dev/null 2>&1 &
# 鏂规硶2锛氫繚鎸侀毀閬撹繍琛岋紙鏂扮粓绔<E7B293>獥鍙
ssh -N -L 5433:rm-xxxxx.pg.rds.aliyuncs.com:5432 \
root@ECS-IP -i key.pem
# 淇濇寔姝ょ粓绔<E7B293>獥鍙墦寮€
```
馃敆 **璇︾粏姝ラ<E5A79D>鍙傝€冿細** `07-鍏抽敭閰嶇疆琛ュ厖璇存槑.md` 绗?鑺?
### 5. Python鏈嶅姟鍐呭瓨绠悊 猸愨瓙猸愨瓙
**闂<><E99782>锛?* Python鏈嶅姟锛圥yMuPDF/Nougat锛夊唴瀛樺瘑闆嗭紝瀹规槗OOM
| 鍦烘櫙 | CPU | 鍐呭瓨 | Workers | 閫傜敤鎯呭喌 |
|------|-----|------|---------|---------|
| **鍩虹<E98DA9>鐗?* | 1鏍?| 2GB | 2 | 绠€鍗昉DF瑙瀽 |
| **鏍囧噯鐗?* | 2鏍?| 4GB | 3 | 鍖呭惈OCR锛圢ougat锛?|
| **澧炲己鐗?* | 2鏍?| 8GB | 4 | 澶ч噺OCR + 楂樺苟鍙?|
**鈿狅笍 閲嶈<E996B2>鎻愮ず锛?*
- 濡傛灉閬囧埌OOM锛圤ut of Memory锛夛紝浼樺厛鍗囩骇鍐呭瓨鑷?GB
- 鎴栬€呴檺鍒禛unicorn骞跺彂鏁帮細`--workers 1 --threads 2`
- PyMuPDF + Nougat OCR鍗曚釜璇锋眰鍙<E79CB0>兘鍗犵敤500MB-1GB鍐呭瓨
**Dockerfile浼樺寲锛堝凡搴旂敤锛夛細**
```dockerfile
CMD ["gunicorn", "main:app", \
"--bind", "0.0.0.0:8000", \
"--workers", "2", \
"--timeout", "120", \
"--max-requests", "100", \
"--max-requests-jitter", "10"]
```
馃敆 **璇︾粏閰嶇疆锛?* 鍙傝€?`04-Python寰<6E>湇鍔?SAE瀹瑰櫒閮ㄧ讲鎸囧崡.md`
### 6. NAT缃戝叧鎴愭湰浼樺寲
**褰撳墠鏂规<E98F82>锛歂AT缃戝叧锛堟帹鑽愶級**
```
鎴愭湰锛歂AT缃戝叧楼60/鏈?+ EIP娴侀噺璐孤?0-50/鏈?= 楼90-110/鏈?浼樺娍锛氱ǔ瀹氬彲闈狅紝鐢熶骇鐜<E9AA87><E9909C>鏍囬厤
娍锛氭垚鏈<EFBFBD>浉瀵硅緝楂?```
**鏇夸唬鏂规<E98F82>锛堜笉鎺ㄨ崘锛屼粎渚涘弬鑰冿級锛?*
| 鏂规<E98F82> | 鎴愭湰 | 绋冲畾鎬?| 澶嶆潅搴?| 鎺ㄨ崘搴?|
|------|------|--------|--------|--------|
| NAT缃戝叧 | 楼100/鏈?| 猸愨瓙猸愨瓙猸?| 浣?| 猸愨瓙猸愨瓙猸愶紙鎺ㄨ崘锛墊
| SAE缁戝畾EIP | 楼30-50/鏈?| 猸愨瓙猸?| 涓?| 猸愨瓙猸愶紙閮ㄥ垎鍦板煙锛墊
| ECS鍋歋NAT | 楼0锛堝<E9949B>鐢‥CS锛?| 猸愨瓙 | 楂?| 猸愨瓙锛堜笉鎺ㄨ崘锛墊
**寤鸿<E5AFA4>锛?* 鍒濆垱鍥㈤槦涓嶈<E6B693>鍦ㄨ繖閲岀渷閽憋紝NAT缃戝叧鏄<E58FA7>敓浜х幆澧冪殑鏍囬厤銆?
---
## 馃摑 鎬荤粨涓庡缓璁?
### 鏍稿績鏋舵瀯鐗圭偣
1. **鉁?浜戝師鐢烻erverless鏋舵瀯**
- 鍓嶇<E98D93>/鍚庣<E98D9A>/Python鍏ㄩ儴瀹瑰櫒鍖栭儴缃插埌SAE
- 寮规€т几缂╋紝鎸夐渶浠樿垂
- 闆惰繍缁达紝鑷<E7B49D>姩鏁呴殰杞<E6AEB0>Щ
2. **鉁?寰<>湇鍔¢殧绂?*
- 5涓<35>牳蹇冩ā鍧楄亴璐竻鏅? - 鍐呯綉閫氫俊锛屽厤娴侀噺璐? - 鐙<>珛閮ㄧ讲锛屼簰涓嶅奖鍝?
3. **鉁?鏁版嵁瀹夊叏鍙<E58F8F>帶**
- PostgreSQL 10涓猄chema闅旂<E99785>
- RDS鑷<53>姩澶囦唤 + PITR
- VPC鍐呯綉闅旂<E99785>锛岀櫧鍚嶅崟鎺у
4. **鉁?閫傚悎鍒濆垱鍥㈤槦**
- 1-2浜哄彲杩愮淮
- 鎵嬪伐閮ㄧ讲绠€鍗曠洿鎺? - 鎴愭湰鍙<E6B9B0>帶锛埪?,100/鏈堣捣锛?
### 涓嬩竴姝ヨ<E5A79D>鍔?
```
鈽?绗?鍛<>細鍩虹<E98DA9>璁炬柦鎼<E69FA6>
鈹溾攢 闃块噷浜戣处鍙峰噯澶? 鈹溾攢 VPC/RDS/OSS鍒涘缓
鈹斺攢 鏁版嵁搴撳<E690B4>鍏?
鈽?绗?鍛<>細鏍稿績鏈嶅姟閮ㄧ讲
鈹溾攢 Node.js鍚庣<E98D9A>涓婄嚎
鈹溾攢 Python寰<6E>湇鍔笂绾? 鈹溾攢 鍓嶇<E98D93>涓婄嚎
鈹斺攢 绔<>埌绔<E59F8C>祴璇?
鈽?绗?鍛<>細鍙<E7B4B0>€夋湇鍔?+ 鐩戞帶
鈹溾攢 Dify閮ㄧ讲锛堝<E9949B>闇€PKB妯″潡锛? 鈹溾攢 閰嶇疆鐩戞帶鍛婅<E98D9B>
鈹斺攢 鍘嬪姏娴嬭瘯
鈽?绗?鍛<>細绋冲畾鎬т紭鍖? 鈹溾攢 鏍规嵁鐩戞帶鏁版嵁璋冩暣璧勬簮
鈹溾攢 鏁呴殰婕旂粌锛堝洖婊氥€佷慨澶嶏級
鈹斺攢 鏂囨。瀹屽杽
```
### 鎸佺画鏀硅繘寤鸿<E5AFA4>
| 闃舵<E99783> | 鏀硅繘鏂瑰悜 | 浼樺厛绾?|
|------|---------|--------|
| **3涓<33>湀鍐?* | - 瀹屽杽鐩戞帶鍛婅<E98D9B><br>- 缂栧啓杩愮淮鎵嬪唽<br>- 鏁呴殰婕旂粌 | 猸愨瓙猸愨瓙猸?|
| **6涓<36>湀鍐?* | - 閰嶇疆CI/CD<br>- 鑷<>姩鍖栨祴璇?br>- 鎬ц兘浼樺寲 | 猸愨瓙猸愨瓙 |
| **1骞村唴** | - 璺ㄥ湴鍩熺伨澶?br>- 瀹瑰櫒缂栨帓鍗囩骇锛圓CK锛?br>- 寰<>湇鍔℃不鐞?| 猸愨瓙猸?|
---
**鏂囨。鍒涘缓浜猴細** AI鍔╂墜
**鏈€鍚庢洿鏂帮細** 2025-12-14
**鐗堟湰锛?* v1.0
**鏍稿績鐞嗗康锛氭灦鏋勬竻鏅般€佽亴璐e垎绂汇€佷簯鍘熺敓銆佹槗浜庤繍缁?* 猸愨瓙猸?