Files
AIclinicalresearch/docs/05-部署文档/00-阿里云SAE最新真实状态记录.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

337 lines
15 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.
# <20><> AI銝游<E98A9D><E6B8B8>𠉛弦撟喳蝱 - <20><EFBFBD>鈭騌AE<41><45><EFBFBD><EFBFBD>摰䂿𠶖<E482BF><F0A0B696>扇敶?
> **<2A><><EFBFBD><EFBFBD>?*嚗朞扇敶閖燵<E99696><EFBFBD>SAE<41>滚𦛚<E6BB9A><EFBFBD><E586BD><EFBFBD>摰䂿𠶖<E482BF>?+ 瘥𤩺活<F0A4A9BA>函蔡霈啣<E99C88>
> **<2A><><EFBFBD>擧凒<E693A7>?*嚗?026-01-01 14:00
> **蝏湔擪鈭箏<E988AD>**嚗𡁜<E59A97><F0A1819C>穃𣪧<E7A983>?
> **霂湔<E99C82>**嚗𡁏𧋦<F0A1818F><F0A78BA6><EFBFBD><EFB99D>霈啣<E99C88>SAE銝𦠜<E98A9D><F0A6A09C><EFBFBD><E58CA7><EFBFBD>敶枏<E695B6><E69E8F><EFBFBD><E59786><EFBFBD><EFBFBD><EFBFBD>𡠺<EFBFBD><F0A1A0BA><EFBFBD><EFBFBD><EFBFBD><E595A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8AE90><EFBFBD><E7A094><EFBFBD><EFBFBD><EFBFBD><E69296>蝑匧<E89D91><E58CA7><EFBFBD>皞𣂷縑<F0A382B7>?
---
## <20><><><E98A9D><EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝵脩𠶖<E884A9><F0A0B696><EFBFBD>閫?
| <20>滚𦛚<E6BB9A>滨妍 | <20>函蔡<E587BD><EFBFBD>?| <20>𨅯<EFBFBD><F0A885AF><EFBFBD>𧋦 | <20>函蔡雿滨蔭 | <20><><EFBFBD>擧凒<E693A7>唳𧒄<E594B3>?|
|---------|---------|---------|---------|-------------|
| **PostgreSQL<51>唳旿摨?* | <20>?餈鞱<E9A488>銝?| PostgreSQL 15 | RDS | 2025-12-24 |
| **<EFBFBD>滨垢Nginx<EFBFBD>滚𦛚** | <20>?餈鞱<E9A488>銝?| v1.2 | SAE | 2026-01-01 |
| **Python敺格<E695BA><E6A0BC>?* | <20>?餈鞱<E9A488>銝?| v1.0 | SAE | 2025-12-24 |
| **Node.js<6A>𡒊垢** | <20>?餈鞱<E9A488>銝?| v1.3 | SAE | 2025-12-25 |
| **Dify AI<41>滚𦛚** | <20>?<3F><EFBFBD>蝵?| - | - | - |
---
## <20><> 鈭䎚<E988AD><E48E9A><EFBFBD><EFBFBD><EFBFBD><E99F8F>靽⊥<E99DBD>
### 2.1 ACR摰孵膥<E5ADB5>𨅯<EFBFBD>隞枏<E99A9E>
**<EFBFBD>箸𧋦靽⊥<EFBFBD>**嚗?- **<EFBFBD><EFBFBD>蝛粹𡢿**嚗䫤ai-clinical`
- **Registry<72><EFBFBD><EFBFBD><E59A97>蝵𡢅<E89DB5>**嚗䫤crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com`
- **Registry<72><EFBFBD>嚗ĀPC嚗?*嚗䫤crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com`
- **<2A><EFBFBD><E586BD>?*嚗䫤gofeng117@163.com`
- **撖<><E69296>**嚗䫤fengzhibo117`
**<EFBFBD>𨅯<EFBFBD>隞枏<EFBFBD><EFBFBD>𡑒”**嚗?
| 隞枏<E99A9E><E69E8F>滨妍 | <20><><EFBFBD><EFBFBD><E59581>?| <20>𨅯<EFBFBD>憭批<E686AD> | VPC<50><EFBFBD> |
|---------|---------|---------|---------|
| **python-extraction** | v1.0 | 1.12GB | `crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/python-extraction:v1.0` |
| **ai-clinical_frontend-nginx** | v1.2 | ~50MB | `crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ai-clinical_frontend-nginx:v1.2` |
| **backend-service** | v1.3 | 838MB | `crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/backend-service:v1.3` |
---
### 2.2 VPC蝵𤑳<E89DB5>銝𥦬AT蝵穃<E89DB5>
**VPC靽⊥<E99DBD>**嚗?- **VPC ID**嚗䫤vpc-2ze055cptkew9c38w4r06`
- **VPC<50>滨妍**嚗䫤ai-clinical-vpc`
- **蝵烐挾**嚗䫤172.17.0.0/16`
- **<2A><EFBFBD>**嚗𡁜<E59A97><F0A1819C>?嚗<><E59A97>鈭穿<E988AD>
- **鈭斗揢<E69697>?**嚗䫤vsw-2zevacop039bxrmj6yc0c`嚗<><EFBFBD>典躹F嚗?- **鈭斗揢<E69697>?**嚗䫤vsw-2zehoeyw9ldncymcyvfwq`<EFBFBD><EFBFBD>典躹A嚗?- **摰匧<E691B0><EFBFBD>D**嚗䫤sg-2zedk6fi8sgmmcwdu7tu`
**NAT蝵穃<E89DB5>靽⊥<E99DBD>**嚗?- **NAT蝵穃<E89DB5><E7A983>滨妍**嚗䫤NAT_airesearch`
- **NAT蝵穃<E89DB5>ID**嚗䫤ngw-2zeec9ulzgw7ywvx1pst6`
- **<2A><EFBFBD>IP嚗𠄌IP嚗?*嚗䫤182.92.176.14`
- **SNAT銵沉D**嚗䫤stb-2zesszmzx1qpwf1cb2bry`
---
### 2.3 RDS PostgreSQL<51>唳旿摨?
**摰硺<E691B0>靽⊥<E99DBD>**嚗?- **摰硺<E691B0>ID**嚗䫤pgm-2zex1m2y3r23hdn5`
- **閫<>聢**嚗?<3F>?GB嚗īg.n2.2c.1m嚗?- **摮睃<E691AE>蝛粹𡢿**嚗?00GB嚗𠄎SD鈭𤑳<E988AD>嚗?- **PostgreSQL<51><4C>𧋦**嚗?5.0
- **<2A><><EFBFBD><EFBFBD><EFBFBD>**嚗䫤pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432`
- **憭𣇉<E686AD><F0A38789><EFBFBD>**嚗䫤pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com`嚗<><E59A97>儭?撌脣<E6928C><E884A3><EFBFBD>
- **<2A><>憭扯<E686AD><E689AF>交㺭**嚗?00
- **<2A>嗅躹**嚗鋫sia/Shanghai
- **<2A><EFBFBD><E8B3A2>?*嚗?72.17.0.0/16嚗ĀPC蝵烐挾嚗?
**<2A>唳旿摨㯄<E691A8>蝵?*嚗?- **<EFBFBD>唳旿摨枏<EFBFBD>**嚗䫤ai_clinical_research`
- **<2A><EFBFBD><E586BD>?*嚗䫤airesearch`
- **撖<><E69296>**嚗䫤Xibahe@fengzhibo117`
- **摮㛖泵<E39B96>?*嚗䦧TF8
- **<2A><EFBFBD><EFBFBD><E996AB>**嚗塄n_US.utf8
**餈墧𦻖摮㛖泵銝?*嚗?```
postgresql://airesearch:Xibahe%40fengzhibo117@pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432/ai_clinical_research
```
<EFBFBD>𩤃<EFBFBD> 瘜冽<E7989C>嚗𡁜<E59A97><F0A1819C><EFBFBD><EFBFBD>?`@` <20><><EFBFBD>RL蝻𣇉<E89DBB>銝?`%40`
**Schema<6D><EFBFBD>**嚗?1銝芯<E98A9D><E88AAF>﹖chema嚗㚁<E59A97>
| Schema<6D>滨妍 | <20><EFBFBD><E79285> | 銵冽㺭<E586BD>?| 霂湔<E99C82> |
|-----------|---------|-------|------|
| `platform_schema` | 撟喳蝱<E596B3><EFBFBD> | 8 | <20><EFBFBD><E586BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E58390><EFBFBD><EFBFBD><E28ABF><EFBFBD>pg-boss嚗?|
| `asl_schema` | 蝟餌<E89D9F><E9A48C><EFBFBD>讃蝑𥟇䰻 | 6 | 憿寧𤌍<E5AFA7><F0A48C8D><EFBFBD><EFBFBD><EFBFBD><E69FB4><EFBFBD><EFBFBD>亥扇敶?|
| `aia_schema` | AI<41><EFBFBD><E7AE84><EFBFBD> | 5 | AI憿寧𤌍<E5AFA7><F0A48C8D><EFBFBD><EFBFBD><EFBFBD>?|
| `dc_schema` | <20>唳旿皜<E697BF><E79A9C> | 6 | 撌亙<E6928C>A/B/C<>唳旿憭<E697BF><E686AD> |
| `pkb_schema` | 銝芯犖<E88AAF><EFBFBD>摨?| 5 | <20><>讃蝞∠<E89D9E><E288A0><EFBFBD><EFBFBD>霈?|
| `iit_schema` | IIT Manager Agent | 5 | IIT憿寧𤌍<E5AFA7><F0A48C8D><EFBFBD>摰⊥瓲<E28AA5><EFBFBD><E585B6><EFBFBD><EFBFBD><EFBFBD>銵?|
| `admin_schema` | 蝟餌<E89D9F>蝞∠<E89D9E> | 0 | 憸<><E686B8> |
| `rvw_schema` | <20><><EFBFBD>鮋▽ | 0 | 憸<><E686B8> |
| `ssa_schema` | <20><EFBFBD>蝏蠘恣<E8A098><E681A3><EFBFBD> | 0 | 憸<><E686B8> |
| `st_schema` | 蝏蠘恣撌亙<E6928C> | 0 | 憸<><E686B8> |
| `common_schema` | <20><EFBFBD><E79285> | 0 | 憸<><E686B8> |
---
### 2.4 SAE Serverless摨𠉛鍂
**<2A><EFBFBD>蝛粹𡢿**嚗?- **<2A><EFBFBD>蝛粹𡢿ID**嚗䫤cn-beijing:test-airesearch`
- **<2A><EFBFBD>**嚗𡁜<E59A97><F0A1819C>?嚗<><E59A97>鈭穿<E988AD>
**撌脤<E6928C>蝵脣<E89DB5><E884A3><EFBFBD>銵?*嚗?
| 摨𠉛鍂<F0A0899B>滨妍 | <20><EFBFBD>?| 閫<>聢 | 摰硺<E691B0><E7A1BA>?| 蝡臬藁 | <20><><EFBFBD><EFBFBD><EFBFBD> | <20>𨅯<EFBFBD><F0A885AF><EFBFBD>𧋦 |
|---------|------|------|-------|------|---------|---------|
| **python-extraction-test** | <20>?餈鞱<E9A488>銝?| 1<>?GB | 1 | 8000 | `http://172.17.173.66:8000` | v1.0 |
| **nodejs-backend-test** | <20>?餈鞱<E9A488>銝?| 1<>?GB | 1 | 3001 | `http://172.17.173.73:3001` | v1.3 |
| **frontend-nginx-service** | <20>?餈鞱<E9A488>銝?| 0.5<EFBFBD>?GB | 1 | 80 | `http://172.17.173.80:80` | v1.2 |
**<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滨蔭**嚗?
**Node.js<6A>𡒊垢嚗ěodejs-backend-test嚗?*嚗?```bash
NODE_ENV=production
PORT=3001
DATABASE_URL=postgresql://airesearch:Xibahe%40fengzhibo117@pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432/ai_clinical_research?connection_limit=18&pool_timeout=10
# Python敺格<E695BA><E6A0BC>𧑐<E288AA><F0A79190>
EXTRACTION_SERVICE_URL=http://172.17.173.66:8000
# OSS<53>滨蔭
OSS_ACCESS_KEY_ID=LTAI5tB2Dt3NdvBL3G7nYGv7
OSS_ACCESS_KEY_SECRET=1iSN9k39RkApP93QjUhC1DcPIeMG4V
OSS_BUCKET=ai-clinical-research
OSS_ENDPOINT=oss-cn-beijing-internal.aliyuncs.com
OSS_REGION=cn-beijing
# JWT撖<54>𤨎
JWT_SECRET=8a3f9e7c2d1b5a4e6f8c9d0a3b5e7f1c2a4b6c8d0e2f4a6b8c0d2e4f6a8b0c2d4
JWT_EXPIRES_IN=7d
# LLM API Keys
DEEPSEEK_API_KEY=sk-7f8cc37a79fa4799860b38fc7ba2e150
DASHSCOPE_API_KEY=sk-75b4ff29a14a49e79667a331034f3298
# CloseAI<41>滨蔭
CLOSEAI_API_KEY=sk-cu0iepbXYGGx2jc7BqP6ogtSWmP6fk918qV3RUdtGC3Ed1po
CLOSEAI_OPENAI_BASE_URL=https://api.openai-proxy.org/v1
CLOSEAI_CLAUDE_BASE_URL=https://api.openai-proxy.org/anthropic
# Dify<66>滨蔭
DIFY_API_URL=http://localhost/v1
DIFY_API_KEY=dataset-mfvdiKvQ213NvxWm7RoYMN3c
# Postgres-Only<6C><EFBFBD>
QUEUE_TYPE=pgboss
CACHE_TYPE=postgres
# 隡<><E99AA1>敺桐縑<E6A190>滨蔭
WECHAT_CORP_ID=ww6ab493470ab4f377
WECHAT_AGENT_ID=1000002
WECHAT_CORP_SECRET=AZIVxMtoLb0rEszXS81e4dBRl-I9kgTjygIS0cFfENU
```
**<2A>滨垢Nginx嚗Êrontend-nginx-service嚗?*嚗?```bash
BACKEND_SERVICE_HOST=172.17.173.73
BACKEND_SERVICE_PORT=3001
```
**Python敺格<E695BA><E6A0BC><EFBFBD>python-extraction-test嚗?*嚗?```bash
LOG_LEVEL=INFO
TEMP_DIR=/tmp/extraction_service
```
---
### 2.5 OSS撖寡情摮睃<E691AE>
**Bucket靽⊥<E99DBD>**嚗?- **Bucket<65>滨妍**嚗䫤ai-clinical-research`
- **<2A><EFBFBD>**嚗𡁜<E59A97><F0A1819C>?嚗<><E59A97>鈭穿<E988AD>
- **摮睃<E691AE>蝐餃<E89D90>**嚗𡁏<E59A97><F0A1818F><EFBFBD><EFBFBD><EFBFBD>?- **霈輸䔮<E8BCB8><EFBFBD>**嚗𡁶<E59A97><F0A181B6>?- **摮睃<E691AE><E79D83>𦯀<EFBFBD>蝐餃<E89D90>**嚗𡁜<E59A97><F0A1819C>𤾸<EFBFBD>雿坔<E99BBF><E59D94>?- **<EFBFBD><EFBFBD><EFBFBD>Endpoint**嚗䫤oss-cn-beijing-internal.aliyuncs.com`
- **<2A><EFBFBD>Endpoint**嚗䫤oss-cn-beijing.aliyuncs.com`
- **Bucket<65><EFBFBD><EFBFBD><E59A97>蝵𡢅<E89DB5>**嚗䫤ai-clinical-research.oss-cn-beijing-internal.aliyuncs.com`
- **<2A>𥕦遣<F0A595A6>園𡢿**嚗?025-12-16 20:22
**RAM<41><EFBFBD>霈輸䔮<E8BCB8><EFBFBD>**嚗?- **RAM<41><EFBFBD><E586BD>?*嚗䫤oss-bucket-put-object@1991407246109125.onaliyun.com`
- **AccessKeyId**嚗䫤LTAI5tB2Dt3NdvBL3G7nYGv7`
- **AccessKeySecret**嚗䫤1iSN9k39RkApP93QjUhC1DcPIeMG4V`
- **UID**嚗䫤203256565888301026`
- **<2A>𥕦遣<F0A595A6>園𡢿**嚗?025-12-16 20:31:41
<EFBFBD>𩤃<EFBFBD> **摰匧<E691B0>霅血<E99C85>**嚗鋫ccessKey<65><EFBFBD><E88880>煺縑<E785BA><EFBFBD>霂瑕嚉<E79195>𣂷漱<F0A382B7><EFBFBD><EFBFBD>Git隞枏<E99A9E>嚗?
**摮睃<E691AE><E79D83><EFBFBD>?*嚗?- `/uploads/pdfs/` - PDF<44><46>辣銝𠹺<E98A9D>
- `/uploads/docx/` - Word<72><64>﹝銝𠹺<E98A9D>
- `/uploads/txt/` - <20><>𧋦<EFBFBD><F0A78BA6>辣銝𠹺<E98A9D>
- `/exports/` - 撖澆枂<E6BE86><E69E82>辣銝湔𧒄摮睃<E691AE>
---
### 2.6 CLB韐蠘蝸<E8A098><E89DB8><EFBFBD>?
**<2A><EFBFBD>霈輸䔮<E8BCB8><EFBFBD>**嚗?- **<EFBFBD><EFBFBD>IP**嚗䫤8.140.53.236`
- **霈輸䔮<E8BCB8><EFBFBD>**嚗䫤http://8.140.53.236/`
- **<2A><EFBFBD>蝏穃<E89D8F>**嚗䫤https://iit.xunzhengyixue.com/`嚗<>歇憭<E6AD87><E686AD>嚗?- **<2A>𡒊垢<F0A1928A>滚𦛚<E6BB9A>?*嚗䫤172.17.173.80:80`<EFBFBD><EFBFBD>蝡烤ginx嚗?- **<EFBFBD>穃𨯬蝡臬藁**嚗?0嚗𠃍TTP嚗?
---
## <20>𣑐 銝剹<E98A9D><E589B9><EFBFBD>函蔡<E587BD>滚𦛚霂行<E99C82>
### 3.1 PostgreSQL<51>唳旿摨?
- **<2A>函蔡<E587BD>園𡢿**嚗?025-12-24
- **<2A>函蔡<E587BD><EFBFBD>**嚗䫤pg_dump` <20><EFBFBD>撖澆枂 <20>?RDS撖澆<E69296>
- **<2A>唳旿餈<E697BF><EFBFBD>園鵭**嚗𡁶漲12蝘𡜐<E89D98>90MB SQL<51><4C>辣嚗?- **撉諹<E69289><E8ABB9><EFBFBD>?*嚗尠<E59A97> Schema摰峕㟲<E5B395><E39FB2><EFBFBD><EFBFBD><E6A190><EFBFBD><E6B0AC><EFBFBD>蝟餅迤蝖?- **憭<><EFBFBD><E981A2>辣**嚗䫤AIclinicalresearch/rds_init_20251224_154529.sql`嚗?0MB嚗?- **RDS<44>芸𢆡憭<F0A286A1>遢**嚗𡁏<E59A97><F0A1818F><EFBFBD><E4BA99>?<3F><EFBFBD>靽萘<E99DBD>7憭抬<E686AD>
---
### 3.2 <20>滨垢Nginx<6E>滚𦛚
**敶枏<E695B6><E69E8F>函蔡<E587BD><E894A1>𧋦**嚗鯝1.2
**<EFBFBD>𨅯<EFBFBD>靽⊥<EFBFBD>**嚗?- **隞枏<E99A9E><E69E8F>滨妍**嚗䫤ai-clinical_frontend-nginx`
- **<2A>𨅯<EFBFBD><F0A885AF><EFBFBD>𧋦**嚗䫤v1.2` <20><><EFBFBD>敶枏<E695B6><E69E8F>函蔡<E587BD><E894A1>𧋦嚗?- **<EFBFBD>𨅯<EFBFBD>憭批<EFBFBD>**嚗𡁶漲50MB
- **<2A><EFBFBD><E7AE87>𨅯<EFBFBD>**嚗䫤nginx:alpine`
- **<2A><><EFBFBD>園𡢿**嚗?026-01-01
- **<2A>𨅯<EFBFBD><F0A885AF><EFBFBD>**嚗窃ha256:1b444d3d04e0e0e62a50009f165991b7d0192d7e21804aa9a3b3558e5aec7961
**<EFBFBD>函蔡<EFBFBD><EFBFBD>?*嚗?- <20>?撌脫<E6928C><E884AB><EFBFBD>蝵脣<E89DB5>SAE嚗?026-01-01嚗?- <20>?<3F>滚𦛚餈鞱<E9A488><EFBFBD>虜嚗<E8999C><E59A97>蝵穃𧑐<E7A983><F0A79190>嚗冴ttp://172.17.173.80:80嚗?- <20>?隡<><E99AA1>敺桐縑<E6A190><EFBFBD>撉諹<E69289><E8ABB9><EFBFBD>辣撌脤<E6928C>蝵莎<E89DB5>WW_verify_YnhsQBwI0ARnNoG0.txt嚗?
**v1.2<EFBFBD><EFBFBD>𧋦<EFBFBD>湔鰵<EFBFBD><EFBFBD>捆**嚗?- <20>?靽桀<E99DBD>Windows<77><EFBFBD>蝚阡䔮憸矋<E686B8>docker-entrypoint.sh CRLF<4C>䓴F嚗?- <20>?瘛餃<E7989B><EFBFBD><E99AA1>敺桐縑<E6A190><EFBFBD>撉諹<E69289><E8ABB9><EFBFBD>
- <20>𩤃<EFBFBD> <20>函蔡<E587BD>𤾸<EFBFBD>蝵穃𧑐<E7A983><F0A79190>撌脣<E6928C><E884A3><EFBFBD>172.17.173.72 <20>?172.17.173.80
**Git<69><74>辣蝏𤘪<E89D8F>**嚗?```
AIclinicalresearch/frontend-v2/
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> Dockerfile <20>?撌脫<E6928C>鈭二it嚗<74><E59A97><EFBFBD>嗆挾<E59786><E68CBE>遣嚗?<3F><EFBFBD><E98EBF><EFBFBD> .dockerignore <20>?撌脫<E6928C>鈭二it嚗<74><E59A97><EFBFBD>𡝗<EFBFBD>撱箔<E692B1>銝𧢲<E98A9D>嚗?<3F><EFBFBD><E98EBF><EFBFBD> nginx.conf <20>?撌脫<E6928C>鈭二it嚗𠃊ginx<6E>滨蔭嚗?<3F><EFBFBD><E98EBF><EFBFBD> docker-entrypoint.sh <20>?撌脫<E6928C>鈭二it嚗<74><EFBFBD><EFBFBD><E588BB>穿<EFBFBD>Unix<69><EFBFBD>蝚佗<E89D9A>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> public/
<20><EFBFBD><E5A999><EFBFBD> WW_verify_YnhsQBwI0ARnNoG0.txt <20>?隡<><E99AA1>敺桐縑<E6A190><EFBFBD>撉諹<E69289><E8ABB9><EFBFBD>
```
---
### 3.3 Node.js<6A>𡒊垢<F0A1928A>滚𦛚
**敶枏<E695B6><E69E8F>函蔡<E587BD><E894A1>𧋦**嚗鯝1.3
**<2A>𨅯<EFBFBD>靽⊥<E99DBD>**嚗?- **隞枏<E99A9E><E69E8F>滨妍**嚗䫤backend-service`
- **<2A>𨅯<EFBFBD><F0A885AF><EFBFBD>𧋦**嚗䫤v1.3` <20><><EFBFBD>撌脤<E6928C>蝵莎<E89DB5>
- **<2A>𨅯<EFBFBD>憭批<E686AD>**嚗?38MB (<28>讠憬<E8AEA0>?~186MB)
- **<2A><EFBFBD><E7AE87>𨅯<EFBFBD>**嚗䫤node:22-alpine`
- **<2A><><EFBFBD>園𡢿**嚗?025-12-25 18:43
- **<2A><>遣蝑𣇉裦**嚗𡁏㺿餈𤤿<E9A488><F0A4A4BF><EFBFBD>B嚗<42>𧋦<EFBFBD><EFBFBD>霂?Docker<65><EFBFBD>嚗?- **<EFBFBD>𨅯<EFBFBD><EFBFBD><EFBFBD>**嚗窃ha256:a4ffb61c15af1cd1ed9de187b4464a1aab773918e5b41b4df5b8ad96514f9941
**<EFBFBD><EFBFBD><EFBFBD>舀沲<EFBFBD>?*嚗?- **Node.js<6A><73>𧋦**嚗?2.x
- **Prisma<6D><61>𧋦**嚗?.17.0
- **ORM**嚗䥪risma嚗<61>𣈲<EFBFBD><F0A388B2><EFBFBD>Schema嚗?- **Web獢<62>沲**嚗鎄astify
- **<2A><EFBFBD>蝟餌<E89D9F>**嚗䮝g-boss嚗㇊ostgres-Only<6C><EFBFBD>嚗?- **蝻枏<E89DBB>蝟餌<E89D9F>**嚗䥪ostgreSQL嚗<4C>𤜯隞Οedis嚗?
**<2A>函蔡<E587BD><EFBFBD>?*嚗?- <20>?撌脫<E6928C><E884AB><EFBFBD>蝵脣<E89DB5>SAE嚗?025-12-25 18:55嚗?- <20>?<3F>滚𦛚餈鞱<E9A488><EFBFBD>虜嚗<E8999C><E59A97>蝵穃𧑐<E7A983><F0A79190>嚗冴ttp://172.17.173.73:3001嚗?- <20>?<3F>亙熒璉<E78692><E79289>仿<EFBFBD><EFBFBD>
**Git<69><74>辣蝏𤘪<E89D8F>**嚗?```
AIclinicalresearch/backend/
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> Dockerfile <20>?撌脫<E6928C>鈭二it嚗<74>㺿餈𤤿<E9A488><F0A4A4BF><EFBFBD>B嚗𡁏𧋦<F0A1818F><EFBFBD>霂?Docker<65><EFBFBD>嚗?<3F><EFBFBD><E98EBF><EFBFBD> .dockerignore <20>?撌脫<E6928C>鈭二it嚗<74><E59A97><EFBFBD>𡝗<EFBFBD>撱箔<E692B1>銝𧢲<E98A9D>嚗?<3F><EFBFBD><E98EBF><EFBFBD> prisma/schema.prisma <20>?撌脣<E6928C>甇充DS嚗?2銝芣芋<E88AA3>?30+<2B>喟頂摮埈挾嚗?<3F><EFBFBD><E5A999><EFBFBD> tsconfig.json <20>?撌脖<E6928C><E88496><EFBFBD><E59094>㘾膄瘚贝<E7989A><E8B49D><EFBFBD>辣嚗?```
---
### 3.4 Python敺格<E695BA><E6A0BC>?
**敶枏<E695B6><E69E8F>函蔡<E587BD><E894A1>𧋦**嚗鯝1.0
**<2A>𨅯<EFBFBD>靽⊥<E99DBD>**嚗?- **隞枏<E99A9E><E69E8F>滨妍**嚗䫤python-extraction`
- **<2A>𨅯<EFBFBD><F0A885AF><EFBFBD>𧋦**嚗䫤v1.0`
- **<2A>𨅯<EFBFBD>憭批<E686AD>**嚗?.12GB
- **<2A><EFBFBD><E7AE87>𨅯<EFBFBD>**嚗䫤python:3-slim`
- **<2A><><EFBFBD>園𡢿**嚗?025-12-24
**<EFBFBD><EFBFBD><EFBFBD>**嚗?- <20>?**PDF<44><46>𧋦<EFBFBD>𣂼<EFBFBD>**嚗䥪yMuPDF 1.26.7
- <20>?**Docx<63><78><EFBFBD>𣂼<EFBFBD>**嚗鐝ammoth + python-docx
- <20>?**<2A>唳旿皜<E697BF><E79A9C>嚗㇄C撌亙<E6928C>嚗?*嚗䮝andas 2.0+ / numpy 1.24+ / polars 0.19+
- <20>?**霂剛<E99C82><EFBFBD>瘚?*嚗饝angdetect
- <20>?**Nougat OCR**嚗𡁜歇蝘駁膄嚗<E88684><E59A97>撠誯<E692A0><E8AAAF>?.5GB嚗?
**<2A>函蔡<E587BD><EFBFBD>?*嚗?- <20>?撌脤<E6928C>蝵脣<E89DB5>SAE嚗?025-12-24嚗?- <20>?摨𠉛鍂餈鞱<E9A488><EFBFBD>虜嚗?銝泡orker餈𤤿<E9A488>嚗?- <20>?<3F><><EFBFBD>霈輸䔮<E8BCB8><EFBFBD>嚗䫤http://172.17.173.66:8000`
- <20>?<3F>亙熒璉<E78692><E79289>仿<EFBFBD><EFBFBD>
**Git<69><74>辣蝏𤘪<E89D8F>**嚗?```
AIclinicalresearch/extraction_service/
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> Dockerfile <20>?撌脫<E6928C>鈭二it嚗<74><E59A97><EFBFBD>嗆挾<E59786><E68CBE>遣 + <20><EFBFBD>鈭烐<E988AD>嚗?<3F><EFBFBD><E98EBF><EFBFBD> .dockerignore <20>?撌脫<E6928C>鈭二it嚗<74><E59A97><EFBFBD>𡝗<EFBFBD>撱箔<E692B1>銝𧢲<E98A9D>嚗?<3F><EFBFBD><E5A999><EFBFBD> requirements-prod.txt <20>?撌脫<E6928C>鈭二it嚗<74>移蝞<E7A7BB>靘肽<E99D98><E882BD>𡑒”嚗?```
---
## <20><> <20><EFBFBD><E49C98><EFBFBD>蝵脣<E89DB5><E884A3>脰扇敶?
### 2026-01-01嚗<31><E59A97>蝡眠1.2<EFBFBD>函蔡 - 隡<><E99AA1>敺桐縑<E6A190><EFBFBD>撉諹<E69289>嚗争<E59A97>
#### <20>函蔡<E587BD>峕艶
- **<2A><EFBFBD>**嚗帋蛹隡<E89BB9><E99AA1>敺桐縑<E6A190><EFBFBD><E4BA99>滨蔭<E6BBA8>臭縑<E887AD><EFBFBD>嚗屸<E59A97><EFBFBD><EFBFBD>滨垢<E6BBA8>寧𤌍敶閖<E695B6>蝵脣<E89DB5><E884A3><EFBFBD><EFBFBD><E99C82>隞?- **<2A><EFBFBD>**嚗冴ttps://iit.xunzhengyixue.com/
- **撉諹<E69289><E8ABB9><EFBFBD>辣**嚗阳W_verify_YnhsQBwI0ARnNoG0.txt
#### <20>函蔡餈<E894A1><E9A488>銝𡡞䔮憸䀝耨憭?1. **<2A><EFBFBD><E6A185>𤑳緵**嚗𡁜<E59A97>蝡眠1.1<EFBFBD>函蔡憭梯揖嚗<EFBFBD><EFBFBD>典鍳<EFBFBD><EFBFBD>蝡见朖<EFBFBD><EFBFBD><EFBFBD>? - <20>?<3F>啗情嚗锭AE<41><EFBFBD>銝箇征嚗<E5BE81><EFBFBD>函𠶖<E587BD><F0A0B696>遬蝷?撏拇<E6928F><E68B87><EFBFBD><E39A9A><EFBFBD>?
- <20>?<3F>躰秤嚗䫤exec /docker-entrypoint.sh: no such file or directory`
2. **<EFBFBD>寞𧋦<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**嚗? - <20><> `docker-entrypoint.sh` 雿輻鍂鈭<E98D82>indows<77><EFBFBD>蝚佗<E89D9A>CRLF `\r\n`嚗? - <20><> Linux摰孵膥<E5ADB5><E886A5>ash閫<68><E996AB><EFBFBD><EFBFBD>瘜閗<E7989C><E99697>青RLF<4C><EFBFBD><E6BE86><EFBFBD><EFBFBD><EFBFBD>? - <20><> 餈蹱糓銝<E7B393>銝芸<E98A9D><E88AB8><EFBFBD>頝典像<E585B8><EFBFBD><E595A3>煾䔮憸?
3. **閫<><E996AB><EFBFBD><EFBFBD>**嚗? - <20>?撠?`docker-entrypoint.sh` 頧祆揢銝摻nix<69><EFBFBD>蝚佗<E89D9A>LF `\n`嚗? - <20>?雿輻鍂PowerShell<6C>賭誘<E8B3AD><EFBFBD>頧祆揢
- <20>?<3F>砍𧑐Docker瘚贝<E7989A>撉諹<E69289><E8ABB9><EFBFBD>
4. **<EFBFBD>𨅯<EFBFBD><EFBFBD><EFBFBD>遣銝擧綫<EFBFBD>?*嚗? - <20>?<3F>齿鰵<E9BDBF><E9B0B5><EFBFBD>𨅯<EFBFBD><F0A885AF><EFBFBD>扇銝漓1.2嚗?3.7蝘𡜐<EFBFBD>
- <20>?<3F><EFBFBD><E588B8><EFBFBD>ACR<43>𣂼<EFBFBD>嚗Ê̌igest: 1b444d3d...嚗? - <20>?<3F>𨅯<EFBFBD><F0A885AF><EFBFBD>鉄隡<E98984><E99AA1>敺桐縑撉諹<E69289><E8ABB9><EFBFBD>
5. **SAE<41>函蔡<E587BD>𣂼<EFBFBD>**嚗? - <20>?<3F>函蔡<E587BD>𨅯<EFBFBD><F0A885AF><EFBFBD>𧋦嚗鯝1.2
- <20>?<3F><EFBFBD><E887AC><EFBFBD><E3979B>滨蔭嚗䫤BACKEND_SERVICE_HOST=172.17.173.73`, `BACKEND_SERVICE_PORT=3001`
- <20>?摰孵膥<E5ADB5>臬𢆡甇<F0A286A1>虜嚗<E8999C><E59A97>摨瑟<E691A8><E7919F>仿<EFBFBD><EFBFBD>
- <20>?<3F><EFBFBD>蝵穃𧑐<E7A983><F0A79190>嚗䫤http://172.17.173.80:80`
- <20>𩤃<EFBFBD> IP<49><EFBFBD><E595A3><EFBFBD>嚗?72.17.173.72 <20>?172.17.173.80
#### <20><><EFBFBD><EFBFBD><E888AA><EFBFBD><EFBFBD>
1. **Windows<77><EFBFBD>蝚阡䔮憸?*嚗? - <20><EFBFBD>嚗鎭it<69>汾indows銝𢠃<E98A9D>霈方蓮<E696B9>蛹CRLF
-<><E996AB>嚗帋蝙<E5B88B>?`.gitattributes` <20>𡝗<EFBFBD><F0A19D97>刻蓮<E588BB>? - 撉諹<E69289>嚗䫤(Get-Content file -Raw) -match "\`r\`n"`
2. **摰孵膥靚<E886A5><E99D9A><EFBFBD><EFBFBD>撌?*嚗? - <20>砍𧑐瘚贝<E7989A>嚗䫤docker run --rm -e KEY=VALUE image:tag`
- <20><EFBFBD><E4BAA6><EFBFBD>嚗䫤docker logs container_name`
- 餈𥕦<E9A488>摰孵膥嚗䫤docker exec -it container sh`
3. **SAE<41>函蔡<E587BD><E894A1>雿喳<E99BBF>頝?*嚗? - <20><EFBFBD><E887AC><EFBFBD><EFBFBD><EFBFBD>滨蔭摰峕㟲
- <20>砍𧑐<E7A08D><F0A79190><EFBFBD><EFBFBD><E99C82><EFBFBD>誩虾甇<E899BE>虜餈鞱<E9A488>
- <20>函蔡<E587BD>穉P<E7A989><EFBFBD><E888AA><EFBFBD>嚗屸<E59A97><EFBFBD><EFBFBD><EFBFBD>韏𡝗<E99F8F><F0A19D97><EFBFBD><E288A0>滨蔭
#### <20>函蔡蝏𤘪<E89D8F>
- <20>?<3F>滨垢<E6BBA8>滚𦛚v1.2<EFBFBD>函蔡<EFBFBD>𣂼<EFBFBD>
- <20>?隡<><E99AA1>敺桐縑撉諹<E69289><E8ABB9><EFBFBD><EFBFBD>航挪<E888AA>?- <20>?蝟餌<E89D9F><E9A48C><EFBFBD>餈鞱<E9A488><EFBFBD>
- <20>𩤃<EFBFBD> <20><><EFBFBD><EFBFBD>𧶏<EFBFBD><F0A7B68F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>撌脫凒<E884AB><EFBFBD>靘肽<E99D98><E882BD>滨垢<E6BBA8><E59EA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E996AC><EFBFBD><EFBFBD>蝵?
---
### 2025-12-25嚗<35><E59A97><EFBFBD><EFBFBD>蝵脫<E89DB5><E884AB><EFBFBD>𠯫嚗咓<E59A97>?
#### 銝𠰴<E98A9D>嚗鐭ode.js<6A>𡒊垢<F0A1928A>函蔡
- <20>?Node.js<6A>𡒊垢<F0A1928A>𣂼<EFBFBD><F0A382BC>函蔡<E587BD>訕AE嚗ǒ1.3嚗?- <20>?靽桀<E99DBD>Alpine Linux bash頝臬<E9A09D><E887AC><EFBFBD>嚗?bin/bash <20>?/bin/sh嚗?- <20>?靽桀<E99DBD>config<69><EFBFBD>蝻箏仃<E7AE8F><EFBFBD>嚗㇄ockerfile銵亙<E98AB5>COPY config嚗?- <20>?靽桀<E99DBD>pino-pretty<74>煺漣<E785BA><EFBFBD><E887AC><EFBFBD><EFBFBD>辺隞嗅鍳<E59785><EFBFBD>
- <20>?靽桀<E99DBD>healthCheck ES Module<6C>澆捆<E6BE86><EFBFBD>require <20>?import嚗?- <20>?<3F><><EFBFBD>撘撇WT撖<54>𤨎嚗?4雿滚<E99BBF><E6BB9A><EFBFBD><E5899B><EFBFBD>
#### 銝剖<E98A9D>嚗𡁜<E59A97>蝡烤ginx<6E>函蔡
- <20>?<3F>滨垢Nginx<6E>𣂼<EFBFBD><F0A382BC>函蔡<E587BD>訕AE嚗ǒ1.0嚗?- <20>?<3F>滨垢<E6BBA8>滚𦛚餈鞱<E9A488><EFBFBD>虜嚗<E8999C><E59A97>蝵穃𧑐<E7A983><F0A79190>嚗冴ttp://172.17.173.72:80嚗?- <20>?<3F>滨垢<E6BBA8><EFBFBD>蝡臭誨<E887AD><E8AAA8><EFBFBD><EFBFBD><E99C82><EFBFBD>
- <20>?摰峕㟲<E5B395>曇楝瘚贝<E7989A><E8B49D><EFBFBD><EFBFBD><E59A97>蝡胼<E89DA1><E883BC>𡒊垢<F0A1928A>埝㺭<E59F9D><EFBFBD>嚗?
#### 銝见<E98A9D>嚗𡁶㴓憓<E3B493><E68693><EFBFBD>譍耨憭滢<E686AD>CLB<4C>滨蔭
- <20>?<3F>𤑳緵撌亙<E6928C>C<EFBFBD>?憭批<E686AD><E689B9>賣𥁒<E8B3A3><EFBFBD>connect ECONNREFUSED 127.0.0.1:8000嚗?- <20>?<3F>埝䰻撟嗡耨憭滚<E686AD><E6BB9A>桅䔮憸矋<E686B8><E79F8B><EFBFBD><E887AC><EFBFBD><E3979B><EFBFBD>霂? - 隞<><E99A9E>雿輻鍂嚗䫤EXTRACTION_SERVICE_URL`
- <20>躰秤<E8BAB0>滨蔭嚗䫤PYTHON_SERVICE_URL`
-<><EFBFBD>滨蔭嚗䫤EXTRACTION_SERVICE_URL=http://172.17.173.66:8000`
- <20>?Node.js<6A>𡒊垢<F0A1928A>齿鰵<E9BDBF>函蔡嚗䬠P<E4ACA0><EFBFBD><E595A3>湔鰵銝綽<E98A9D>http://172.17.173.73:3001
- <20>?<3F>湔鰵<E6B994>滨垢Nginx<6E><EFBFBD><E887AC><EFBFBD>嚗鋳ACKEND_SERVICE_HOST=172.17.173.73
- <20>?<3F>滨蔭CLB韐蠘蝸<E8A098><E89DB8><EFBFBD><EFBFBD><E58981><EFBFBD><E79195><EFBFBD>霈輸䔮<E8BCB8><EFBFBD>嚗冴ttp://8.140.53.236/
- <20>?撌亙<E6928C>C<EFBFBD>?憭批<E686AD><E689B9><EFBFBD><E8B3A2><EFBFBD>霂閖<E99C82><EFBFBD>
- <20>?<3F><>讃蝑𥟇䰻璅<E79285>瘚贝<E7989A><E8B49D><EFBFBD>
- <20>?摰峕㟲蝟餌<E89D9F><E9A48C>函蔡<E587BD>𣂼<EFBFBD>撉諹<E69289> <20><>
---
### 2025-12-24嚗<34><E59A97>憪钅<E686AA>蝵莎<E89DB5>
- <20>?PostgreSQL<51>唳旿摨㯄<E691A8>蝵脣<E89DB5><E884A3>?- <20>?<3F>滨垢Nginx Docker<65>𨅯<EFBFBD><F0A885AF><EFBFBD>遣撟嗆綫<E59786><E7B6AB>秐ACR
- <20>?Python敺格<E695BA><E6A0BC>ocker<65>𨅯<EFBFBD><F0A885AF><EFBFBD>遣撟嗆綫<E59786><E7B6AB>秐ACR
- <20>?Python敺格<E695BA><E6A0BC><EFBFBD><E28AA5><EFBFBD>蝵脣<E89DB5>SAE嚗<45><E59A97>蝵穃𧑐<E7A983><F0A79190>嚗?72.17.173.66:8000嚗?- <20>?閫<><E996AB>ACR<43>𨅯<EFBFBD><F0A885AF><EFBFBD><E58CA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E59A97>蝵桅<E89DB5><E6A185><EFBFBD>摨栞恕霂<E68195><E99C82>
- <20>?Node.js<6A>𡒊垢Prisma<6D><EFBFBD><E6BB9A>峕郊摰峕<E691B0>嚗?2銝芣芋<E88AA3><EFBFBD><E9A1B5>见𢆡銵亙<E98AB5>30+<2B>喟頂摮埈挾嚗?- <20>?Node.js<6A>𡒊垢TypeScript蝻𤥁<E89DBB>靽桀<E99DBD>摰峕<E691B0><EFBFBD>耨憭?00+<2B>躰秤<E8BAB0>?<3F>躰秤嚗?- <20>?Node.js<6A>𡒊垢Docker<65>𨅯<EFBFBD><F0A885AF><EFBFBD><EFBFBD>𣂼<EFBFBD>嚗?38MB嚗峕㺿餈𤤿<E9A488><F0A4A4BF><EFBFBD>B嚗?- <20>?Node.js<6A>𡒊垢<F0A1928A>𨅯<EFBFBD><F0A885AF><EFBFBD><E588B8>秐ACR嚗ǒ1.0嚗?
---
> **<2A>鞟內**嚗𡁏𧋦<F0A1818F><F0A78BA6>﹝霈啣<E99C88>SAE<41>滚𦛚<E6BB9A><EFBFBD><E587BD><EFBFBD><EFBFBD><EFBFBD>摰䂿𠶖<E482BF><F0A0B696><EFBFBD>瘥𤩺活<F0A4A9BA>函蔡<E587BD>𤾸<EFBFBD>憿餅凒<E9A485><EFBFBD>
> **<2A><><EFBFBD>擧凒<E693A7>?*嚗?026-01-01 14:00
> **敶枏<E695B6><E69E8F><EFBFBD>𧋦**嚗𡁜<E59A97>蝡眠1.2 | <20>𡒊垢v1.3 | Python v1.0 | PostgreSQL 15