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%)
698 lines
15 KiB
Markdown
698 lines
15 KiB
Markdown
# AI銝游<E98A9D><E6B8B8>𠉛弦撟喳蝱 - <20>亙虜<E4BA99>湔鰵敹恍<E695B9><E6818D><EFBFBD>雿𨀣<E99BBF><F0A880A3>?
|
||
|
||
> **<2A><>﹝<EFBFBD>券<EFBFBD>?*嚗𡁏𠯫撣詨<E692A3><E8A9A8>賣凒<E8B3A3>啁<EFBFBD>敹恍<E695B9><E6818D><EFBFBD>雿𨀣<E99BBF><F0A880A3>?
|
||
> **<2A>格<EFBFBD><E6A0BC>冽<EFBFBD>**嚗𡁜<E59A97><F0A1819C>穃𣪧<E7A983>麄<EFBFBD><E9BA84><EFBFBD>蝏港犖<E6B8AF>塩<EFBFBD><E5A1A9>I<EFBFBD>拇<EFBFBD>
|
||
> **<2A>湔鰵<E6B994>園𡢿**嚗?025-12-25
|
||
> **<2A>寧<EFBFBD>**嚗𡁶<E59A97>撠讐移<E8AE90>溻<EFBFBD><E6BABB><EFBFBD><EFBFBD>桐縑<E6A190>臬<EFBFBD><E887AC><EFBFBD><EFBFBD><EFBFBD>虾<EFBFBD>湔𦻖憭滚<E686AD><E6BB9A>扯<EFBFBD>
|
||
|
||
---
|
||
|
||
## <20>㴓 雿輻鍂霂湔<E99C82>
|
||
|
||
**<EFBFBD>祆<EFBFBD>獢<EFBFBD><EFBFBD><EFBFBD>鍂鈭?*嚗?
|
||
- <20>?<3F>亙虜<E4BA99>蠘<EFBFBD><E8A098>湔鰵嚗<E9B0B5>耨<EFBFBD>嫣誨<E5ABA3><E8AAA8><EFBFBD><EFBFBD>湔鰵<E6B994>函蔡嚗?
|
||
- <20>?敹恍<E695B9>蠘翮隞<E7BFAE><E99A9E>瘥誩予/瘥誩𪂹<E8AAA9>湔鰵嚗?
|
||
- <20>?<3F>a<EFBFBD><EFBD81>譍<EFBFBD>嚗<EFBFBD><E59A97>隞碶犖<E7A2B6>䨝I敹恍<E695B9>煺<EFBFBD><E785BA>页<EFBFBD>
|
||
|
||
**銝漤<E98A9D><E6BCA4>鍂鈭?*嚗?
|
||
- <20>?擐𡝗活摰峕㟲<E5B395>函蔡嚗<E894A1>窈<EFBFBD>?`17-摰峕㟲<E5B395>函蔡摰墧<E691B0><E5A2A7>见<EFBFBD>-2025<32>?md`嚗?
|
||
- <20>?<3F>臬<EFBFBD><E887AC>㗛<EFBFBD>靽格㺿嚗<E3BABF>窈<EFBFBD>𧢲𧋦<F0A7A2B2><F0A78BA6>﹝蝚?<3F><><EFBFBD>
|
||
- <20>?<3F>桅<EFBFBD><E6A185>埝䰻嚗<E4B0BB>窈<EFBFBD>?`15-Node.js<6A>𡒊垢-<2D>函蔡<E587BD>𣂼<EFBFBD><F0A382BC>餌<EFBFBD>.md`嚗?
|
||
|
||
---
|
||
|
||
## <20>𣑐 銝<><E98A9D><EFBFBD><EFBFBD>蝵桐縑<E6A190>荔<EFBFBD>敹<EFBFBD>粉5<E7B289><35><EFBFBD>嚗?
|
||
|
||
### 1.1 ACR<43>𨅯<EFBFBD>隞枏<E99A9E>靽⊥<E99DBD>
|
||
|
||
**<EFBFBD>餃<EFBFBD><EFBFBD>剛<EFBFBD>**嚗?
|
||
```bash
|
||
Registry: crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com
|
||
<EFBFBD>冽<EFBFBD><EFBFBD>? gofeng117@163.com
|
||
撖<EFBFBD><EFBFBD>: fengzhibo117
|
||
```
|
||
|
||
**<EFBFBD>𨅯<EFBFBD><EFBFBD>啣<EFBFBD><EFBFBD>澆<EFBFBD>**嚗?
|
||
```bash
|
||
# <20>祉<EFBFBD><E7A589>啣<EFBFBD>嚗<EFBFBD>𧋦<EFBFBD>唳綫<E594B3><E7B6AB>鍂嚗?
|
||
crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/<隞枏<E99A9E><E69E8F>?:<<3C><>𧋦<EFBFBD>?
|
||
|
||
# VPC<50>啣<EFBFBD>嚗𠄎AE<41>匧<EFBFBD><E58CA7>剁<EFBFBD>
|
||
crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/<隞枏<E99A9E><E69E8F>?:<<3C><>𧋦<EFBFBD>?
|
||
```
|
||
|
||
**3銝芷<E98A9D><E88AB7>譍<EFBFBD>摨?*嚗?
|
||
- `python-extraction` - Python敺格<E695BA><E6A0BC>?
|
||
- `backend-service` - Node.js<6A>𡒊垢
|
||
- `ai-clinical_frontend-nginx` - <20>滨垢Nginx
|
||
|
||
---
|
||
|
||
### 1.2 SAE摨𠉛鍂靽⊥<E99DBD>
|
||
|
||
| 摨𠉛鍂<F0A0899B>滨妍 | <20>滚𦛚 | 敶枏<E695B6><E69E8F><EFBFBD>𧋦 | <20><><EFBFBD><EFBFBD>啣<EFBFBD> |
|
||
|---------|------|---------|---------|
|
||
| `python-extraction-test` | Python敺格<E695BA><E6A0BC>?| v1.0 | 172.17.173.66:8000 |
|
||
| `nodejs-backend-test` | Node.js<6A>𡒊垢 | v1.3 | 172.17.173.73:3001 |
|
||
| `frontend-nginx-service` | <20>滨垢Nginx | v1.0 | 172.17.173.72:80 |
|
||
|
||
**SAE<41>批<EFBFBD><E689B9>?*嚗冴ttps://sae.console.aliyun.com/
|
||
|
||
---
|
||
|
||
### 1.3 <20><>𧋦<EFBFBD>瑁<EFBFBD><E79181>?
|
||
|
||
**霂凋<E99C82><E5878B>𣇉<EFBFBD><F0A38789>?*嚗䫤v銝餌<E98A9D><E9A48C>?甈∠<E79488><E288A0>?靽株恥<E6A0AA>戡
|
||
|
||
```bash
|
||
v1.0 <20>?擐𡝗活<F0A19D97>函蔡
|
||
v1.1 <20>?<3F>蠘<EFBFBD><E8A098>湔鰵
|
||
v1.2 <20>?<3F>蠘<EFBFBD><E8A098>湔鰵
|
||
v1.3 <20>?<3F>蠘<EFBFBD><E8A098>湔鰵
|
||
v2.0 <20>?<3F>滚之<E6BB9A>湔鰵
|
||
```
|
||
|
||
**撱箄悅**嚗𡁏<E59A97>甈⊥凒<E28AA5>圈<EFBFBD>鍦<EFBFBD>甈∠<E79488><E288A0>砍噡嚗ǒ1.3 <20>?v1.4嚗?
|
||
|
||
---
|
||
|
||
## <20><> 鈭䎚<E988AD><E48E9A>凒<EFBFBD>衹ode.js<6A>𡒊垢嚗<E59EA2><E59A97>撣貊鍂嚗争<E59A97>潃鐥<E6BD83>潃鐥<E6BD83>
|
||
|
||
### 甇仿炊1嚗𡁏𧋦<F0A1818F>唳<EFBFBD>撱綽<E692B1>5<EFBFBD><35><EFBFBD>嚗?
|
||
|
||
```bash
|
||
# 餈𥕦<E9A488><F0A595A6>𡒊垢<F0A1928A>桀<EFBFBD>
|
||
cd D:\MyCursor\AIclinicalresearch\backend
|
||
|
||
# 蝻𤥁<E89DBB>TypeScript
|
||
npm run build
|
||
|
||
# 撉諹<E69289>蝻𤥁<E89DBB>蝏𤘪<E89D8F>
|
||
dir dist
|
||
# 摨磰砲<E7A3B0>见<EFBFBD>嚗餜ndex.js, common/, modules/ 蝑?
|
||
|
||
# <20><>遣Docker<65>𨅯<EFBFBD>嚗<EFBFBD><E59A97><EFBFBD>砍噡<E7A08D>鍦<EFBFBD>嚗?
|
||
docker build -t backend-service:v1.4 .
|
||
```
|
||
|
||
**憸<>恣<EFBFBD>園𡢿**嚗?<3F><><EFBFBD>
|
||
|
||
---
|
||
|
||
### 甇仿炊2嚗𡁏綫<F0A1818F><E7B6AB><EFBFBD><EFBFBD>誩<EFBFBD>ACR嚗?0<><30><EFBFBD>嚗?
|
||
|
||
```bash
|
||
# 1. <20>餃<EFBFBD>ACR嚗<52><E59A97>甈⊿<E79488>閬<EFBFBD><E996AC>
|
||
docker login --username=gofeng117@163.com \
|
||
--password=fengzhibo117 \
|
||
crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com
|
||
|
||
# 2. <20>𤘪<EFBFBD>蝑?
|
||
docker tag backend-service:v1.4 \
|
||
crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/backend-service:v1.4
|
||
|
||
# 3. <20>券<EFBFBD><E588B8><EFBFBD><EFBFBD>?
|
||
docker push \
|
||
crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/backend-service:v1.4
|
||
|
||
# 蝑匧<E89D91><E58CA7>券<EFBFBD><E588B8><EFBFBD><EFBFBD>琜<EFBFBD>蝥?0<><30><EFBFBD>嚗屸<E59A97><E5B1B8>讐漲838MB嚗?
|
||
# <20>见<EFBFBD> "digest: sha256:..." 銵函內<E587BD>𣂼<EFBFBD>
|
||
```
|
||
|
||
**憸<>恣<EFBFBD>園𡢿**嚗?0<><30><EFBFBD>
|
||
|
||
---
|
||
|
||
### 甇仿炊3嚗𡁜銁SAE<41>湔鰵摨𠉛鍂嚗?<3F><><EFBFBD>嚗?
|
||
|
||
**<EFBFBD>孵<EFBFBD>1嚗阳eb<EFBFBD>批<EFBFBD><EFBFBD>堆<EFBFBD><EFBFBD>刻<EFBFBD>嚗?*
|
||
|
||
1. <20>餃<EFBFBD>SAE嚗冴ttps://sae.console.aliyun.com/
|
||
2. 餈𥕦<E9A488>摨𠉛鍂嚗䫤nodejs-backend-test`
|
||
3. <20>孵稬<E5ADB5>鞾<EFBFBD>蝵脣<E89DB5><E884A3>具<EFBFBD>烐<EFBFBD><E78390>?
|
||
4. <20>滨蔭<E6BBA8><E894AD>㺭嚗?
|
||
```yaml
|
||
<20>𨅯<EFBFBD><F0A885AF>啣<EFBFBD>: <20>㗇𥋘 backend-service
|
||
<20>𨅯<EFBFBD><F0A885AF><EFBFBD>𧋦: <20>㗇𥋘 v1.4
|
||
```
|
||
5. <20>孵稬<E5ADB5>鞟&霈扎<E99C88>?
|
||
6. 蝑匧<E89D91><E58CA7>函蔡摰峕<E691B0>嚗<EFBFBD>漲5-8<><38><EFBFBD>嚗?
|
||
|
||
**<2A>孵<EFBFBD>2嚗𡁜𦶢隞方<E99A9E>嚗<EFBFBD><E59A97>蝥改<E89DA5>**
|
||
|
||
```bash
|
||
# 雿輻鍂<E8BCBB>輸<EFBFBD>鈭飈LI
|
||
aliyun sae DeployApplication \
|
||
--AppId <摨𠉛鍂ID> \
|
||
--ImageUrl crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/backend-service:v1.4
|
||
```
|
||
|
||
**憸<>恣<EFBFBD>園𡢿**嚗?<3F><><EFBFBD><EFBFBD>滢<EFBFBD> + 5-8<><38><EFBFBD>蝑匧<E89D91><E58CA7>函蔡
|
||
|
||
---
|
||
|
||
### 甇仿炊4嚗𡁻<E59A97>霂<EFBFBD><E99C82>蝵莎<E89DB5>2<EFBFBD><32><EFBFBD>嚗?
|
||
|
||
```bash
|
||
# 1. <20>亦<EFBFBD>摨𠉛鍂<F0A0899B>嗆<EFBFBD>?
|
||
# SAE<41>批<EFBFBD><E689B9>?<3F>?摰硺<E691B0><E7A1BA>函蔡 <20>?<3F>嗆<EFBFBD><E59786><EFBFBD>銝?"Running"
|
||
|
||
# 2. <20>亦<EFBFBD><E4BAA6>亙<EFBFBD>嚗<EFBFBD>&霈文鍳<E69687>冽<EFBFBD><E586BD><EFBFBD><EFBFBD>
|
||
# SAE<41>批<EFBFBD><E689B9>?<3F>?<3F>亙<EFBFBD><E4BA99>亥砭 <20>?摨磰砲<E7A3B0>见<EFBFBD>嚗?
|
||
# "<22><> AI銝游<E98A9D><E6B8B8>𠉛弦撟喳蝱 - <20>𡒊垢<F0A1928A>滚𦛚<E6BB9A>典鍳<E585B8>冽<EFBFBD><E586BD><EFBFBD><EFBFBD>"
|
||
|
||
# 3. <20>亙熒璉<E78692><E79289>?
|
||
curl http://172.17.173.73:3001/health
|
||
# <20>㚚<EFBFBD>朞<EFBFBD><E69C9E>祉<EFBFBD>
|
||
curl http://8.140.53.236/api/v1/health
|
||
|
||
# 4. <20>蠘<EFBFBD>瘚贝<E7989A>
|
||
# 霈輸䔮<E8BCB8>滨垢嚗冴ttp://8.140.53.236/
|
||
# 瘚贝<E7989A><E8B49D>湔鰵<E6B994><E9B0B5><EFBFBD><EFBFBD>?
|
||
```
|
||
|
||
**憸<>恣<EFBFBD>園𡢿**嚗?<3F><><EFBFBD>
|
||
|
||
---
|
||
|
||
### 摰峕㟲瘚<E39FB2><E7989A><EFBFBD>園𡢿
|
||
|
||
| 甇仿炊 | <20>滢<EFBFBD> | <20>園𡢿 |
|
||
|------|------|------|
|
||
| 1 | <20>砍𧑐<E7A08D><F0A79190>遣 | 5<><35><EFBFBD> |
|
||
| 2 | <20>券<EFBFBD><E588B8><EFBFBD><EFBFBD>?| 10<31><30><EFBFBD> |
|
||
| 3 | SAE<41>函蔡 | 3<><33><EFBFBD><EFBFBD>滢<EFBFBD> + 5-8<><38><EFBFBD>蝑匧<E89D91> |
|
||
| 4 | 撉諹<E69289> | 2<><32><EFBFBD> |
|
||
| **<2A>餉恣** | - | **20-25<32><35><EFBFBD>** |
|
||
|
||
---
|
||
|
||
## <20>綫 銝剹<E98A9D><E589B9>凒<EFBFBD>啣<EFBFBD>蝡烤ginx嚗<78>活撣貊鍂嚗争<E59A97>潃鐥<E6BD83>潃?
|
||
|
||
### 甇仿炊1嚗𡁏𧋦<F0A1818F>唳<EFBFBD>撱綽<E692B1>10<31><30><EFBFBD>嚗?
|
||
|
||
```bash
|
||
# 餈𥕦<E9A488><F0A595A6>滨垢<E6BBA8>桀<EFBFBD>
|
||
cd D:\MyCursor\AIclinicalresearch\frontend-v2
|
||
|
||
# <20><>遣Docker<65>𨅯<EFBFBD>嚗<EFBFBD><E59A97><EFBFBD>砍噡<E7A08D>鍦<EFBFBD>嚗?
|
||
docker build -t ai-clinical_frontend-nginx:v1.1 .
|
||
|
||
# 瘜冽<E7989C>嚗鋽ockerfile隡朞䌊<E69C9E>冽<EFBFBD>銵?npm run build
|
||
```
|
||
|
||
**憸<>恣<EFBFBD>園𡢿**嚗?0<><30><EFBFBD>嚗<EFBFBD><E59A97><EFBFBD>俘eact<63><74>遣嚗?
|
||
|
||
---
|
||
|
||
### 甇仿炊2嚗𡁏綫<F0A1818F><E7B6AB><EFBFBD><EFBFBD>誩<EFBFBD>ACR嚗?<3F><><EFBFBD>嚗?
|
||
|
||
```bash
|
||
# 1. <20>𤘪<EFBFBD>蝑?
|
||
docker tag ai-clinical_frontend-nginx:v1.1 \
|
||
crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ai-clinical_frontend-nginx:v1.1
|
||
|
||
# 2. <20>券<EFBFBD><E588B8><EFBFBD><EFBFBD>?
|
||
docker push \
|
||
crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ai-clinical_frontend-nginx:v1.1
|
||
|
||
# 蝑匧<E89D91><E58CA7>券<EFBFBD><E588B8><EFBFBD><EFBFBD>琜<EFBFBD>蝥?<3F><><EFBFBD>嚗屸<E59A97><E5B1B8>讐漲50MB嚗?
|
||
```
|
||
|
||
**憸<>恣<EFBFBD>園𡢿**嚗?<3F><><EFBFBD>
|
||
|
||
---
|
||
|
||
### 甇仿炊3嚗𡁜銁SAE<41>湔鰵摨𠉛鍂嚗?<3F><><EFBFBD>嚗?
|
||
|
||
1. <20>餃<EFBFBD>SAE嚗冴ttps://sae.console.aliyun.com/
|
||
2. 餈𥕦<E9A488>摨𠉛鍂嚗䫤frontend-nginx-service`
|
||
3. <20>孵稬<E5ADB5>鞾<EFBFBD>蝵脣<E89DB5><E884A3>具<EFBFBD>?
|
||
4. <20>㗇𥋘<E39787>𨅯<EFBFBD><F0A885AF><EFBFBD>𧋦嚗䫤v1.1`
|
||
5. 蝖株恕<E6A0AA>函蔡
|
||
|
||
**憸<>恣<EFBFBD>園𡢿**嚗?<3F><><EFBFBD><EFBFBD>滢<EFBFBD> + 3-5<><35><EFBFBD>蝑匧<E89D91>
|
||
|
||
---
|
||
|
||
### 甇仿炊4嚗𡁻<E59A97>霂<EFBFBD><E99C82>蝵莎<E89DB5>1<EFBFBD><31><EFBFBD>嚗?
|
||
|
||
```bash
|
||
# 霈輸䔮<E8BCB8>滨垢
|
||
open http://8.140.53.236/
|
||
|
||
# <20>?
|
||
curl http://8.140.53.236/
|
||
```
|
||
|
||
**摰峕㟲<E5B395>園𡢿**嚗𡁶漲15-20<32><30><EFBFBD>
|
||
|
||
---
|
||
|
||
## <20><> <20>䜘<EFBFBD><E49C98>凒<EFBFBD>訐ython敺格<E695BA><E6A0BC>∴<EFBFBD>颲<EFBFBD><E9A2B2><EFBFBD>剁<EFBFBD>潃鐥<E6BD83>潃?
|
||
|
||
### 甇仿炊1嚗𡁏𧋦<F0A1818F>唳<EFBFBD>撱綽<E692B1>15<31><35><EFBFBD>嚗?
|
||
|
||
```bash
|
||
# 餈𥕦<E9A488>Python<6F>滚𦛚<E6BB9A>桀<EFBFBD>
|
||
cd D:\MyCursor\AIclinicalresearch\extraction_service
|
||
|
||
# <20><>遣Docker<65>𨅯<EFBFBD>
|
||
docker build -t python-extraction:v1.1 .
|
||
```
|
||
|
||
**憸<>恣<EFBFBD>園𡢿**嚗?5<><35><EFBFBD>嚗<EFBFBD><E59A97><EFBFBD>讛<EFBFBD>憭改<E686AD>
|
||
|
||
---
|
||
|
||
### 甇仿炊2嚗𡁏綫<F0A1818F><E7B6AB><EFBFBD><EFBFBD>𧶏<EFBFBD>10<31><30><EFBFBD>嚗?
|
||
|
||
```bash
|
||
# <20>𤘪<EFBFBD>蝑?
|
||
docker tag python-extraction:v1.1 \
|
||
crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/python-extraction:v1.1
|
||
|
||
# <20>券<EFBFBD>?
|
||
docker push \
|
||
crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/python-extraction:v1.1
|
||
```
|
||
|
||
**憸<>恣<EFBFBD>園𡢿**嚗?0<><30><EFBFBD>嚗<EFBFBD><E59A97><EFBFBD>讐漲1.1GB嚗?
|
||
|
||
---
|
||
|
||
### 甇仿炊3嚗锭AE<41>函蔡嚗?<3F><><EFBFBD>嚗?
|
||
|
||
1. 餈𥕦<E9A488>摨𠉛鍂嚗䫤python-extraction-test`
|
||
2. <20>函蔡<E587BD>啁<EFBFBD><E59581>穿<EFBFBD>`v1.1`
|
||
|
||
**摰峕㟲<E5B395>園𡢿**嚗𡁶漲30<33><30><EFBFBD>
|
||
|
||
---
|
||
|
||
## <20>辷<EFBFBD> 鈭𢛵<E988AD><F0A29BB5>耨<EFBFBD>寧㴓憓<E3B493><E68693><EFBFBD>𧶏<EFBFBD>擃㗛<E69383><E3979B>滢<EFBFBD>嚗争<E59A97>潃鐥<E6BD83>潃鐥<E6BD83>
|
||
|
||
### <20>喲睸閫<E79DB8><E996AB>
|
||
|
||
**<EFBFBD>𩤃<EFBFBD> <20>滩<EFBFBD>**嚗帋耨<E5B88B>寧㴓憓<E3B493><E68693><EFBFBD>𤩺𧒄嚗䔶蝙<E494B6>具<EFBFBD>鞾<EFBFBD><E99EBE>臬<EFBFBD><E887AC>具<EFBFBD>𡢅<EFBFBD>銝滩<E98A9D><E6BBA9>具<EFBFBD>鞾<EFBFBD>蝵脣<E89DB5><E884A3>具<EFBFBD>𡢅<EFBFBD>
|
||
|
||
| <20>滢<EFBFBD> | <20>券<EFBFBD>?| IP<49>臬炏<E887AC>?|
|
||
|------|------|---------|
|
||
| **<EFBFBD>滚鍳摨𠉛鍂** <20>?| 靽格㺿<E6A0BC>滨蔭 | <20>?銝滢<E98A9D><E6BBA2>?|
|
||
| **<EFBFBD>函蔡摨𠉛鍂** <20>?| <20>湔鰵<E6B994>𨅯<EFBFBD> | <20>?隡𡁜<E99AA1><F0A1819C>?|
|
||
|
||
---
|
||
|
||
### <20>滢<EFBFBD>甇仿炊嚗?<3F><><EFBFBD>嚗?
|
||
|
||
1. <20>餃<EFBFBD>SAE嚗冴ttps://sae.console.aliyun.com/
|
||
2. 餈𥕦<E9A488>撖孵<E69296>摨𠉛鍂嚗<E98D82><E59A97> `nodejs-backend-test`嚗?
|
||
3. <20>孵稬<E5ADB5>𣂼<EFBFBD><F0A382BC>券<EFBFBD>蝵柴<E89DB5>爗<EFBFBD><E78897>鞟㴓憓<E3B493><E68693><EFBFBD>譌<EFBFBD>?
|
||
4. <20>曉<EFBFBD>閬<EFBFBD>耨<EFBFBD>寧<EFBFBD><E5AFA7>㗛<EFBFBD>嚗𣬚<E59A97><F0A3AC9A>颯<EFBFBD>鞟<EFBFBD>颲㻫<E9A2B2>?
|
||
5. 靽格㺿<E6A0BC>㗛<EFBFBD><E3979B>?
|
||
6. <20>孵稬<E5ADB5>𣂷<EFBFBD>摮塩<E691AE>?
|
||
7. <20>孵稬<E5ADB5>鞾<EFBFBD><E99EBE>臬<EFBFBD><E887AC>具<EFBFBD>𡢅<EFBFBD><F0A1A285>𩤃<EFBFBD> 銝齿糓"<22>函蔡摨𠉛鍂"嚗<><E59A97>
|
||
8. 蝑匧<E89D91><E58CA7>滚鍳摰峕<E691B0>嚗<EFBFBD>漲2-3<><33><EFBFBD>嚗?
|
||
|
||
---
|
||
|
||
### 撣貊鍂<E8B28A>臬<EFBFBD><E887AC>㗛<EFBFBD><E3979B><EFBFBD>䰻
|
||
|
||
**Node.js<6A>𡒊垢<F0A1928A>喲睸<E596B2>㗛<EFBFBD>**嚗?
|
||
```bash
|
||
# Python<6F>滚𦛚<E6BB9A>啣<EFBFBD>嚗<EFBFBD><E59A97>儭?<3F>㗛<EFBFBD><E3979B>滚<EFBFBD>憿餌移蝖殷<E89D96>嚗?
|
||
EXTRACTION_SERVICE_URL=http://172.17.173.66:8000
|
||
|
||
# <20>唳旿摨栞<E691A8><E6A09E>?
|
||
DATABASE_URL=postgresql://airesearch:Xibahe%40fengzhibo117@pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432/ai_clinical_research
|
||
|
||
# LLM API撖<49>𤨎
|
||
DEEPSEEK_API_KEY=sk-...
|
||
DASHSCOPE_API_KEY=sk-...
|
||
```
|
||
|
||
**<EFBFBD>滨垢Nginx<EFBFBD>喲睸<EFBFBD>㗛<EFBFBD>**嚗?
|
||
```bash
|
||
# <20>𡒊垢<F0A1928A>滚𦛚<E6BB9A>啣<EFBFBD>
|
||
BACKEND_SERVICE_HOST=172.17.173.73
|
||
BACKEND_SERVICE_PORT=3001
|
||
```
|
||
|
||
**摰峕㟲<E5B395>臬<EFBFBD><E887AC>㗛<EFBFBD>皜<EFBFBD><E79A9C>**嚗?
|
||
- <20>亦<EFBFBD> `11-Node.js<6A>𡒊垢-SAE<41>函蔡<E587BD>滨蔭皜<E894AD><E79A9C>.md`
|
||
|
||
---
|
||
|
||
## <20><> <20>准<EFBFBD><E58786>䰻<EFBFBD>𧢲𠯫敹梹<E695B9><E6A2B9>亙虜餈鞟輕嚗争<E59A97>潃鐥<E6BD83>潃?
|
||
|
||
### SAE<41>批<EFBFBD><E689B9>唳䰻<E594B3>?
|
||
|
||
1. <20>餃<EFBFBD>SAE嚗冴ttps://sae.console.aliyun.com/
|
||
2. 餈𥕦<E9A488>撖孵<E69296>摨𠉛鍂
|
||
3. <20>孵稬<E5ADB5>鞉𠯫敹埈䰻霂U<E99C82>?
|
||
4. <20>㗇𥋘<E39787>園𡢿<E59C92><F0A1A2BF>凒
|
||
5. <20>亦<EFBFBD>摰墧𧒄<E5A2A7>亙<EFBFBD>
|
||
|
||
---
|
||
|
||
### 撣貊鍂<E8B28A>亙<EFBFBD><E4BA99>喲睸摮?
|
||
|
||
**甇<>虜<EFBFBD>臬𢆡**嚗?
|
||
```bash
|
||
# Node.js<6A>𡒊垢
|
||
"<22><> AI銝游<E98A9D><E6B8B8>𠉛弦撟喳蝱 - <20>𡒊垢<F0A1928A>滚𦛚<E6BB9A>典鍳<E585B8>冽<EFBFBD><E586BD><EFBFBD><EFBFBD>"
|
||
"Server listening at http://172.17.173.73:3001"
|
||
|
||
# Python<6F>滚𦛚
|
||
"Uvicorn running on http://0.0.0.0:8000"
|
||
"Application startup complete"
|
||
|
||
# <20>滨垢Nginx
|
||
"Starting Frontend Nginx Service"
|
||
"Backend Service: 172.17.173.73:3001"
|
||
```
|
||
|
||
**撣貉<E692A3><E8B289>躰秤**嚗?
|
||
```bash
|
||
# <20>臬<EFBFBD><E887AC>㗛<EFBFBD><E3979B>桅<EFBFBD>
|
||
"EXTRACTION_SERVICE_URL"
|
||
"connect ECONNREFUSED"
|
||
|
||
# <20>唳旿摨栞<E691A8><E6A09E>仿䔮憸?
|
||
"Can't reach database server"
|
||
"Connection timeout"
|
||
|
||
# <20>𨅯<EFBFBD><F0A885AF>桅<EFBFBD>
|
||
"ENOENT: no such file or directory"
|
||
"Error: unable to determine transport target"
|
||
```
|
||
|
||
---
|
||
|
||
## <20><> 銝<><E98A9D><EFBFBD><EFBFBD>皛𡁏<E79A9B>雿頣<E99BBF>蝝扳<E89D9D>交<EFBFBD><E4BAA4>蛛<EFBFBD>潃鐥<E6BD83>潃?
|
||
|
||
### 隞<>銋<EFBFBD>𧒄<EFBFBD>䠷<EFBFBD>閬<EFBFBD><E996AC>皛𡄯<E79A9B>
|
||
|
||
- <20>?<3F>啁<EFBFBD><E59581>祆<EFBFBD>銝仿<E98A9D>Bug
|
||
- <20>?<3F>蠘<EFBFBD>銝滨泵<E6BBA8><E6B3B5><EFBFBD><EFBFBD>?
|
||
- <20>?<3F>扯<EFBFBD>銝钅<E98A9D><E99285>擧遬
|
||
|
||
---
|
||
|
||
### <20>墧<EFBFBD>甇仿炊嚗?<3F><><EFBFBD>嚗?
|
||
|
||
1. <20>餃<EFBFBD>SAE嚗冴ttps://sae.console.aliyun.com/
|
||
2. 餈𥕦<E9A488>撖孵<E69296>摨𠉛鍂
|
||
3. <20>孵稬<E5ADB5>鞾<EFBFBD>蝵脣<E89DB5><E884A3>具<EFBFBD>?
|
||
4. **<EFBFBD>㗇𥋘<EFBFBD>抒<EFBFBD><EFBFBD>砍噡**嚗<><E59A97> v1.3嚗?
|
||
5. 蝖株恕<E6A0AA>函蔡
|
||
6. 蝑匧<E89D91><E58CA7>墧<EFBFBD>摰峕<E691B0>嚗<EFBFBD>漲5<E6BCB2><35><EFBFBD>嚗?
|
||
|
||
---
|
||
|
||
### 撉諹<E69289><E8ABB9>墧<EFBFBD>
|
||
|
||
```bash
|
||
# <20>亦<EFBFBD><E4BAA6>亙<EFBFBD>嚗𣬚&霈斤<E99C88><E696A4>?
|
||
# <20>𤥁挪<F0A4A581>桀<EFBFBD><E6A180>剁<EFBFBD>瘚贝<E7989A><E8B49D>蠘<EFBFBD>
|
||
```
|
||
|
||
---
|
||
|
||
## <20>㴓 <20>怒<EFBFBD><E68092><EFBFBD><EFBFBD>格凒<E6A0BC>啗<EFBFBD><E59597>穿<EFBFBD>擃条漣嚗?
|
||
|
||
### 銝摸ode.js<6A>𡒊垢<F0A1928A>𥕦遣<F0A595A6>湔鰵<E6B994>𡁏𧋦
|
||
|
||
**<EFBFBD>𥕦遣<EFBFBD><EFBFBD>辣**嚗䫤backend/update-and-deploy.ps1`
|
||
|
||
```powershell
|
||
# Node.js<6A>𡒊垢銝<E59EA2><E98A9D>格凒<E6A0BC>啗<EFBFBD><E59597>?
|
||
# 雿輻鍂<E8BCBB>寞<EFBFBD>: .\update-and-deploy.ps1 v1.5
|
||
|
||
param(
|
||
[Parameter(Mandatory=$true)]
|
||
[string]$Version
|
||
)
|
||
|
||
Write-Host "========================================" -ForegroundColor Green
|
||
Write-Host "撘<>憪𧢲凒<F0A7A2B2>衹ode.js<6A>𡒊垢<F0A1928A>啁<EFBFBD><E59581>? $Version" -ForegroundColor Green
|
||
Write-Host "========================================" -ForegroundColor Green
|
||
|
||
# 1. 蝻𤥁<E89DBB>TypeScript
|
||
Write-Host "`n[1/4] 蝻𤥁<E89DBB>TypeScript..." -ForegroundColor Cyan
|
||
npm run build
|
||
if ($LASTEXITCODE -ne 0) {
|
||
Write-Host "<22>?蝻𤥁<E89DBB>憭梯揖嚗? -ForegroundColor Red
|
||
exit 1
|
||
}
|
||
Write-Host "<22>?蝻𤥁<E89DBB><F0A4A581>𣂼<EFBFBD>嚗? -ForegroundColor Green
|
||
|
||
# 2. <20><>遣Docker<65>𨅯<EFBFBD>
|
||
Write-Host "`n[2/4] <20><>遣Docker<65>𨅯<EFBFBD>..." -ForegroundColor Cyan
|
||
docker build -t backend-service:$Version .
|
||
if ($LASTEXITCODE -ne 0) {
|
||
Write-Host "<22>?<3F><>遣憭梯揖嚗? -ForegroundColor Red
|
||
exit 1
|
||
}
|
||
Write-Host "<22>?<3F>𨅯<EFBFBD><F0A885AF><EFBFBD>遣<EFBFBD>𣂼<EFBFBD>嚗? -ForegroundColor Green
|
||
|
||
# 3. <20>𤘪<EFBFBD>蝑?
|
||
Write-Host "`n[3/4] <20>𤘪<EFBFBD>蝑?.." -ForegroundColor Cyan
|
||
$ImageUrl = "crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/backend-service:$Version"
|
||
docker tag backend-service:$Version $ImageUrl
|
||
Write-Host "<22>?<3F><>倌撌脫<E6928C>嚗? -ForegroundColor Green
|
||
|
||
# 4. <20>券<EFBFBD><E588B8><EFBFBD>ACR
|
||
Write-Host "`n[4/4] <20>券<EFBFBD><E588B8><EFBFBD>ACR..." -ForegroundColor Cyan
|
||
Write-Host "<22>券<EFBFBD><E588B8>𧑐<EFBFBD><F0A79190>: $ImageUrl" -ForegroundColor Yellow
|
||
docker push $ImageUrl
|
||
if ($LASTEXITCODE -ne 0) {
|
||
Write-Host "<22>?<3F>券<EFBFBD><E588B8>仃韐伐<E99F90>" -ForegroundColor Red
|
||
exit 1
|
||
}
|
||
|
||
Write-Host "`n========================================" -ForegroundColor Green
|
||
Write-Host "<22>?<3F>𨅯<EFBFBD>撌脫綫<E884AB><E7B6AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" -ForegroundColor Green
|
||
Write-Host "========================================" -ForegroundColor Green
|
||
Write-Host "`n銝衤<E98A9D>甇交<E79487>雿頣<E99BBF>" -ForegroundColor Yellow
|
||
Write-Host "1. <20>餃<EFBFBD>SAE<41>批<EFBFBD><E689B9>? https://sae.console.aliyun.com/" -ForegroundColor Yellow
|
||
Write-Host "2. 餈𥕦<E9A488>摨𠉛鍂: nodejs-backend-test" -ForegroundColor Yellow
|
||
Write-Host "3. <20>孵稬<E5ADB5>鞾<EFBFBD>蝵脣<E89DB5><E884A3>具<EFBFBD>? -ForegroundColor Yellow
|
||
Write-Host "4. <20>㗇𥋘<E39787>𨅯<EFBFBD><F0A885AF><EFBFBD>𧋦: $Version" -ForegroundColor Yellow
|
||
Write-Host "5. 蝖株恕<E6A0AA>函蔡" -ForegroundColor Yellow
|
||
Write-Host "`n<EFBFBD>𨅯<EFBFBD><EFBFBD>啣<EFBFBD>嚗ĀPC嚗?" -ForegroundColor Cyan
|
||
Write-Host "crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/backend-service:$Version" -ForegroundColor Cyan
|
||
```
|
||
|
||
**雿輻鍂<E8BCBB>寞<EFBFBD>**嚗?
|
||
```powershell
|
||
cd D:\MyCursor\AIclinicalresearch\backend
|
||
.\update-and-deploy.ps1 v1.5
|
||
```
|
||
|
||
---
|
||
|
||
### 銝箏<E98A9D>蝡臬<E89DA1>撱箸凒<E7AEB8>啗<EFBFBD><E59597>?
|
||
|
||
**<EFBFBD>𥕦遣<EFBFBD><EFBFBD>辣**嚗䫤frontend-v2/update-and-deploy.ps1`
|
||
|
||
```powershell
|
||
# <20>滨垢Nginx銝<78><E98A9D>格凒<E6A0BC>啗<EFBFBD><E59597>?
|
||
param(
|
||
[Parameter(Mandatory=$true)]
|
||
[string]$Version
|
||
)
|
||
|
||
Write-Host "撘<>憪𧢲凒<F0A7A2B2>啣<EFBFBD>蝡烤ginx<6E>啁<EFBFBD><E59581>? $Version" -ForegroundColor Green
|
||
|
||
# 1. <20><>遣<EFBFBD>𨅯<EFBFBD>
|
||
docker build -t ai-clinical_frontend-nginx:$Version .
|
||
|
||
# 2. <20>𤘪<EFBFBD>蝑曉僎<E69B89>券<EFBFBD>?
|
||
$ImageUrl = "crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ai-clinical_frontend-nginx:$Version"
|
||
docker tag ai-clinical_frontend-nginx:$Version $ImageUrl
|
||
docker push $ImageUrl
|
||
|
||
Write-Host "<22>?摰峕<E691B0>嚗<EFBFBD>窈<EFBFBD>沒AE<41>批<EFBFBD><E689B9>圈<EFBFBD>蝵脩<E89DB5><E884A9>? $Version" -ForegroundColor Green
|
||
```
|
||
|
||
---
|
||
|
||
## <20><> 銋腈<E98A8B><E88588>虜<EFBFBD>冽<EFBFBD>雿𨀣𧒄<F0A880A3>港摯蝞?
|
||
|
||
| <20>滢<EFBFBD> | <20>滢<EFBFBD><E6BBA2>園𡢿 | 蝑匧<E89D91><E58CA7>園𡢿 | <20>餉恣 |
|
||
|------|---------|---------|------|
|
||
| <20>湔鰵Node.js<6A>𡒊垢 | 5<><35><EFBFBD> | 15-20<32><30><EFBFBD> | 20-25<32><35><EFBFBD> |
|
||
| <20>湔鰵<E6B994>滨垢Nginx | 3<><33><EFBFBD> | 12-18<31><38><EFBFBD> | 15-20<32><30><EFBFBD> |
|
||
| <20>湔鰵Python<6F>滚𦛚 | 3<><33><EFBFBD> | 25-30<33><30><EFBFBD> | 30<33><30><EFBFBD> |
|
||
| 靽格㺿<E6A0BC>臬<EFBFBD><E887AC>㗛<EFBFBD> | 2<><32><EFBFBD> | 2-3<><33><EFBFBD> | 5<><35><EFBFBD> |
|
||
| <20>亦<EFBFBD><E4BAA6>亙<EFBFBD> | 1<><31><EFBFBD> | 0 | 1<><31><EFBFBD> |
|
||
| <20>墧<EFBFBD><E5A2A7><EFBFBD>𧋦 | 2<><32><EFBFBD> | 5<><35><EFBFBD> | 7<><37><EFBFBD> |
|
||
|
||
---
|
||
|
||
## <20>𩤃<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>格釣<E6A0BC>譍<EFBFBD>憿?
|
||
|
||
### 1. <20>臬<EFBFBD><E887AC>㗛<EFBFBD><E3979B>滚<EFBFBD>憿餌移蝖?
|
||
|
||
```bash
|
||
# <20>?<3F>躰秤
|
||
PYTHON_SERVICE_URL=http://172.17.173.66:8000
|
||
|
||
# <20>?甇<>&
|
||
EXTRACTION_SERVICE_URL=http://172.17.173.66:8000
|
||
```
|
||
|
||
**<2A>躰悌**嚗𡁶㴓憓<E3B493><E68693><EFBFBD>誩<EFBFBD>敹<EFBFBD>◆銝𦒘誨<F0A69298><E8AAA8><EFBFBD><EFBFBD>其<EFBFBD><E585B6>湛<EFBFBD>
|
||
|
||
---
|
||
|
||
### 2. <20>滚鍳 vs <20>函蔡
|
||
|
||
```
|
||
靽格㺿<EFBFBD>滨蔭 <20>?<3F>滚鍳摨𠉛鍂嚗㇆P銝滚<E98A9D>嚗争<E59A97>
|
||
<EFBFBD>湔鰵隞<EFBFBD><EFBFBD> <20>?<3F>函蔡摨𠉛鍂嚗㇆P<E38786>航<EFBFBD><E888AA>矋<EFBFBD><E79F8B>𩤃<EFBFBD>
|
||
```
|
||
|
||
**撱箄悅**嚗𡁜偷<F0A1819C>譍蝙<E8AD8D>冽<EFBFBD><E586BD>∪<EFBFBD><E288AA>唬誨<E594AC>輻′蝻𣇉<E89DBB>IP
|
||
|
||
---
|
||
|
||
### 3. 雿輻鍂VPC<50>啣<EFBFBD><E595A3>匧<EFBFBD><E58CA7>𨅯<EFBFBD>
|
||
|
||
```bash
|
||
# SAE<41>函蔡<E587BD>園<EFBFBD>㗇𥋘VPC<50>啣<EFBFBD>嚗<EFBFBD><E59A97>瘚<EFBFBD><E7989A>韐對<E99F90>
|
||
crpi-xxx-vpc.cn-beijing.personal.cr.aliyuncs.com/...
|
||
|
||
# <20>砍𧑐<E7A08D>券<EFBFBD><E588B8>𧒄雿輻鍂<E8BCBB>祉<EFBFBD><E7A589>啣<EFBFBD>
|
||
crpi-xxx.cn-beijing.personal.cr.aliyuncs.com/...
|
||
```
|
||
|
||
---
|
||
|
||
### 4. <20><>𧋦<EFBFBD>瑞恣<E7919E>?
|
||
|
||
**撱箄悅閫<E68285><E996AB>**嚗?
|
||
```bash
|
||
v1.0 - 擐𡝗活<F0A19D97>函蔡
|
||
v1.1 - 撠誩<E692A0><E8AAA9>賣凒<E8B3A3>?
|
||
v1.2 - 撠誩<E692A0><E8AAA9>賣凒<E8B3A3>?
|
||
v2.0 - <20>滚之<E6BB9A><E4B98B>𧋦<EFBFBD><F0A78BA6>漣
|
||
```
|
||
|
||
**霈啣<E99C88><E595A3><EFBFBD>𧋦**嚗𡁜銁 `00-<2D>函蔡餈𥕦漲<F0A595A6>餉<EFBFBD>.md` 銝剜凒<E5899C>啁<EFBFBD><E59581>砍噡
|
||
|
||
---
|
||
|
||
## <20><> <20><><EFBFBD><EFBFBD><EFBFBD>虜閫<E8999C>䔮憸?
|
||
|
||
### Q1嚗𡁏綫<F0A1818F><E7B6AB><EFBFBD><EFBFBD>誩仃韐伐<E99F90>
|
||
|
||
**<2A>啗情**嚗䫤denied: requested access to the resource is denied`
|
||
|
||
**閫<><E996AB>**嚗?
|
||
```bash
|
||
# <20>齿鰵<E9BDBF>餃<EFBFBD>ACR
|
||
docker login --username=gofeng117@163.com \
|
||
--password=fengzhibo117 \
|
||
crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com
|
||
```
|
||
|
||
---
|
||
|
||
### Q2嚗锭AE<41>函蔡憭梯揖嚗?
|
||
|
||
**甇仿炊**嚗?
|
||
1. <20>亦<EFBFBD>摰硺<E691B0><E7A1BA>亙<EFBFBD>嚗峕𪄳<E5B395>啣<EFBFBD>雿㯄<E99BBF>霂?
|
||
2. <20><><EFBFBD>?`15-Node.js<6A>𡒊垢-<2D>函蔡<E587BD>𣂼<EFBFBD><F0A382BC>餌<EFBFBD>.md`
|
||
3. 璉<><E79289>亦㴓憓<E3B493><E68693><EFBFBD>誯<EFBFBD>蝵?
|
||
4. 撉諹<E69289><E8ABB9>𨅯<EFBFBD><F0A885AF>臬炏<E887AC>券<EFBFBD><E588B8><EFBFBD><EFBFBD>?
|
||
|
||
---
|
||
|
||
### Q3嚗𡁜<E59A97><F0A1819C>賣凒<E8B3A3>啣<EFBFBD>銝滨<E98A9D><E6BBA8><EFBFBD><EFBFBD>
|
||
|
||
**<EFBFBD>航<EFBFBD><EFBFBD>笔<EFBFBD>**嚗?
|
||
- 瘚讛<E7989A><E8AE9B>函<EFBFBD>摮矋<E691AE>Ctrl+F5撘箏<E69298><E7AE8F>瑟鰵嚗?
|
||
- SAE<41>函蔡<E587BD>芸<EFBFBD><E88AB8>?
|
||
- <20><>𧋦<EFBFBD>琿<EFBFBD>㗇𥋘<E39787>躰秤
|
||
|
||
---
|
||
|
||
### Q4嚗䥑P<E4A591>啣<EFBFBD><E595A3>䀹凒鈭<E58792><E988AD>𦒘<EFBFBD><F0A69298>痹<EFBFBD>
|
||
|
||
**甇仿炊**嚗?
|
||
1. 霈啣<E99C88><E595A3>啁<EFBFBD>IP<49>啣<EFBFBD>
|
||
2. <20>湔鰵靘肽<E99D98>霂付P<E4BB98><50><EFBFBD><EFBFBD>∠<EFBFBD><E288A0>臬<EFBFBD><E887AC>㗛<EFBFBD>
|
||
3. <20>滚鍳<E6BB9A>詨<EFBFBD><E8A9A8>滚𦛚
|
||
4. <20>湔鰵<E6B994><E9B0B5>﹝ `00-<2D>函蔡餈𥕦漲<F0A595A6>餉<EFBFBD>.md`
|
||
|
||
---
|
||
|
||
## <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>閬<EFBFBD>葬<EFBFBD>抬<EFBFBD>
|
||
|
||
### 霂衣<E99C82><E8A1A3><EFBFBD>﹝<EFBFBD><EFB99D><EFBFBD>?
|
||
|
||
- **摰峕㟲<E5B395>函蔡**嚗䫤17-摰峕㟲<E5B395>函蔡摰墧<E691B0><E5A2A7>见<EFBFBD>-2025<32>?md`
|
||
- **韏<><E99F8F><EFBFBD>亥砭**嚗䫤00-<2D>函蔡餈𥕦漲<F0A595A6>餉<EFBFBD>.md`
|
||
- **<2A>桅<EFBFBD><E6A185>埝䰻**嚗䫤15-Node.js<6A>𡒊垢-<2D>函蔡<E587BD>𣂼<EFBFBD><F0A382BC>餌<EFBFBD>.md`
|
||
- **<2A><>﹝撖潸⏛**嚗䫤README.md` <20>?`18-<2D>函蔡<E587BD><E894A1>﹝雿輻鍂<E8BCBB><E98D82><EFBFBD>.md`
|
||
|
||
---
|
||
|
||
## <20>㴓 <20>餌<EFBFBD>
|
||
|
||
### <20>亙虜<E4BA99><E8999C>撣貊鍂<E8B28A>?銝芣<E98A9D>雿?
|
||
|
||
1. **<EFBFBD>湔鰵Node.js<6A>𡒊垢**嚗?0-25<32><35><EFBFBD>嚗?
|
||
2. **靽格㺿<E6A0BC>臬<EFBFBD><E887AC>㗛<EFBFBD>**嚗?<3F><><EFBFBD>嚗?
|
||
3. **<EFBFBD>亦<EFBFBD><EFBFBD>亙<EFBFBD>**嚗?<3F><><EFBFBD>嚗?
|
||
|
||
### 霈唬<E99C88>3銝芸<E98A9D><E88AB8>桃<EFBFBD>
|
||
|
||
1. <20>?**<2A><>𧋦<EFBFBD>琿<EFBFBD>鍦<EFBFBD>**嚗鯝1.3 <20>?v1.4 <20>?v1.5
|
||
2. <20>?**靽格㺿<E6A0BC>滨蔭<E6BBA8>券<EFBFBD><E588B8>荔<EFBFBD><E88D94>湔鰵隞<E9B0B5><E99A9E><EFBFBD>券<EFBFBD>蝵?*
|
||
3. <20>?**雿輻鍂VPC<50>啣<EFBFBD><E595A3>匧<EFBFBD><E58CA7>𨅯<EFBFBD>嚗<EFBFBD><E59A97><EFBFBD>梧<EFBFBD>**
|
||
|
||
### 銝<><E98A9D>亥<EFBFBD><E4BAA5>餌<EFBFBD>
|
||
|
||
**蝻𤥁<E89DBB> <20>?<3F><>遣 <20>?<3F>券<EFBFBD>?<3F>?<3F>函蔡 <20>?撉諹<E69289>嚗?0<><30><EFBFBD><EFBFBD>𧼮<EFBFBD>嚗<EFBFBD><E59A97>**
|
||
|
||
---
|
||
|
||
> **<2A><><EFBFBD>擧凒<E693A7>?*嚗?025-12-25
|
||
> **蝏湔擪鈭箏<E988AD>**嚗𡁜<E59A97><F0A1819C>穃𣪧<E7A983>?
|
||
> **雿輻鍂<E8BCBB>漤<EFBFBD>**嚗朞窈<E69C9E>𦠜𧒄<F0A6A09C>湔鰵<E6B994>祆<EFBFBD>獢?
|
||
|
||
**蟡脲<E89FA1><E884B2>湔鰵憿箏⏚嚗?* <20><>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|