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%)
7.5 KiB
Node.js <20>𡒊垢 - SAE<41>函蔡<E587BD>滨蔭皜<E894AD><E79A9C>
<EFBFBD>𥕦遣<EFBFBD>園𡢿嚗?025-12-24 **<2A>函蔡<E587BD>臬<EFBFBD>**嚗𡁏<E59A97>霂閧㴓憓<E3B493><E68693>Test嚗? 摨𠉛鍂<EFBFBD>滨妍嚗䭰odejs-backend-test <EFBFBD>格<EFBFBD>閫<EFBFBD>聢嚗?<3F>?GB
<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>撩JWT撖<54>𤨎
*<EFBFBD>𩤃<EFBFBD> <20>滩<EFBFBD>嚗朞窈憒亙<E68692>靽萘恣甇文<E79487><E69687>伐<EFBFBD>銝滩<E98A9D>瘜<EFBFBD>蠧嚗?
JWT_SECRET=146c2fd064a69aa026496ee60e20483d07e951eae8323a501126469583433415
**撖<>𤨎<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>
<EFBFBD><EFBFBD> 摰峕㟲<E5B395>臬<EFBFBD><E887AC>㗛<EFBFBD><E3979B>滨蔭
<EFBFBD>孵<EFBFBD>1嚗𡁻<EFBFBD>𣂷葵<EFBFBD>滨蔭嚗𠄎AE<EFBFBD>批<EFBFBD><EFBFBD>堆<EFBFBD>
<EFBFBD>沒AE<EFBFBD>批<EFBFBD><EFBFBD>?<3F>?摨𠉛鍂<F0A0899B>滨蔭 <20>?<3F>臬<EFBFBD><E887AC>㗛<EFBFBD>銝哨<E98A9D><E593A8>𣂷葵瘛餃<E7989B>隞乩<E99A9E><E4B9A9>滨蔭嚗?
| <EFBFBD>㗛<EFBFBD><EFBFBD>? | <EFBFBD>㗛<EFBFBD><EFBFBD>? | 霂湔<EFBFBD> |
|---|---|---|
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>@蝻𣇉<E89DBB>銝?40嚗? |
JWT_SECRET |
146c2fd064a69aa026496ee60e20483d07e951eae8323a501126469583433415 |
<EFBFBD><EFBFBD> <20>啁<EFBFBD><E59581>鞟<EFBFBD>撘箏<E69298><E7AE8F>? |
JWT_EXPIRES_IN |
7d |
JWT餈<EFBFBD><EFBFBD><EFBFBD>園𡢿 |
DEEPSEEK_API_KEY |
sk-7f8cc37a79fa4799860b38fc7ba2e150 |
DeepSeek API撖<49>𤨎 |
DASHSCOPE_API_KEY |
sk-75b4ff29a14a49e79667a331034f3298 |
<EFBFBD>輸<EFBFBD><EFBFBD><EFBFBD>䔮API撖<EFBFBD>𤨎 |
CLOSEAI_API_KEY |
sk-cu0ienbXYGGx2jc7BqP6ogtSWmP6fk918qV3RUdtGC3Ed1po |
CloseAI隞<EFBFBD><EFBFBD>撖<EFBFBD>𤨎 |
CLOSEAI_OPENAI_BASE_URL |
https://api.openai-proxy.org/v1 |
OpenAI隞<EFBFBD><EFBFBD><EFBFBD>啣<EFBFBD> |
CLOSEAI_CLAUDE_BASE_URL |
https://api.openai-proxy.org/anthropic |
Claude隞<EFBFBD><EFBFBD><EFBFBD>啣<EFBFBD> |
DIFY_API_URL |
http://localhost/v1 |
Dify<EFBFBD>滚𦛚<EFBFBD>啣<EFBFBD>嚗<EFBFBD>𧊋<EFBFBD>函蔡嚗? |
DIFY_API_KEY |
dataset-mfvdiKvQ2l3NvxWm7RoYMN3c |
Dify API撖<49>𤨎 |
PORT |
3001 |
<EFBFBD>滚𦛚蝡臬藁 |
NODE_ENV |
production |
餈鞱<EFBFBD><EFBFBD>臬<EFBFBD> |
QUEUE_TYPE |
pgboss |
<EFBFBD>笔<EFBFBD>蝐餃<EFBFBD> |
CACHE_TYPE |
postgres |
蝻枏<EFBFBD>蝐餃<EFBFBD> |
OSS_REGION |
oss-cn-beijing |
OSS<EFBFBD>箏<EFBFBD> |
OSS_BUCKET |
ai-clinical-research |
OSS Bucket<65>滨妍 |
OSS_ACCESS_KEY_ID |
LTAI5tB2Dt3NdvBL3G7nYGv7 |
OSS霈輸䔮撖<EFBFBD>𤨎ID |
OSS_ACCESS_KEY_SECRET |
1iSN9k39RkApP93QjUhC1DcPIeMG4V |
OSS霈輸䔮撖<EFBFBD>𤨎Secret |
OSS_ENDPOINT |
oss-cn-beijing-internal.aliyuncs.com |
OSS<EFBFBD><EFBFBD><EFBFBD><EFBFBD>啣<EFBFBD> |
PYTHON_SERVICE_URL |
http://172.17.173.66:8000 |
Python敺格<EFBFBD><EFBFBD>∪𧑐<EFBFBD><EFBFBD> |
LOG_LEVEL |
info |
<EFBFBD>亙<EFBFBD>蝥批<EFBFBD> |
<EFBFBD>孵<EFBFBD>2嚗𡁏鸌<EFBFBD>誩紡<EFBFBD>伐<EFBFBD><EFBFBD>刻<EFBFBD>嚗?
撠<EFBFBD>誑銝见<EFBFBD>摰孵<EFBFBD><EFBFBD>塚<EFBFBD><EFBFBD>沒AE<EFBFBD>批<EFBFBD><EFBFBD>唬蝙<EFBFBD>?<3F>寥<EFBFBD>撖澆<E69296>"<22>蠘<EFBFBD>嚗?
DATABASE_URL=postgresql://airesearch:Xibahe%40fengzhibo117@pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432/ai_clinical_research?connection_limit=18&pool_timeout=10
JWT_SECRET=146c2fd064a69aa026496ee60e20483d07e951eae8323a501126469583433415
JWT_EXPIRES_IN=7d
DEEPSEEK_API_KEY=sk-7f8cc37a79fa4799860b38fc7ba2e150
DASHSCOPE_API_KEY=sk-75b4ff29a14a49e79667a331034f3298
CLOSEAI_API_KEY=sk-cu0ienbXYGGx2jc7BqP6ogtSWmP6fk918qV3RUdtGC3Ed1po
CLOSEAI_OPENAI_BASE_URL=https://api.openai-proxy.org/v1
CLOSEAI_CLAUDE_BASE_URL=https://api.openai-proxy.org/anthropic
DIFY_API_URL=http://localhost/v1
DIFY_API_KEY=dataset-mfvdiKvQ2l3NvxWm7RoYMN3c
PORT=3001
NODE_ENV=production
QUEUE_TYPE=pgboss
CACHE_TYPE=postgres
OSS_REGION=oss-cn-beijing
OSS_BUCKET=ai-clinical-research
OSS_ACCESS_KEY_ID=LTAI5tB2Dt3NdvBL3G7nYGv7
OSS_ACCESS_KEY_SECRET=1iSN9k39RkApP93QjUhC1DcPIeMG4V
OSS_ENDPOINT=oss-cn-beijing-internal.aliyuncs.com
PYTHON_SERVICE_URL=http://172.17.173.66:8000
LOG_LEVEL=info
<EFBFBD><EFBFBD> SAE摨𠉛鍂<F0A0899B>滨蔭<E6BBA8><E894AD>㺭
<EFBFBD>箸𧋦靽⊥<EFBFBD>
摨𠉛鍂<EFBFBD>滨妍: nodejs-backend-test
<EFBFBD>函蔡<EFBFBD>孵<EFBFBD>: 摰孵膥<EFBFBD>𨅯<EFBFBD>
<EFBFBD>賢<EFBFBD>蝛粹𡢿: cn-beijing:test-airesearch
<EFBFBD>啣<EFBFBD>: <EFBFBD>𤾸<EFBFBD>2嚗<EFBFBD><EFBFBD>鈭穿<EFBFBD>
<EFBFBD>𨅯<EFBFBD><EFBFBD>滨蔭
<EFBFBD>𨅯<EFBFBD>蝐餃<EFBFBD>: 蝘<EFBFBD><EFBFBD><EFBFBD>𨅯<EFBFBD>
<EFBFBD>𨅯<EFBFBD><EFBFBD>啣<EFBFBD>: crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/backend-service:v1.0
<EFBFBD>𨅯<EFBFBD><EFBFBD><EFBFBD>𧋦: v1.0
ACR<EFBFBD>𨅯<EFBFBD>隞枏<EFBFBD>霈方<EFBFBD>
Registry<EFBFBD>啣<EFBFBD>: crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com
<EFBFBD>冽<EFBFBD><EFBFBD>? gofeng117@163.com
撖<EFBFBD><EFBFBD>: fengzhibo117
韏<EFBFBD><EFBFBD><EFBFBD>滨蔭
CPU: 1<EFBFBD>?
<EFBFBD><EFBFBD><EFBFBD>: 2GB
摰硺<EFBFBD><EFBFBD>? 1銝迎<E98A9D><E8BF8E>箏<EFBFBD>嚗?
蝵𤑳<EFBFBD><EFBFBD>滨蔭
VPC ID: vpc-2ze055cptkew9c38w4r06
摰匧<EFBFBD>蝏<EFBFBD>D: sg-2zedk6fi8sgmmcwdu7tu
蝡臬藁<EFBFBD>滨蔭
摰孵膥蝡臬藁: 3001
<EFBFBD>讛悅: TCP
<EFBFBD>亙熒璉<EFBFBD><EFBFBD>仿<EFBFBD>蝵?
璉<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甈?
<EFBFBD>臬𢆡<EFBFBD>賭誘
node dist/server.js
**霂湔<E99C82>**嚗?
- <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. 摨𠉛鍂<F0A0899B>嗆<EFBFBD><E59786><EFBFBD><EFBFBD>?
- SAE<EFBFBD>批<EFBFBD><EFBFBD>唳遬蝷箏<EFBFBD><EFBFBD>函𠶖<EFBFBD><EFBFBD>蛹"餈鞱<E9A488>銝?
- <EFBFBD>亙熒璉<EFBFBD><EFBFBD>交遬蝷箔蛹"<22>朞<EFBFBD>"
- <EFBFBD>𣳇<EFBFBD><EFBFBD>舀<EFBFBD>撏拇<EFBFBD>霈啣<EFBFBD>
2. <20>亙<EFBFBD>璉<EFBFBD><E79289>?
<EFBFBD>亦<EFBFBD>摰墧𧒄<EFBFBD>亙<EFBFBD>嚗<EFBFBD><EFBFBD>霂亦<EFBFBD><EFBFBD>啁掩隡潔誑銝贝<EFBFBD><EFBFBD>綽<EFBFBD>
============================================================
<0A><> AI銝游<E98A9D><E6B8B8>𠉛弦撟喳蝱 - <20>𡒊垢<F0A1928A>滚𦛚<E6BB9A>典鍳<E585B8>冽<EFBFBD><E586BD><EFBFBD><EFBFBD>
============================================================
<0A><> <20>滚𦛚<E6BB9A>啣<EFBFBD>: http://0.0.0.0:3001
<0A><> <20>亙熒璉<E78692><E79289>? http://0.0.0.0:3001/health
<0A>摱 API<50>亙藁: http://0.0.0.0:3001/api/v1
<0A><> 餈鞱<E9A488><E99EB1>臬<EFBFBD>: production
============================================================
3. <20>亙熒璉<E78692><E79289>交<EFBFBD>霂?
<EFBFBD>瑕<EFBFBD>摨𠉛鍂<EFBFBD><EFBFBD><EFBFBD>蝵穃𧑐<EFBFBD><EFBFBD><EFBFBD>𠬍<EFBFBD><EFBFBD>扯<EFBFBD>嚗?
curl http://172.17.x.x:3001/health
<EFBFBD><EFBFBD><EFBFBD>餈𥪜<EFBFBD>嚗?
{
"status": "ok",
"timestamp": "2025-12-24T12:00:00.000Z",
"database": "connected",
"uptime": 123
}
4. <20>唳旿摨栞<E691A8><E6A09E>交<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>
- 霈啣<EFBFBD>Node.js<6A>𡒊垢<F0A1928A><E59EA2><EFBFBD>蝵穃𧑐<E7A983><F0A79190>嚗<EFBFBD>聢撘𧶏<E69298>
http://172.17.x.x:3001嚗? - <EFBFBD>湔鰵<EFBFBD>圈<EFBFBD>蝵脫<EFBFBD>獢<EFBFBD>葉
<EFBFBD>㴓 <20>𡒊賒甇仿炊
Node.js<6A>𡒊垢<F0A1928A>函蔡<E587BD>𣂼<EFBFBD><F0A382BC>𠬍<EFBFBD>
-
<EFBFBD>湔鰵<EFBFBD>滨垢Nginx<EFBFBD>滨蔭
- 撠<EFBFBD>ode.js<6A>𡒊垢<F0A1928A><E59EA2><EFBFBD>蝵穃𧑐<E7A983><F0A79190><EFBFBD>滨蔭<E6BBA8>啣<EFBFBD>蝡烤ginx
- <EFBFBD>臬<EFBFBD><EFBFBD>㗛<EFBFBD>嚗䫤VITE_API_BASE_URL=http://172.17.x.x:3001`
-
<EFBFBD>函蔡<EFBFBD>滨垢Nginx
- 雿輻鍂Node.js<6A>𡒊垢<F0A1928A><E59EA2><EFBFBD>蝵穃𧑐<E7A983><F0A79190>
- 摰峕<EFBFBD><EFBFBD>滨垢摨𠉛鍂<EFBFBD><EFBFBD>AE<EFBFBD>函蔡
-
*<EFBFBD>券曎頝舀<EFBFBD>霂?
- <EFBFBD>滨垢 <20>?Node.js<6A>𡒊垢 <20>?Python敺格<E695BA><E6A0BC>?<3F>?RDS
- 撉諹<EFBFBD>摰峕㟲<EFBFBD><EFBFBD><EFBFBD><EFBFBD>⊥<EFBFBD>蝔?
<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>埝䰻
<EFBFBD>桅<EFBFBD>1嚗𡁜<EFBFBD><EFBFBD>冽<EFBFBD>瘜訫鍳<EFBFBD>?
<EFBFBD><EFBFBD>𠶖嚗𡁜<EFBFBD>摨瑟<EFBFBD><EFBFBD>乩<EFBFBD><EFBFBD>游仃韐伐<EFBFBD>摨𠉛鍂<EFBFBD>曄內"撘<>虜"
<EFBFBD>埝䰻甇仿炊嚗?
- <EFBFBD>亦<EFBFBD>"摰墧𧒄<E5A2A7>亙<EFBFBD>"嚗峕<E59A97><E5B395>亙鍳<E4BA99>券<EFBFBD>霂?
- 撣貉<EFBFBD><EFBFBD>笔<EFBFBD>嚗?
- DATABASE_URL<EFBFBD>澆<EFBFBD><EFBFBD>躰秤嚗㇀<EFBFBD>芰<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
- 蝡臬藁<EFBFBD>滨蔭銝滚龪<EFBFBD>?
- <EFBFBD>臬<EFBFBD><EFBFBD>㗛<EFBFBD>蝻箏仃
<EFBFBD>桅<EFBFBD>2嚗𡁏㺭<EFBFBD>桀<EFBFBD>餈墧𦻖憭梯揖
<EFBFBD><EFBFBD>𠶖嚗𡁏𠯫敹埈遬蝷箸㺭<EFBFBD>桀<EFBFBD>餈墧𦻖頞<EFBFBD>𧒄
<EFBFBD>埝䰻甇仿炊嚗?
- 璉<EFBFBD><EFBFBD>充DS<EFBFBD>賢<EFBFBD><EFBFBD>閙糓<EFBFBD>血<EFBFBD><EFBFBD>侮PC蝵烐挾嚗?72.17.0.0/16嚗?
- 璉<EFBFBD><EFBFBD>主ATABASE_URL銝剔<EFBFBD>撖<EFBFBD><EFBFBD><EFBFBD>臬炏甇<EFBFBD>&蝻𣇉<EFBFBD>嚗㇀蝻𣇉<EFBFBD>銝?40嚗?
- <EFBFBD>沒AE<EFBFBD><EFBFBD>ebshell銝剜<EFBFBD>霂𤏪<EFBFBD>
curl -v telnet://pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432
<EFBFBD>桅<EFBFBD>3嚗𡁜<EFBFBD>摨瑟<EFBFBD><EFBFBD>亥楝敺?04
<EFBFBD><EFBFBD>𠶖嚗𡁜<EFBFBD>摨瑟<EFBFBD><EFBFBD>交遬蝷慵TTP 404<30>躰秤
**閫<><E996AB><EFBFBD>寞<EFBFBD>**嚗?
- 蝖株恕<EFBFBD>亙熒璉<EFBFBD><EFBFBD>亥楝敺<EFBFBD>蛹
/health嚗<EFBFBD><EFBFBD><EFBFBD>?/api/health嚗? - 蝖株恕<EFBFBD>亙熒璉<EFBFBD><EFBFBD>亦垢<EFBFBD><EFBFBD>蛹
3001
<EFBFBD><EFBFBD> 摰匧<E691B0>瘜冽<E7989C>鈭钅★
-
JWT撖<EFBFBD>𤨎靽脲擪嚗?
- <EFBFBD>?撌脩<E6928C><E884A9>𣂼撩<F0A382BC>𤩺㦤撖<E3A6A4>𤨎
- <EFBFBD>𩤃<EFBFBD> 銝滩<E98A9D>撠<EFBFBD><E692A0><EFBFBD>交<EFBFBD>鈭文<E988AD>Git
- <EFBFBD>𩤃<EFBFBD> 銝滩<E98A9D><E6BBA9>冽𠯫敹𦯀葉<F0A6AF80>枏㫲撖<E3ABB2>𤨎
-
**<2A>唳旿摨枏<E691A8><E69E8F><EFBFBD><EFBFBD><EFBFBD>?*嚗?
- <EFBFBD>?雿輻鍂<E8BCBB>臬<EFBFBD><E887AC>㗛<EFBFBD>蝞∠<E89D9E>
- <EFBFBD>𩤃<EFBFBD> 瘜冽<E7989C>URL蝻𣇉<E89DBB>嚗㇀蝻𣇉<E89DBB>銝?40嚗?
-
API撖<EFBFBD>𤨎靽脲擪嚗?
- <EFBFBD>?<3F><><EFBFBD>𧜵LM API撖<49>𤨎撌脤<E6928C>蝵桐蛹<E6A190>臬<EFBFBD><E887AC>㗛<EFBFBD>
- <EFBFBD>𩤃<EFBFBD> 摰𡁏<E691B0>頧格揢撖<E68FA2>𤨎
<EFBFBD><EFBFBD>﹝<EFBFBD>𥕦遣<EFBFBD>園𡢿嚗?025-12-24 **蝏湔擪鈭箏<E988AD>**嚗朞<E59A97>蝏游𣪧<E6B8B8>?