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%)
This commit is contained in:
2026-01-14 19:15:01 +08:00
parent 3d35e9c58b
commit 1b53ab9d52
386 changed files with 52096 additions and 65238 deletions

View File

@@ -1,24 +1,24 @@
# Node.js <20>𡒊垢 - SAE<41>函蔡<E587BD>滨蔭皜<E894AD><E79A9C>
> **创建时间**2025-12-24
> **部署环境**:测试环境(Test
> **<EFBFBD>𥕦遣<EFBFBD>園𡢿**嚗?025-12-24
> **<EFBFBD>函蔡<EFBFBD><EFBFBD>**嚗𡁏<E59A97>霂閧㴓憓<E3B493><E68693>Test嚗?
> **摨𠉛鍂<F0A0899B>滨妍**嚗䭰odejs-backend-test
> **目标规格**1核2GB
> **<EFBFBD><EFBFBD><EFBFBD>聢**嚗?<3F>?GB
---
## <20><> <20><><EFBFBD><EFBFBD><EFBFBD>撩JWT撖<54>𤨎
**⚠️ 重要:请妥善保管此密钥,不要泄露!**
**<EFBFBD>𩤃<EFBFBD> <20><EFBFBD>嚗朞窈憒亙<E68692>靽萘恣甇文<E79487><E69687><EFBFBD>銝滩<E98A9D><EFBFBD>蠧嚗?*
```bash
JWT_SECRET=146c2fd064a69aa026496ee60e20483d07e951eae8323a501126469583433415
```
**密钥特性**
- ✅ 64个十六进制字符256位强度
- ✅ 完全随机生成
- ✅ 符合生产环境安全标准
**<EFBFBD>𤨎<EFBFBD><EFBFBD>?*嚗?
- <EFBFBD>?64銝芸<E98A9D><E88AB8><EFBFBD><E5899B><EFBFBD>蝚佗<E89D9A>256雿滚撩摨佗<E691A8>
- <EFBFBD>?摰<><E691B0><EFBFBD>𤩺㦤<F0A4A9BA><E3A6A4><EFBFBD>
- <EFBFBD>?蝚血<E89D9A><E8A180>煺漣<E785BA><EFBFBD>摰匧<E691B0><E58CA7><EFBFBD><EFBFBD>
---
@@ -26,19 +26,19 @@ JWT_SECRET=146c2fd064a69aa026496ee60e20483d07e951eae8323a501126469583433415
### <20><EFBFBD>1嚗𡁻<E59A97>𣂷葵<F0A382B7>滨蔭嚗𠄎AE<41><EFBFBD><E689B9><EFBFBD>
在SAE控制台 → 应用配置 → 环境变量中,逐个添加以下配置:
<EFBFBD>沒AE<EFBFBD><EFBFBD><EFBFBD>?<3F>?摨𠉛鍂<F0A0899B>滨蔭 <20>?<3F><EFBFBD><E887AC><EFBFBD>銝哨<E98A9D><E593A8>𣂷葵瘛餃<E7989B>隞乩<E99A9E><E4B9A9>滨蔭嚗?
| 变量名 | 变量值 | 说明 |
| <EFBFBD><EFBFBD><EFBFBD>?| <20><EFBFBD><E3979B>?| 霂湔<E99C82> |
|--------|--------|------|
| `DATABASE_URL` | `postgresql://airesearch:Xibahe%40fengzhibo117@pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432/ai_clinical_research?connection_limit=18&pool_timeout=10` | RDS数据库连接(注意@编码为%40 |
| `JWT_SECRET` | `146c2fd064a69aa026496ee60e20483d07e951eae8323a501126469583433415` | 🔐 新生成的强密钥 |
| `DATABASE_URL` | `postgresql://airesearch:Xibahe%40fengzhibo117@pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432/ai_clinical_research?connection_limit=18&pool_timeout=10` | RDS<EFBFBD>唳旿摨栞<EFBFBD><EFBFBD><EFBFBD>瘜冽<EFBFBD>@蝻𣇉<EFBFBD>銝?40嚗?|
| `JWT_SECRET` | `146c2fd064a69aa026496ee60e20483d07e951eae8323a501126469583433415` | <EFBFBD><EFBFBD> <20><EFBFBD><E59581><EFBFBD>撘箏<E69298><E7AE8F>?|
| `JWT_EXPIRES_IN` | `7d` | JWT餈<54><E9A488><EFBFBD>園𡢿 |
| `DEEPSEEK_API_KEY` | `sk-7f8cc37a79fa4799860b38fc7ba2e150` | DeepSeek API撖<49>𤨎 |
| `DASHSCOPE_API_KEY` | `sk-75b4ff29a14a49e79667a331034f3298` | <20><EFBFBD><E8BCB8><EFBFBD>䔮API撖<49>𤨎 |
| `CLOSEAI_API_KEY` | `sk-cu0ienbXYGGx2jc7BqP6ogtSWmP6fk918qV3RUdtGC3Ed1po` | CloseAI隞<49><E99A9E><EFBFBD>𤨎 |
| `CLOSEAI_OPENAI_BASE_URL` | `https://api.openai-proxy.org/v1` | OpenAI隞<49><E99A9E><EFBFBD><EFBFBD> |
| `CLOSEAI_CLAUDE_BASE_URL` | `https://api.openai-proxy.org/anthropic` | Claude隞<65><E99A9E><EFBFBD><EFBFBD> |
| `DIFY_API_URL` | `http://localhost/v1` | Dify服务地址(未部署) |
| `DIFY_API_URL` | `http://localhost/v1` | Dify<EFBFBD>滚𦛚<EFBFBD><EFBFBD><EFBFBD>𧊋<EFBFBD>函蔡嚗?|
| `DIFY_API_KEY` | `dataset-mfvdiKvQ2l3NvxWm7RoYMN3c` | Dify API撖<49>𤨎 |
| `PORT` | `3001` | <20>滚𦛚蝡臬藁 |
| `NODE_ENV` | `production` | 餈鞱<E9A488><E99EB1><EFBFBD> |
@@ -54,9 +54,9 @@ JWT_SECRET=146c2fd064a69aa026496ee60e20483d07e951eae8323a501126469583433415
---
### 方式2批量导入推荐
### <EFBFBD><EFBFBD>2嚗𡁏鸌<EFBFBD>誩紡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗?
将以下内容复制在SAE控制台使用"批量导入"功能:
<EFBFBD>誑銝见<EFBFBD>摰孵<EFBFBD><EFBFBD><EFBFBD><EFBFBD>沒AE<EFBFBD><EFBFBD><EFBFBD>唬蝙<EFBFBD>?<3F><EFBFBD>撖澆<E69296>"<22><EFBFBD>嚗?
```env
DATABASE_URL=postgresql://airesearch:Xibahe%40fengzhibo117@pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432/ai_clinical_research?connection_limit=18&pool_timeout=10
@@ -104,15 +104,15 @@ LOG_LEVEL=info
### ACR<43>𨅯<EFBFBD>隞枏<E99A9E>霈方<E99C88>
```yaml
Registry<EFBFBD><EFBFBD>: crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com
用户名: gofeng117@163.com
<EFBFBD><EFBFBD><EFBFBD>? gofeng117@163.com
<EFBFBD><EFBFBD>: fengzhibo117
```
### 韏<><E99F8F><EFBFBD>滨蔭
```yaml
CPU: 1核
CPU: 1<EFBFBD>?
<EFBFBD><EFBFBD><EFBFBD>: 2GB
实例数: 1个固定
摰硺<EFBFBD><EFBFBD>? 1銝迎<E98A9D><E8BF8E><EFBFBD>嚗?
```
### 蝵𤑳<E89DB5><F0A491B3>滨蔭
@@ -127,16 +127,16 @@ VPC ID: vpc-2ze055cptkew9c38w4r06
<EFBFBD>讛悅: TCP
```
### 健康检查配置
### <EFBFBD>亙熒璉<EFBFBD><EFBFBD>仿<EFBFBD>蝵?
```yaml
检查类型: HTTP
检查路径: /health
检查端口: 3001
初始延迟: 30
检查间隔: 10秒
超时时间: 3
不健康阈值: 3次
健康阈值: 2次
<EFBFBD><EFBFBD>亦掩<EFBFBD>? HTTP
<EFBFBD><EFBFBD>亥楝敺? /health
<EFBFBD><EFBFBD>亦垢<EFBFBD>? 3001
<EFBFBD><EFBFBD>撱嗉<EFBFBD>: 30蝘?
<EFBFBD><EFBFBD>仿𡢿<EFBFBD>? 10蝘?
<EFBFBD>𧒄<EFBFBD>園𡢿: 3蝘?
銝滚<EFBFBD>摨琿<EFBFBD><EFBFBD>? 3甈?
<EFBFBD>亙熒<EFBFBD><EFBFBD><EFBFBD>? 2甈?
```
### <20>臬𢆡<E887AC>賭誘
@@ -144,42 +144,42 @@ VPC ID: vpc-2ze055cptkew9c38w4r06
node dist/server.js
```
**说明**
- ✅ 不需要执行 `prisma migrate deploy`(数据已通过pg_dump导入)
- ✅ 不需要执行 `prisma generate`(镜像构建时已生成)
- ✅ 直接启动编译后的服务即可
**霂湔<EFBFBD>**嚗?
- <EFBFBD>?銝漤<E98A9D><EFBFBD><E996AC>銵?`prisma migrate deploy`<EFBFBD><EFBFBD>桀歇<EFBFBD><EFBFBD>pg_dump撖澆<EFBFBD>嚗?
- <EFBFBD>?銝漤<E98A9D><EFBFBD><E996AC>銵?`prisma generate`<EFBFBD><EFBFBD><EFBFBD>𤩺<EFBFBD>撱箸𧒄撌脩<EFBFBD><EFBFBD><EFBFBD>
- <EFBFBD>?<3F>湔𦻖<E6B994>臬𢆡蝻𤥁<E89DBB><F0A4A581>𡒊<EFBFBD><F0A1928A>滚𦛚<E6BB9A>喳虾
---
## ✅ 部署后验证清单
## <EFBFBD>?<3F>函蔡<E587BD>𡡞<EFBFBD><EFBFBD><E99C82><EFBFBD>?
<EFBFBD>函蔡<EFBFBD>𣂼<EFBFBD><EFBFBD>𠬍<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>誑銝钅★<EFBFBD><EFBFBD>
### 1. 应用状态检查
- [ ] SAE控制台显示应用状态为"运行中"
### 1. 摨𠉛鍂<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
- [ ] SAE<EFBFBD><EFBFBD><EFBFBD>唳遬蝷箏<EFBFBD><EFBFBD>函𠶖<EFBFBD><EFBFBD>蛹"餈鞱<E9A488>銝?
- [ ] <20>亙熒璉<E78692><E79289>交遬蝷箔蛹"<22><EFBFBD>"
- [ ] <20>𣳇<EFBFBD><F0A3B387><EFBFBD>撏拇<E6928F>霈啣<E99C88>
### 2. 日志检查
### 2. <EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
<EFBFBD><EFBFBD>摰墧𧒄<EFBFBD><EFBFBD><EFBFBD><EFBFBD>霂亦<EFBFBD><EFBFBD>啁掩隡潔誑銝贝<EFBFBD><EFBFBD><EFBFBD>
```
============================================================
<EFBFBD><EFBFBD> AI銝游<E98A9D><E6B8B8>𠉛弦撟喳蝱 - <20>𡒊垢<F0A1928A>滚𦛚<E6BB9A>典鍳<E585B8><EFBFBD><E586BD><EFBFBD><EFBFBD>
============================================================
<EFBFBD><EFBFBD> <20>滚𦛚<E6BB9A><EFBFBD>: http://0.0.0.0:3001
🔍 健康检查: http://0.0.0.0:3001/health
<EFBFBD><EFBFBD> <20>亙熒璉<E78692><E79289>? http://0.0.0.0:3001/health
<EFBFBD>摱 API<50>亙藁: http://0.0.0.0:3001/api/v1
<EFBFBD><EFBFBD> 餈鞱<E9A488><E99EB1><EFBFBD>: production
============================================================
```
### 3. 健康检查测试
获取应用的内网地址后,执行:
### 3. <EFBFBD>亙熒璉<EFBFBD><EFBFBD><EFBFBD>霂?
<EFBFBD><EFBFBD>摨𠉛鍂<EFBFBD><EFBFBD><EFBFBD>蝵穃𧑐<EFBFBD><EFBFBD><EFBFBD>𠬍<EFBFBD><EFBFBD><EFBFBD>嚗?
```bash
curl http://172.17.x.x:3001/health
```
期望返回:
<EFBFBD><EFBFBD><EFBFBD>餈𥪜<EFBFBD>嚗?
```json
{
"status": "ok",
@@ -189,11 +189,11 @@ curl http://172.17.x.x:3001/health
}
```
### 4. 数据库连接测试
检查日志中是否有数据库连接成功的消息,无报错信息。
### 4. <EFBFBD>唳旿摨栞<EFBFBD><EFBFBD><EFBFBD>霂?
<EFBFBD><EFBFBD>交𠯫敹𦯀葉<EFBFBD>臬炏<EFBFBD>㗇㺭<EFBFBD><EFBFBD>餈墧𦻖<EFBFBD>𣂼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>䭾𥁒<EFBFBD>嗘縑<EFBFBD><EFBFBD>?
### 5. 霈啣<E99C88><E595A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
- [ ] 记录Node.js后端的内网地址(格式:`http://172.17.x.x:3001`
- [ ] 霈啣<EFBFBD>Node.js<EFBFBD>𡒊垢<EFBFBD><EFBFBD><EFBFBD>蝵穃𧑐<EFBFBD><EFBFBD><EFBFBD>聢撘𧶏<EFBFBD>`http://172.17.x.x:3001`嚗?
- [ ] <20>湔鰵<E6B994><EFBFBD>蝵脫<E89DB5><EFBFBD>
---
@@ -210,63 +210,64 @@ Node.js后端部署成功后
- 雿輻鍂Node.js<6A>𡒊垢<F0A1928A><E59EA2><EFBFBD>蝵穃𧑐<E7A983><F0A79190>
- 摰峕<E691B0><E5B395>滨垢摨𠉛鍂<F0A0899B><E98D82>AE<41>函蔡
3. **全链路测试**
- 前端 → Node.js后端 → Python微服务 → RDS
- 验证完整的业务流程
3. **<EFBFBD>券曎頝舀<EFBFBD>霂?*
- <EFBFBD>滨垢 <20>?Node.js<EFBFBD>𡒊垢 <20>?Python敺格<E695BA><E6A0BC>?<3F>?RDS
- 撉諹<EFBFBD>摰峕㟲<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝔?
---
## <20><> <20><><EFBFBD><EFBFBD>埝䰻
### 问题1应用无法启动
### <EFBFBD><EFBFBD>1嚗𡁜<EFBFBD><EFBFBD><EFBFBD>瘜訫鍳<EFBFBD>?
**<2A><>𠶖**嚗𡁜<E59A97>摨瑟<E691A8><E7919F><EFBFBD><E4B9A9>游仃韐伐<E99F90>摨𠉛鍂<F0A0899B>曄內"撘<>虜"
**排查步骤**
1. 查看"实时日志",检查启动错误
2. 常见原因:
**<EFBFBD>埝䰻甇仿炊**嚗?
1. <EFBFBD><EFBFBD>"摰墧𧒄<E5A2A7><EFBFBD>"嚗峕<E59A97><E5B395>亙鍳<E4BA99><EFBFBD>霂?
2. 撣貉<EFBFBD><EFBFBD><EFBFBD>嚗?
- DATABASE_URL<52><EFBFBD><E6BE86>躰秤嚗㇀<E59A97><EFBFBD><E88AB0><EFBFBD><EFBFBD>
- 端口配置不匹配
- 蝡臬藁<EFBFBD>滨蔭銝滚龪<EFBFBD>?
- <20><EFBFBD><E887AC><EFBFBD>蝻箏仃
### <20><EFBFBD>2嚗𡁏㺭<F0A1818F><EFBFBD>餈墧𦻖憭梯揖
**<2A><>𠶖**嚗𡁏𠯫敹埈遬蝷箸㺭<E7AEB8><EFBFBD>餈墧𦻖頞<F0A6BB96>𧒄
**排查步骤**
1. 检查RDS白名单是否包含VPC网段172.17.0.0/16
2. 检查DATABASE_URL中的密码是否正确编码(@编码为%40
**<EFBFBD>埝䰻甇仿炊**嚗?
1. <EFBFBD><EFBFBD>充DS<EFBFBD><EFBFBD><EFBFBD>閙糓<EFBFBD><EFBFBD><EFBFBD>侮PC蝵烐挾嚗?72.17.0.0/16嚗?
2. <EFBFBD><EFBFBD>ATABASE_URL銝剔<EFBFBD><EFBFBD><EFBFBD><EFBFBD>臬炏甇<EFBFBD>蝻𣇉<EFBFBD>嚗㇀蝻𣇉<EFBFBD>銝?40嚗?
3. <20>沒AE<41><45>ebshell銝剜<E98A9D>霂𤏪<E99C82>
```bash
curl -v telnet://pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432
```
### 问题3健康检查路径404
### <EFBFBD><EFBFBD>3嚗𡁜<EFBFBD>摨瑟<EFBFBD><EFBFBD>亥楝敺?04
**<2A><>𠶖**嚗𡁜<E59A97>摨瑟<E691A8><E7919F>交遬蝷慵TTP 404<30>躰秤
**解决方案**
- 确认健康检查路径为 `/health`(不是 `/api/health`
**<EFBFBD><EFBFBD><EFBFBD><EFBFBD>**嚗?
- 蝖株恕<EFBFBD>亙熒璉<EFBFBD><EFBFBD>亥楝敺<EFBFBD> `/health`<EFBFBD><EFBFBD><EFBFBD>?`/api/health`嚗?
- 蝖株恕<E6A0AA>亙熒璉<E78692><E79289>亦垢<E4BAA6><E59EA2>蛹 `3001`
---
## <20><> 摰匧<E691B0>瘜冽<E7989C>鈭钅★
1. **JWT密钥保护**
- ✅ 已生成强随机密钥
1. **JWT<EFBFBD>𤨎靽脲擪**嚗?
- <EFBFBD>?撌脩<E6928C><E884A9>𣂼撩<F0A382BC>𤩺㦤撖<E3A6A4>𤨎
- <20>𩤃<EFBFBD> 銝滩<E98A9D><EFBFBD><E692A0><EFBFBD><EFBFBD>鈭文<E988AD>Git
- <20>𩤃<EFBFBD> 銝滩<E98A9D><E6BBA9>冽𠯫敹𦯀葉<F0A6AF80>枏㫲撖<E3ABB2>𤨎
2. **数据库密码保护**
- ✅ 使用环境变量管理
- ⚠️ 注意URL编码@编码为%40
2. **<EFBFBD>唳旿摨枏<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?*嚗?
- <EFBFBD>?雿輻鍂<E8BCBB><EFBFBD><E887AC><EFBFBD>蝞∠<E89D9E>
- <EFBFBD>𩤃<EFBFBD> 瘜冽<E7989C>URL蝻𣇉<E89DBB>嚗㇀蝻𣇉<E89DBB>銝?40嚗?
3. **API密钥保护**
- ✅ 所有LLM API密钥已配置为环境变量
3. **API<EFBFBD>𤨎靽脲擪**嚗?
- <EFBFBD>?<3F><><EFBFBD>𧜵LM API撖<49>𤨎撌脤<E6928C>蝵桐蛹<E6A190><EFBFBD><E887AC><EFBFBD>
- <20>𩤃<EFBFBD> 摰𡁏<E691B0>頧格揢撖<E68FA2>𤨎
---
**文档创建时间**2025-12-24
**维护人员**:运维团队
**<EFBFBD><EFBFBD><EFBFBD>𥕦遣<EFBFBD>園𡢿**嚗?025-12-24
**蝏湔擪鈭箏<EFBFBD>**嚗朞<E59A97>蝏游𣪧<E6B8B8>?