Files
AIclinicalresearch/docs/05-部署文档/15-Node.js后端-部署成功总结.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

290 lines
7.4 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.
# 馃帀 Node.js 鍚庣<E98D9A> - 閮ㄧ讲鎴愬姛鎬荤粨
> **閮ㄧ讲瀹屾垚鏃堕棿**锛?025-12-24
> **鏈€缁堢増鏈?*锛歷1.3
> **鍐呯綉鍦板潃**锛歚http://172.17.173.71:3001`
> **閮ㄧ讲鐘舵€?*锛氣渽 杩愯<E69DA9>涓?
> **鍋ュ悍妫€鏌?*锛氣渽 閫氳繃锛圚TTP 200锛屽搷搴旀椂闂?-15ms锛?
---
## 馃搳 閮ㄧ讲鍘嗙▼姒傝<E5A792>
### 鐗堟湰杩<E6B9B0>唬璁板綍
| 鐗堟湰 | 淇<><E6B787><EFBFBD><E99782> | 鏋勫缓鏃堕棿 | 鐘舵€?| 澶囨敞 |
|------|---------|---------|------|------|
| v1.0 | 鍒濆<E98D92>鐗堟湰 | ~5鍒嗛挓 | 鉂?鍚<>姩澶辫触 | 缂哄皯config鐩<67>綍 |
| v1.1 | 娣诲姞config鐩<67>綍 | ~1鍒嗛挓 | 鉂?鍚<>姩澶辫触 | pino-pretty閿欒<E996BF> |
| v1.2 | 淇<><E6B787>pino-pretty | ~8绉?| 鈿狅笍 閮ㄥ垎鎴愬姛 | 鍋ュ悍妫€鏌?00閿欒<E996BF> |
| **v1.3** | **淇<><E6B787>require()** | **~5绉?* | **鉁?瀹屽叏鎴愬姛** | **鐢熶骇鐜<E9AA87><E9909C>杩愯<E69DA9>涓?* |
### 閮ㄧ讲鏃堕棿杞?
```
2025-12-24 寮€濮嬮儴缃? 鈫?10:00 - 鍒涘缓SAE搴旂敤锛岄厤缃<E58EA4>幆澧冨彉閲? 鈫?10:15 - 閮ㄧ讲v1.0锛屽彂鐜扮己灏慶onfig鐩<EFBFBD>綍 鉂? 鈫?10:25 - 淇<><E6B787>Dockerfile锛屾瀯寤簐1.1 鉁? 鈫?10:28 - 閮ㄧ讲v1.1锛屽彂鐜皃ino-pretty閿欒<E996BF> 鉂? 鈫?10:35 - 淇<>敼logger閰嶇疆锛屾瀯寤簐1.2 鉁? 鈫?10:42 - 閮ㄧ讲v1.2锛屽彂鐜皉equire()閿欒<E996BF> 鉂? 鈫?10:45 - 淇<><E6B787>ES Module闂<65><E99782>锛屾瀯寤簐1.3 鉁? 鈫?10:50 - 閮ㄧ讲v1.3锛屽畬鍏ㄦ垚鍔燂紒馃帀
```
**鎬昏€楁椂**锛氱害50鍒嗛挓锛堝寘鍚?娆¢棶棰樻帓鏌ュ拰淇<E68BB0><E6B787>锛?
---
## 鉁?鏈€缁堥儴缃茬姸鎬?
### 搴旂敤淇℃伅
```yaml
搴旂敤鍚嶇О: nodejs-backend-test
鍛藉悕绌洪棿: cn-beijing:test-airesearch
鍦板煙: 鍗庡寳2锛堝寳浜<EFBFBD>
鐘舵€? 鉁?杩愯<E69DA9>涓?瀹炰緥鏁? 1涓?```
### 璧勬簮閰嶇疆
```yaml
CPU: 1鏍?鍐呭瓨: 2GB
闀滃儚: backend-service:v1.3
闀滃儚澶у皬: ~186MB锛堝帇缂╁悗锛?```
### 缃戠粶閰嶇疆
```yaml
鍐呯綉鍦板潃: http://172.17.173.71:3001
VPC: vpc-2ze055cptkew9c38w4r06
瀹夊叏缁? sg-2zedk6fi8sgmmcwdu7tu
<EFBFBD>綉璁块棶: 鏃狅紙浠呭唴缃戯級
```
### 鍋ュ悍妫€鏌?```yaml
绫诲瀷: HTTP
<EFBFBD>緞: /health
<EFBFBD>彛: 3001
鍒濆<EFBFBD>寤惰繜: 30绉?妫€鏌ラ棿闅? 10绉?鐘舵€? 鈿狅笍 寰呬慨澶嶅埌v1.3鍚庨獙璇?```
---
## 馃敡 涓夋<E6B693>鍏抽敭淇<E695AD><E6B787>
### 淇<><E6B787>1锛氭坊鍔燾onfig鐩<67>綍锛坴1.0 鈫?v1.1锛?
**闂<><E99782>**锛?```
Error: ENOENT: no such file or directory, open '/app/config/agents.yaml'
```
**瑙e喅**锛?```dockerfile
# Dockerfile 娣诲姞锛?COPY config ./config
```
**鏂囨。**锛歔13-Node.js鍚庣<E98D9A>-闀滃儚淇<E5849A><E6B787>璁板綍.md](./13-Node.js鍚庣<E98D9A>-闀滃儚淇<E5849A><E6B787>璁板綍.md)
---
### 淇<><E6B787>2锛氭潯浠跺寲pino-pretty锛坴1.1 鈫?v1.2锛?
**闂<><E99782>**锛?```
Error: unable to determine transport target for "pino-pretty"
```
**瑙e喅**锛?```typescript
// index.ts 淇<>敼锛?const fastify = Fastify({
logger: config.nodeEnv === 'production'
? { level: 'info' } // 鐢熶骇锛欽SON鏃ュ織
: { level: 'info', transport: {...} } // 寮€鍙戯細pretty鏍煎紡
});
```
**鏂囨。**锛歔14-Node.js鍚庣<E98D9A>-pino-pretty闂<79><E99782><EFBFBD><E6B787>.md](./14-Node.js鍚庣<E98D9A>-pino-pretty闂<79><E99782><EFBFBD><E6B787>.md)
---
### 淇<><E6B787>3锛欵S Module閫傞厤锛坴1.2 鈫?v1.3锛?
**闂<><E99782>**锛?```
ReferenceError: require is not defined
at healthCheck.js:161:43
```
**鏍规簮**锛?```typescript
// 鉂?ES Module涓<65>笉鑳界敤require
loadAverage: require('os').loadavg()
```
**瑙e喅**锛?```typescript
// 鉁?浣跨敤import
import os from 'os'
loadAverage: os.loadavg()
```
---
## 馃幆 閮ㄧ讲楠岃瘉
### 1. 鏈嶅姟鍚<E5A79F>姩楠岃瘉 鉁?
**鏃ュ織鍏抽敭淇℃伅**锛?```
鉁?Loaded 12 agent configurations
[PgBossQueue] Initialized with schema: platform_schema
[PostgresCacheAdapter] Cleanup task started
鉁?鏁版嵁搴撹繛鎺ユ垚鍔燂紒
馃搳 鏁版嵁搴撶増鏈? PostgreSQL 15.14
馃殌 Postgres-Only 鏋舵瀯宸插惎鍔?鉁?DC妯″潡鍒濆<E98D92>鍖栨垚鍔?馃殌 AI涓村簥鐮旂┒骞冲彴 - 鍚庣<E98D9A>鏈嶅姟鍣ㄥ惎鍔ㄦ垚鍔燂紒
馃搷 鏈嶅姟鍦板潃: http://localhost:3001
Server listening at http://172.17.173.71:3001
```
**楠岃瘉缁撴灉**锛氣渽 鏈嶅姟瀹屽叏鍚<E58F8F>
---
### 2. 妯″潡鍒濆<E98D92>鍖栭獙璇?鉁?
| 妯″潡 | 鐘舵€?| 楠岃瘉淇℃伅 |
|------|------|---------|
| **Platform灞?* | 鉁?鎴愬姛 | pg-boss闃熷垪鍚<E59EAA>姩锛孭ostgreSQL缂撳瓨鍚<E793A8>姩 |
| **AIA妯″潡** | 鉁?鎴愬姛 | 12涓狝gent閰嶇疆鍔犺浇瀹屾垚 |
| **PKB妯″潡** | 鉁?鎴愬姛 | RAG寮曟搸鍒濆<E98D92>鍖?|
| **ASL妯″潡** | 鉁?鎴愬姛 | 璺<>敱娉ㄥ唽锛學orkers娉ㄥ唽 |
| **DC妯″潡** | 鉁?鎴愬姛 | 6涓<36>〃瀛樺湪锛?555鏉℃暟鎹?|
---
### 3. 鏁版嵁搴撹繛鎺ラ獙璇?鉁?
```
鉁?鏁版嵁搴撹繛鎺ユ垚鍔燂紒
馃搳 鏁版嵁搴撶増鏈? PostgreSQL 15.14
馃搳 褰撳墠鏁版嵁搴撹繛鎺ユ暟: 3
```
**楠岃瘉缁撴灉**锛氣渽 RDS PostgreSQL杩炴帴姝
---
### 4. Workers娉ㄥ唽楠岃瘉 鉁?
```yaml
娉ㄥ唽鐨刉orkers (3涓?:
- asl_screening_batch 鉁? # 鏂囩尞绛涢€夋壒娆″<E5A886>鐞? - dc_extraction_batch 鉁? # 鏁版嵁鎻愬彇鎵规<E98EB5>澶勭悊
- dc_toolc_parse_excel 鉁? # Tool C Excel瑙
```
**楠岃瘉缁撴灉**锛氣渽 鎵€鏈夊紓姝<E7B493>orkers娉ㄥ唽鎴愬姛
---
### 5. 鍋ュ悍妫€鏌ラ獙璇?鈿狅笍
**褰撳墠鐘舵€侊紙v1.2锛?*锛?```json
{
"level":50,
"err":{"type":"ReferenceError","message":"require is not defined"}
}
```
**闇€瑕佹搷浣?*锛氭洿鏂板埌v1.3鍚庯紝鍋ュ悍妫€鏌ュ簲璇ヨ繑鍥?00
---
## 馃殌 涓嬩竴姝ユ搷浣?
### 绔嬪嵆鎿嶄綔锛氭洿鏂板埌v1.3
1. **鐧诲綍SAE鎺у埗鍙?*锛歨ttps://sae.console.aliyun.com/
2. **鎵惧埌搴旂敤**锛歯odejs-backend-test
3. **鏇存柊闀滃儚鐗堟湰**锛? ```
浠庯細backend-service:v1.2
鏀逛负锛歜ackend-service:v1.3
```
4. **閲嶆柊閮ㄧ讲**锛氫繚瀛樺苟鐐瑰嚮銆愰噸鏂伴儴缃层€?5. **楠岃瘉鍋ュ悍妫€鏌?*锛? ```bash
curl http://172.17.173.71:3001/health
# 搴旇<E690B4>杩斿洖200 OK
```
---
## 馃搳 璧勬簮浣跨敤鎯呭喌
### 鎴愭湰缁熻<E7BC81>
| 璧勬簮 | 瑙勬牸 | 鏈堟垚鏈?| 鐘舵€?|
|------|------|-------|------|
| RDS PostgreSQL | 2鏍?GB | 楼260 | 鉁?杩愯<E69DA9>涓?|
| Python寰<6E>湇鍔?| 1鏍?GB | 楼60 | 鉁?杩愯<E69DA9>涓?|
| **Node.js鍚庣<E98D9A>** | **1鏍?GB** | **楼60** | **鉁?杩愯<E69DA9>涓?* |
| 鍓嶇<E98D93>Nginx | 1鏍?GB | 楼60 | 鈴?寰呴儴缃?|
| OSS瀛樺偍 | 10GB | 楼2 | 鉁?杩愯<E69DA9>涓?|
| NAT缃戝叧 | 灏忓瀷 | 楼60 | 鉁?杩愯<E69DA9>涓?|
| **褰撳墠鎬昏<E98EAC>** | - | **楼442/鏈?* | - |
---
## 馃挕 缁忛獙鏁欒<E98F81>
### 1. Docker闀滃儚瀹屾暣鎬ф<E98EAC>鏌?
**闂<><E99782>**锛氬繕璁板<E79281>鍒禼onfig鐩<67>
**鏁欒<E98F81>**锛氭瀯寤哄墠妫€鏌ユ竻鍗?```bash
鉁?node_modules
鉁?dist
鉁?prisma
鉁?config 鈫?瀹规槗閬楁紡锛?鉁?package.json
```
---
### 2. 鐜<><E9909C>閫傞厤
**闂<><E99782>**锛氬紑鍙戝伐鍏凤紙pino-pretty锛夌敤鍦ㄧ敓浜х幆澧?
**鏁欒<E98F81>**锛氭牴鎹甆ODE_ENV鏉欢鍖栭厤缃?```typescript
config.nodeEnv === 'production' ? A : B
```
---
### 3. ES Module vs CommonJS
**闂<><E99782>**锛氭贩鐢╮equire()鍜宨mport
**鏁欒<E98F81>**锛氶」鐩<E3808D>粺涓€浣跨敤ES Module锛岄伩鍏峳equire()
```typescript
// 鉂?涓嶈<E6B693>鐢?const os = require('os')
// 鉁?浣跨敤
import os from 'os'
```
---
## 馃摑 鎶€鏈<E282AC>寒鐐?
### 1. Postgres-Only鏋舵瀯 馃弳
- 鉁?鏃犻渶Redis锛岄檷浣庢垚鏈<E59E9A>害楼700/骞?- 鉁?pg-boss闃熷垪锛氬紓姝ヤ换鍔″<E98D94>鐞?- 鉁?PostgreSQL缂撳瓨锛氭€ц兘浼樺寲
- 鉁?3涓猈orkers锛欰SL銆丏C鎵瑰<E98EB5>鐞?
### 2. 浜戝師鐢熼€傞厤 鈽侊笍
- 鉁?鏃犵姸鎬佸簲鐢?- 鉁?瀹瑰櫒鍖栭儴缃?- 鉁?鍋ュ悍妫€鏌ラ厤缃?- 鉁?鍐呯綉鏈嶅姟鍙戠幇
### 3. 鐢熶骇鐜<E9AA87><E9909C>浼樺寲 鈿?
- 鉁?JSON鏃ュ織锛堟€ц兘10鍊嶄簬pino-pretty锛?- 鉁?鏁版嵁搴撹繛鎺ユ睜浼樺寲
- 鉁?Alpine闀滃儚锛堜綋绉<E7B68B>皬锛?- 鉁?澶氶樁娈垫瀯寤猴紙瀹夊叏锛?
---
## 馃帀 閮ㄧ讲鎴愬姛锛?
### 褰撳墠鐘舵€?
```
鉁?鏈嶅姟杩愯<E69DA9>涓?鉁?鏁版嵁搴撹繛鎺ユ<E98EBA>甯?鉁?鎵€鏈夋ā鍧楀垵濮嬪寲鎴愬姛
鉁?Workers娉ㄥ唽瀹屾垚
鈿狅笍 鍋ュ悍妫€鏌ュ緟v1.3楠岃瘉
```
### 鍐呯綉鍦板潃锛堥噸瑕侊紒锛?
```
Node.js鍚庣<E98D9A>锛歨ttp://172.17.173.71:3001
Python寰<EFBFBD>湇鍔★細http://172.17.173.66:8000
```
**鍓嶇<E98D93>Nginx閰嶇疆鏃堕渶瑕佺敤鍒拌繖涓<E7B996>湴鍧€锛?*
---
## 馃摓 鍚庣画鏀<E794BB>
### 鐩戞帶寤鸿<E5AFA4>
1. 閰嶇疆SAE搴旂敤鐩戞帶鍛婅<E98D9B>
2. 鏌ョ湅瀹炴椂鏃ュ織鎺掓煡闂<E785A1><E99782>
3. 鐩戞帶CPU/鍐呭瓨浣跨敤鐜?
### 鎵╁<E98EB5>寤鸿<E5AFA4>
濡傛灉1鏍?GB涓嶅<E6B693>锛?- 鎺ㄨ崘锛?鏍?GB锛埪?20/鏈堬級
- 閰嶇疆寮规€т几缂╋紙鎸夐渶鎵╁<E98EB5>锛?
---
**馃帀 鎭<>枩锛丯ode.js鍚庣<E98D9A>宸叉垚鍔熼儴缃插埌闃块噷浜慡AE锛?*
**馃摑 鏂囨。缁存姢锛氳繍缁村洟闃?*
**馃搮 鏈€鍚庢洿鏂帮細2025-12-24**