Files
AIclinicalresearch/docs/05-部署文档/16-前端Nginx-部署成功总结.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

500 lines
10 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.
# 馃帀 鍓嶇<E98D93>Nginx - 閮ㄧ讲鎴愬姛鎬荤粨
> **閮ㄧ讲瀹屾垚鏃堕棿**锛?025-12-25 19:55
> **闀滃儚鐗堟湰**锛歷1.0
> **鍐呯綉鍦板潃**锛歚http://172.17.173.72:80`
> **閮ㄧ讲鐘舵€?*锛氣渽 杩愯<E69DA9>涓?
> **鍋ュ悍妫€鏌?*锛氣渽 閫氳繃锛圚TTP 200锛?
---
## 馃搳 涓€銆侀儴缃蹭俊鎭<E4BF8A><E98EAD>瑙?
### 搴旂敤閰嶇疆
```yaml
搴旂敤鍚嶇О: frontend-nginx-service
鍛藉悕绌洪棿: cn-beijing:test-airesearch
鍦板煙: 鍗庡寳2锛堝寳浜<EFBFBD>
閮ㄧ讲鏂瑰紡: 瀹瑰櫒闀滃儚
```
### 瀹炰緥瑙勬牸
```yaml
CPU: 0.5鏍?
鍐呭瓨: 1GB
瀹炰緥鏁? 1涓?
瑙勬牸閫夋嫨鐞嗙敱:
- 鍓嶇<EFBFBD><EFBFBD>彁渚涢潤鎬佽祫婧愬拰浠悊杞<EFBFBD>
- 璧勬簮娑堣€楁瀬浣?
- 0.5鏍稿畬鍏ㄨ冻澶?
- 瀵规瘮锛氬悗绔<EFBFBD>渶瑕?鏍?GB锛孭ython闇€瑕?鏍?GB
```
### 闀滃儚淇℃伅
```yaml
闀滃儚浠撳簱: ai-clinical_frontend-nginx
闀滃儚鐗堟湰: v1.0
闀滃儚澶у皬: 91.9 MB
闀滃儚鍦板潃: crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ai-clinical_frontend-nginx:v1.0
鏋勫缓鏃堕棿: 2025-12-23
鍩虹<EFBFBD>闀滃儚: nginx:alpine
```
### 缃戠粶閰嶇疆
```yaml
鍐呯綉鍦板潃: http://172.17.173.72:80
VPC: vpc-2ze055cptkew9c38w4r06
瀹夊叏缁? sg-2zedk6fi8sgmmcwdu7tu
<EFBFBD>綉璁块棶: 鏃狅紙浠呭唴缃戯級
```
---
## 馃殌 浜屻€侀儴缃茶繃绋?
### 閮ㄧ讲鏃堕棿绾?
| 鏃堕棿 | 鎿嶄綔 | 缁撴灉 |
|------|------|------|
| 11:50 | 鍒涘缓SAE搴旂敤 | 鉁?|
| 11:52 | 閰嶇疆瀹瑰櫒闀滃儚鍜屽疄渚嬭<E6B89A>鏍?| 鉁?|
| 11:53 | 閰嶇疆鐜<E79686><E9909C>鍙橀噺锛堝悗绔<E68297>湴鍧€锛?| 鉁?|
| 11:54 | 閰嶇疆鍋ュ悍妫€鏌?| 鉁?|
| 11:54 | 閮ㄧ讲搴旂敤 | 鉁?|
| 11:55 | 瀹瑰櫒鍚<E6AB92>姩鎴愬姛 | 鉁?|
| 11:55 | 鍋ュ悍妫€鏌ラ€氳繃 | 鉁?|
| 12:00 | 瀹屾暣閾捐矾娴嬭瘯閫氳繃 | 鉁?|
**鎬昏€楁椂**锛氱害10鍒嗛挓锛堜竴娆℃垚鍔燂紝闆堕棶棰橈級
---
## 鉁?涓夈€侀儴缃查獙璇?
### 1. 鍚<>姩鏃ュ織楠岃瘉
```bash
============================================
Starting Frontend Nginx Service
Backend Service: 172.17.173.71:3001
Container Timezone: Asia/Shanghai
Current Time: Thu Dec 25 11:54:56 CST 2025
============================================
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
```
**楠岃瘉缁撴灉**锛氣渽 鎵€鏈夐厤缃<E58EA4><E7BC83><EFBFBD>紝鍚<E7B49D>姩鎴愬姛
### 2. 闈欐€佽祫婧愭祴璇?
**娴嬭瘯鍛戒护**锛?
```bash
curl -I http://172.17.173.72/
```
**娴嬭瘯缁撴灉**锛?
```http
HTTP/1.1 200 OK
Server: nginx
Content-Type: text/html; charset=utf-8
Content-Length: 458
Cache-Control: no-cache, no-store, must-revalidate
```
**楠岃瘉缁撴灉**锛氣渽 闈欐€佽祫婧愭<E5A9A7>甯告彁渚?
### 3. React搴旂敤楠岃瘉
**娴嬭瘯鍛戒护**锛?
```bash
curl http://172.17.173.72/ | head -20
```
**娴嬭瘯缁撴灉**锛?
```html
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>frontend-v2</title>
<script type="module" crossorigin src="/assets/index-DAkaorvh.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-BLOlkMiR.css">
</head>
<body>
<div id="root"></div>
</body>
</html>
```
**楠岃瘉缁撴灉**锛氣渽 React搴旂敤HTML姝父锛孷ite鏋勫缓浜х墿瀹屾暣
### 4. 鍓嶇<E98D93>鈫掑悗绔<E68297>唬鐞嗘祴璇曪紙鍏抽敭锛侊級
**娴嬭瘯鍛戒护**锛?
```bash
curl http://172.17.173.72/health
```
**娴嬭瘯缁撴灉**锛?
```
healthy
```
**楠岃瘉缁撴灉**锛氣渽 鍓嶇<E98D93>鍒板悗绔<E68297>殑浠悊瀹屽叏姝父宸ヤ綔锛?
### 5. 鍋ュ悍妫€鏌ユ棩蹇?
```bash
127.0.0.1 - - [25/Dec/2025:11:55:01 +0800] "GET / HTTP/1.1" 200 304
127.0.0.1 - - [25/Dec/2025:11:55:06 +0800] "GET / HTTP/1.1" 200 304
127.0.0.1 - - [25/Dec/2025:11:55:11 +0800] "GET / HTTP/1.1" 200 304
```
**楠岃瘉缁撴灉**锛氣渽 SAE鍋ュ悍妫€鏌ユ<E98F8C>甯革紝姣?绉掓<E7BB89>鏌ヤ竴娆?
---
## 馃幆 鍥涖€佸叧閿<E58FA7>厤缃?
### 鐜<><E9909C>鍙橀噺閰嶇疆
```bash
# 鍚庣<E98D9A>鏈嶅姟IP锛堝繀闇€锛?
BACKEND_SERVICE_HOST=172.17.173.71
# 鍚庣<E98D9A>鏈嶅姟绔<E5A79F>彛锛堝彲閫夛紝榛樿<E6A69B>3001锛?
BACKEND_SERVICE_PORT=3001
```
**璇存槑**锛?
- 杩欎袱涓<E8A2B1>幆澧冨彉閲忓湪瀹瑰櫒鍚<E6AB92>姩鏃堕€氳繃 `envsubst` 娉ㄥ叆鍒癗ginx閰嶇疆
- 涓嶉渶瑕侀噸鏂版瀯寤洪暅鍍忥紝鍙<E7B49D>渶閰嶇疆鐜<E79686><E9909C>鍙橀噺
- 绗﹀悎浜戝師鐢?2-Factor App鍘熷垯
### 鍋ュ悍妫€鏌ラ厤缃?
```yaml
Liveness瀛樻椿妫€鏌?
鏂瑰紡: HTTP GET
<EFBFBD>: /
<EFBFBD>: 80
鍒濆<EFBFBD>寤惰繜: 10绉?
妫€鏌ラ棿闅? 10绉?
瓒呮椂鏃堕棿: 3绉?
澶辫触闃堝€? 3娆?
Readiness灏辩华妫€鏌?
鏂瑰紡: HTTP GET
<EFBFBD>: /
<EFBFBD>: 80
鍒濆<EFBFBD>寤惰繜: 5绉?
妫€鏌ラ棿闅? 5绉?
瓒呮椂鏃堕棿: 3绉?
澶辫触闃堝€? 2娆?
```
### Nginx浠悊瑙勫垯
```nginx
# 鍚庣<E98D9A>鏈嶅姟涓婃父閰嶇疆
upstream backend {
server 172.17.173.71:3001 fail_timeout=30s max_fails=3;
keepalive 32;
}
# API浠悊瑙勫垯
location /api/ {
proxy_pass http://backend;
}
location /health {
proxy_pass http://backend;
}
location /test/ {
proxy_pass http://backend;
}
# SPA fallback
location / {
try_files $uri $uri/ /index.html;
}
```
---
## 馃搳 浜斻€侀儴缃插<E7BC83>姣?
### 涓嶯ode.js鍚庣<E98D9A>閮ㄧ讲瀵规瘮
| 瀵规瘮椤?| Node.js鍚庣<E98D9A> | 鍓嶇<E98D93>Nginx |
|--------|------------|-----------|
| **澶嶆潅搴?* | 猸愨瓙猸愨瓙 | 猸?|
| **閮ㄧ讲鏃堕棿** | 绾?灏忔椂锛堥亣鍒?涓<>棶棰橈級 | 绾?0鍒嗛挓锛堜竴娆℃垚鍔燂級 |
| **瀹炰緥瑙勬牸** | 1鏍?GB | 0.5鏍?GB |
| **鐜<><E9909C>鍙橀噺鏁?* | 15+ | 2 |
| **鍚<>姩鏃堕棿** | 绾?0绉?| 绾?绉?|
| **閬囧埌鐨勯棶棰?* | 4涓<34>紙bash/config/pino/require锛?| 0涓?|
| **闀滃儚澶у皬** | 838MB | 91.9MB |
| **鍋ュ悍妫€鏌ヨ矾寰?* | `/health` | `/` |
**缁撹<E7BC81>**锛氬墠绔疦ginx閮ㄧ讲闈炲父绠€鍗曪紝涓€娆℃垚鍔燂紝闆堕棶棰橈紒
---
## 馃彈锔?鍏<>€佸畬鏁存灦鏋?
### 褰撳墠閮ㄧ讲鏋舵瀯
```
鐢ㄦ埛璇锋眰锛堟湭鏉ワ級
鈫?
[鍏<>綉SLB] 鈫?寰呴厤缃?
鈫?
[鍓嶇<E98D93>Nginx] http://172.17.173.72:80 鉁?宸查儴缃?
鈹溾攢鈹€ 闈欐€佽祫婧愶細/, /assets/*, /vite.svg
鈹斺攢鈹€ API浠悊锛?api/*, /health, /test/*
鈫?
[Node.js鍚庣<E98D9A>] http://172.17.173.71:3001 鉁?宸查儴缃?
鈹溾攢鈹€ 杩炴帴鏁版嵁搴?
鈹溾攢鈹€ 璋冪敤Python寰<6E>湇鍔?
鈹斺攢鈹€ 涓氬姟閫昏緫澶勭悊
鈫? 鈫?
[PostgreSQL RDS] [Python寰<6E>湇鍔<E6B987>
鉁?宸查儴缃? http://172.17.173.66:8000
鉁?宸查儴缃?
```
### 鏈嶅姟娓呭崟
| 鏈嶅姟 | 鍐呯綉鍦板潃 | 瑙勬牸 | 鐘舵€?| 閮ㄧ讲鏃堕棿 |
|------|---------|------|------|---------|
| 鍓嶇<E98D93>Nginx | http://172.17.173.72:80 | 0.5鏍?GB | 鉁?杩愯<E69DA9>涓?| 2025-12-25 |
| Node.js鍚庣<E98D9A> | http://172.17.173.71:3001 | 1鏍?GB | 鉁?杩愯<E69DA9>涓?| 2025-12-25 |
| Python寰<6E>湇鍔?| http://172.17.173.66:8000 | 1鏍?GB | 鉁?杩愯<E69DA9>涓?| 2025-12-24 |
| PostgreSQL | pgm-xxx:5432 | 2鏍?GB | 鉁?杩愯<E69DA9>涓?| 2025-12-24 |
---
## 馃幆 涓冦€佷笅涓€姝ュ伐浣?
### 楂樹紭鍏堢骇 馃敶
- [ ] **閰嶇疆鍏<E79686>綉SLB**锛氱粦瀹氬墠绔<E5A2A0>湇鍔★紝鎻愪緵鍏<E7B7B5>綉璁块棶鍏ュ彛
- [ ] **閰嶇疆鍩熷悕**锛氱敵璇峰煙鍚嶅苟缁戝畾鍒癝LB
- [ ] **SSL璇佷功**锛氶厤缃瓾TTPS锛堥樋閲屼簯鍏嶈垂SSL鎴朙et's Encrypt锛?
- [ ] **鍓嶇<E98D93>瀹炰緥鎵╁<E98EB5>**锛氫粠1涓<31>墿瀹瑰埌2涓<32>紝瀹炵幇楂樺彲鐢?
### 涓<>紭鍏堢骇 馃煛
- [ ] **鐩戞帶鍛婅<E98D9B>**锛氶厤缃甋AE搴旂敤鐩戞帶鍜屽憡璀﹁<E79280>鍒?
- [ ] **鏃ュ織鍒嗘瀽**锛氶厤缃<E58EA4>棩蹇楁湇鍔<E6B987>LS锛岄泦涓<E6B3A6><E6B693>鐞嗘棩蹇?
- [ ] **CDN鍔犻€?*锛氶厤缃<E58EA4>樋閲屼簯CDN锛屽姞閫熼潤鎬佽祫婧愯<E5A9A7>闂?
- [ ] **瀹夊叏鍔犲浐**锛氶厤缃甒AF闃茬伀澧欙紝闃叉姢甯歌<E794AF>鏀诲嚮
### 浣庝紭鍏堢骇 馃煝
- [ ] **鎬ц兘浼樺寲**锛氬惎鐢℉TTP/2锛屼紭鍖朜ginx閰嶇疆
- [ ] **鍘嬪姏娴嬭瘯**锛氳繘琛屽苟鍙戝帇鍔涙祴璇?
- [ ] **澶囦唤绛栫暐**锛氶厤缃<E58EA4>嚜鍔ㄥ<E98D94>浠藉拰鎭㈠<E98EAD>娴佺▼
---
## 馃搱 鍏<>€佽祫婧愪娇鐢ㄦ儏鍐?
### 瀹炰緥璧勬簮
```yaml
褰撳墠閰嶇疆:
CPU: 0.5鏍?
鍐呭瓨: 1GB
瀹炰緥鏁? 1涓?
瀹為檯浣跨敤锛堥<EFBFBD>浼帮級:
CPU浣跨敤鐜? <10%
鍐呭瓨浣跨敤鐜? <30%
缃戠粶甯﹀<EFBFBD>: <10Mbps
```
### 鎴愭湰浼扮畻
```yaml
SAE鎴愭湰锛堝崟瀹炰緥锛?
0.5鏍?GB: 绾β?0-50/鏈?
鎵╁<EFBFBD>鍒?瀹炰緥鍚?
鎬绘垚鏈? 绾β?0-100/鏈?
寤鸿<EFBFBD>:
娴嬭瘯闃舵<EFBFBD>浣跨敤1涓<EFBFBD>疄渚?
鐢熶骇鐜<EFBFBD><EFBFBD>浣跨敤2涓<EFBFBD>疄渚嬶紙楂樺彲鐢<EFBFBD>
```
---
## 馃敡 涔濄€佹晠闅滄帓鏌ユ寚鍗?
### 甯歌<E794AF><EFBFBD><E99782>
#### 闂<><E99782>1锛氬<E9949B>鍣ㄥ惎鍔ㄥけ璐?
**鐥囩姸**锛氬<E9949B>鍣ㄥ弽澶嶉噸鍚?
**鍙<>兘鍘熷洜**锛?
-<><E9909C>鍙橀噺 `BACKEND_SERVICE_HOST`<>厤缃?
**瑙e喅鏂规硶**锛?
```bash
# 鍦⊿AE鎺у埗鍙版<E98D99>鏌ョ幆澧冨彉閲忛厤缃?
# 纭<>繚 BACKEND_SERVICE_HOST 鍜?BACKEND_SERVICE_PORT 宸叉<E5AEB8><EFBFBD>厤缃?
```
#### 闂<><E99782>2锛氬仴搴锋<E690B4>鏌ュけ璐?
**鐥囩姸**锛氬疄渚嬬姸鎬佹樉绀?涓嶅仴搴?
**鍙<>兘鍘熷洜**锛?
- Nginx鏈<78><E98F88>甯稿惎鍔?
- 鍋ュ悍妫€鏌ヨ矾寰勯敊璇?
**瑙e喅鏂规硶**锛?
```bash
# 鏌ョ湅瀹瑰櫒鏃ュ織
# 妫€鏌ユ槸鍚︽湁 "nginx: configuration file test is successful"
```
#### 闂<><E99782>3锛氬墠绔<E5A2A0>棤娉曚唬鐞嗗埌鍚庣<E98D9A>
**鐥囩姸**锛氳<E9949B>闂?`/health` 杩斿洖404鎴?02
**鍙<>兘鍘熷洜**锛?
- 鍚庣<E98D9A>鍦板潃閰嶇疆閿欒<E996BF>
- 缃戠粶涓嶉€氾紙瀹夊叏缁勮<E7BC81>鍒欙級
**瑙e喅鏂规硶**锛?
```bash
# 1. 妫€鏌ュ惎鍔ㄦ棩蹇椾腑鐨?Backend Service 鍦板潃
# 2. 娴嬭瘯鍚庣<E98D9A><EFBFBD>惁鍙<E68381><E98D99>闂?
curl http://172.17.173.71:3001/health
# 3. 妫€鏌ュ畨鍏ㄧ粍瑙勫垯鏄<E59EAF>惁鍏佽<E98D8F>鍐呯綉浜掗€?
```
---
## 馃帗 鍗併€佸叧閿<E58FA7>粡楠屾€荤粨
### 鎴愬姛鍥犵礌
1. **杩愯<E69DA9>鏃堕厤缃?*锛氬悗绔<E68297>湴鍧€閫氳繃鐜<E7B983><E9909C>鍙橀噺娉ㄥ叆锛屼笉鍐欐<E98D90>鍦ㄩ暅鍍忎腑
2. **绠€鍗曟灦鏋?*锛歂ginx鏋佸叾绋冲畾锛岄厤缃<E58EA4>畝鍗?
3. **鍏呭垎鍑嗗<E98D91>**锛氭彁鍓嶅噯澶囧ソ鎵€鏈夐厤缃<E58EA4>俊鎭?
4. **鍙傝€冪粡楠?*锛氬€熼壌Node.js鍚庣<E98D9A>閮ㄧ讲缁忛獙
### 涓嶯ode.js瀵规瘮鐨勪紭鍔?
1. **闆堕棶棰橀儴缃?*锛氭病鏈夐亣鍒颁换浣曢棶棰橈紝涓€娆℃垚鍔?
2. **璧勬簮鑺傜渷**锛氬彧闇€瑕?.5鏍?GB
3. **鍚<>姩蹇<E5A7A9>€?*锛?绉掑嵆鍙<E5B586>惎鍔?
4. **閰嶇疆绠€鍗?*锛氬彧闇€2涓<32>幆澧冨彉閲?
### 浜戝師鐢熻<E990A2>殑浣撶幇
1. **閰嶇疆澶栭儴鍖?*锛氶€氳繃鐜<E7B983><E9909C>鍙橀噺娉ㄥ叆閰嶇疆
2. **鏃犵姸鎬佽<E98EAC>璁?*锛氬彲浠ユ按骞虫墿灞?
3. **鍋ュ悍妫€鏌?*锛氭敮鎸丩iveness鍜孯eadiness鎺㈤拡
4. **鏃ュ織鏍囧噯鍖?*锛氳緭鍑哄埌stdout/stderr
---
## 馃寪 鍗佷竴銆佸唴缃戝湴鍧€姹囨€伙紙閲嶈<E996B2>锛侊級
### 鎵€鏈夋湇鍔″唴缃戝湴鍧€
```bash
# 鍓嶇<E98D93>Nginx锛堝叆鍙
http://172.17.173.72:80
# Node.js鍚庣<E98D9A>锛圓PI锛?
http://172.17.173.71:3001
# Python寰<6E>湇鍔★紙鏂囨。澶勭悊锛?
http://172.17.173.66:8000
# PostgreSQL鏁版嵁搴?
pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432
```
**閰嶇疆鍏<E79686>綉璁块棶鏃堕渶瑕佺敤鍒拌繖浜涘湴鍧€锛?*
---
## 馃摎 鍗佷簩銆佺浉鍏虫枃妗g储寮?
### 鍓嶇<E98D93>閮ㄧ讲鏂囨。
- [07-鍓嶇<E98D93>Nginx-SAE閮ㄧ讲鎿嶄綔鎵嬪唽.md](./07-鍓嶇<E98D93>Nginx-SAE閮ㄧ讲鎿嶄綔鎵嬪唽.md) - 瀹屾暣閮ㄧ讲姝ラ<E5A79D>
- [06-鍓嶇<E98D93>Nginx-SAE瀹瑰櫒閮ㄧ讲鎸囧崡.md](./06-鍓嶇<E98D93>Nginx-SAE瀹瑰櫒閮ㄧ讲鎸囧崡.md) - 鎶€鏈<E282AC>灦鏋勮<E98F8B>瑙?
### 鍚庣<E98D9A>閮ㄧ讲鏂囨。
- [12-Node.js鍚庣<E98D9A>-SAE閮ㄧ讲鎿嶄綔鎵嬪唽.md](./12-Node.js鍚庣<E98D9A>-SAE閮ㄧ讲鎿嶄綔鎵嬪唽.md)
- [15-Node.js鍚庣<E98D9A>-閮ㄧ讲鎴愬姛鎬荤粨.md](./15-Node.js鍚庣<E98D9A>-閮ㄧ讲鎴愬姛鎬荤粨.md)
### 鎬昏<E98EAC>鏂囨。
- [00-閮ㄧ讲杩涘害鎬昏<E98EAC>.md](./00-閮ㄧ讲杩涘害鎬昏<E98EAC>.md) - 閮ㄧ讲鐘舵€佹€昏<E282AC>
---
## 馃帀 鏈€缁堢粨璁?
**AI涓村簥鐮旂┒骞冲彴鏍稿績鏈嶅姟宸插叏閮ㄩ儴缃叉垚鍔燂紒**
鉁?PostgreSQL鏁版嵁搴擄紙2025-12-24锛?
鉁?Python寰<6E>湇鍔★紙2025-12-24锛?
鉁?Node.js鍚庣<E98D9A>锛?025-12-25锛?
鉁?鍓嶇<E98D93>Nginx锛?025-12-25锛?
**瀹屾暣閾捐矾娴嬭瘯閫氳繃**锛?
- 鍓嶇<E98D93>闈欐€佽祫婧?鉁?
- 鍓嶇<E98D93>鈫掑悗绔<E68297>唬鐞?鉁?
- 鍚庣<E98D9A>鈫掓暟鎹<E69A9F>簱 鉁?
- 鍚庣<E98D9A>鈫扨ython 鉁?
**绯荤粺鐘舵€?*锛氬叏閮ㄨ繍琛屾<E7909B>甯革紝鍙<E7B49D>互杩涜<E69DA9>鍔熻兘娴嬭瘯鍜屼笟鍔¢獙璇侊紒馃帄
---
> **鏂囨。鐗堟湰**锛歷1.0
> **鍒涘缓鏃堕棿**锛?025-12-25 20:00
> **缁存姢鑰?*锛氬紑鍙戝洟闃?