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%)
460 lines
11 KiB
Markdown
460 lines
11 KiB
Markdown
# <20>唳旿摨𤘪沲<F0A498AA><E6B2B2>秩<EFBFBD>?
|
||
|
||
> **<2A>𥕦遣<F0A595A6>交<EFBFBD>嚗?* 2025-11-06
|
||
> **<2A><>﹝<EFBFBD>桃<EFBFBD>嚗?* 瞉<><E79E89><EFBFBD>唳旿摨㯄<E691A8>蝵脫䲮撘誩<E69298><E8AAA9>嗆<EFBFBD>
|
||
|
||
---
|
||
|
||
## <20><> <20>詨<EFBFBD>瞉<EFBFBD><E79E89>
|
||
|
||
### <20>?<3F>冽<EFBFBD><E586BD>芸楛<E88AB8>祉<EFBFBD><E7A589><EFBFBD>ostgreSQL<51>唳旿摨橒<E691A8>
|
||
|
||
**<EFBFBD>喲睸鈭见<EFBFBD>嚗?*
|
||
1. <20>?PostgreSQL<51>舫<EFBFBD>朞<EFBFBD>Docker<65>函蔡<E587BD><E894A1><EFBFBD>`docker-compose.yml`嚗?
|
||
2. <20>?餈蹱糓<E8B9B1>券★<E588B8>桃<EFBFBD><E6A183>祉<EFBFBD><E7A589>唳旿摨橒<E691A8>銝齿糓Dify<66>?
|
||
3. <20>?Dify<66>㕑䌊撌勗<E6928C><E58B97>函𡠺蝡讠<E89DA1><E8AEA0>唳旿摨橒<E691A8><E6A992>灼dify/docker/`<60>桀<EFBFBD>銝页<E98A9D>
|
||
4. <20>?<3F>其<EFBFBD><E585B6><EFBFBD>閬<EFBFBD><E996AC><EFBFBD>典<EFBFBD>鋆<EFBFBD>ostgreSQL嚗㷉ocker隡朞䌊<E69C9E>典<EFBFBD>撱?
|
||
|
||
---
|
||
|
||
## <20>閦 Docker<65>函蔡霂行<E99C82>
|
||
|
||
### docker-compose.yml<6D>滨蔭
|
||
|
||
```yaml
|
||
# 雿滨蔭嚗鋫Iclinicalresearch/docker-compose.yml
|
||
|
||
services:
|
||
# PostgreSQL <20>唳旿摨?
|
||
postgres:
|
||
image: postgres:15-alpine # 雿輻鍂摰䀹䲮PostgreSQL<51>𨅯<EFBFBD>
|
||
container_name: ai-clinical-postgres
|
||
environment:
|
||
POSTGRES_DB: ai_clinical_research # <20>唳旿摨枏<E691A8>
|
||
POSTGRES_USER: postgres # <20>冽<EFBFBD><E586BD>?
|
||
POSTGRES_PASSWORD: postgres123 # 撖<><E69296>
|
||
ports:
|
||
- "5432:5432" # 蝡臬藁<E887AC>惩<EFBFBD>
|
||
volumes:
|
||
- postgres_data:/var/lib/postgresql/data # <20>唳旿<E594B3><E697BF><EFBFBD><EFBFBD>?
|
||
networks:
|
||
- ai-clinical-network
|
||
healthcheck:
|
||
test: ["CMD-SHELL", "pg_isready -U postgres"]
|
||
interval: 10s
|
||
timeout: 5s
|
||
retries: 5
|
||
|
||
# Redis 蝻枏<E89DBB>
|
||
redis:
|
||
image: redis:7-alpine
|
||
container_name: ai-clinical-redis
|
||
ports:
|
||
- "6379:6379"
|
||
volumes:
|
||
- redis_data:/data
|
||
networks:
|
||
- ai-clinical-network
|
||
|
||
volumes:
|
||
postgres_data: # PostgreSQL<51>唳旿<E594B3>瘀<EFBFBD><E79880>唳旿<E594B3><E697BF><EFBFBD><EFBFBD>硋<EFBFBD><E7A18B>剁<EFBFBD>
|
||
redis_data: # Redis<69>唳旿<E594B3>?
|
||
```
|
||
|
||
---
|
||
|
||
## <20><> <20>臬𢆡瘚<F0A286A1><E7989A>
|
||
|
||
### 銝<><E98A9D>桀鍳<E6A180>刻<EFBFBD><E588BB>穿<EFBFBD>銝<EFBFBD><E98A9D>桀鍳<E6A180>?bat嚗?
|
||
|
||
```batch
|
||
[甇仿炊2/7] <20>臬𢆡PostgreSQL<51>朙edis摰孵膥
|
||
docker-compose up -d
|
||
|
||
餈嗘葵<EFBFBD>賭誘隡𡄯<EFBFBD>
|
||
1. <20>芸𢆡銝贝蝸PostgreSQL 15<31>𨅯<EFBFBD>嚗<EFBFBD><E59A97><EFBFBD>𨀣𧋦<F0A880A3>唳瓷<E594B3>㚁<EFBFBD>
|
||
2. <20>𥕦遣PostgreSQL摰孵膥
|
||
3. <20>𥕦遣Redis摰孵膥
|
||
4. <20>𥕦遣<F0A595A6>唳旿<E594B3>瘀<EFBFBD>postgres_data嚗厩鍂鈭擧<E988AD>銋<EFBFBD><E98A8B>摮睃<E691AE>
|
||
5. <20>臬𢆡摰孵膥撟嗅銁<E59785>𤾸蝱餈鞱<E9A488>
|
||
```
|
||
|
||
**<EFBFBD>其<EFBFBD><EFBFBD><EFBFBD>閬<EFBFBD><EFBFBD><EFBFBD>典<EFBFBD>鋆<EFBFBD>ostgreSQL嚗?*
|
||
- <20>?Docker隡朞䌊<E69C9E>典<EFBFBD>撱箏<E692B1>蝞∠<E89D9E>
|
||
- <20>?<3F>唳旿摮睃<E691AE><E79D83>求ocker<65>唳旿<E594B3>瑚葉嚗䔶<E59A97>隡帋腺憭?
|
||
- <20>?<3F>臭誑<E887AD>朞<EFBFBD>`localhost:5432`餈墧𦻖
|
||
|
||
---
|
||
|
||
## <20><>儭?<3F>唳旿摨栞<E691A8><E6A09E>乩縑<E4B9A9>?
|
||
|
||
### 餈墧𦻖<E5A2A7>滨蔭
|
||
|
||
**<EFBFBD>唳旿摨栞<EFBFBD><EFBFBD>亙<EFBFBD>蝚虫葡嚗㇄ATABASE_URL嚗㚁<EFBFBD>**
|
||
```
|
||
postgresql://postgres:postgres123@localhost:5432/ai_clinical_research
|
||
```
|
||
|
||
**<EFBFBD><EFBFBD>圾嚗?*
|
||
- **<2A>讛悅嚗?* postgresql://
|
||
- **<2A>冽<EFBFBD><E586BD>㵪<EFBFBD>** postgres
|
||
- **撖<><E69296>嚗?* postgres123
|
||
- **銝餅㦤嚗?* localhost嚗㇄ocker<65>惩<EFBFBD><E683A9>唳𧋦<E594B3>堆<EFBFBD>
|
||
- **蝡臬藁嚗?* 5432
|
||
- **<2A>唳旿摨枏<E691A8>嚗?* ai_clinical_research
|
||
|
||
### <20>𡒊垢<F0A1928A>滨蔭嚗Ê̄ackend/.env嚗?
|
||
|
||
```bash
|
||
# <20>唳旿摨栞<E691A8><E6A09E>?
|
||
DATABASE_URL=postgresql://postgres:postgres123@localhost:5432/ai_clinical_research
|
||
|
||
# 餈嗘葵餈墧𦻖<E5A2A7><F0A6BB96>糓<EFBFBD>刻䌊撌梁<E6928C>PostgreSQL嚗䔶<E59A97><E494B6>浴ify<66><79><EFBFBD>
|
||
```
|
||
|
||
---
|
||
|
||
## <20><> 銝支葵<E694AF>祉<EFBFBD><E7A589><EFBFBD>㺭<EFBFBD>桀<EFBFBD>蝟餌<E89D9F>
|
||
|
||
### 蝟餌<E89D9F>撖寞<E69296>
|
||
|
||
| 憿寧𤌍 | <20>函<EFBFBD><E587BD>唳旿摨?| Dify<66><79>㺭<EFBFBD>桀<EFBFBD> |
|
||
|------|----------|-------------|
|
||
| **雿滨蔭** | `AIclinicalresearch/docker-compose.yml` | `dify/docker/docker-compose.yml` |
|
||
| **摰孵膥<E5ADB5>?* | `ai-clinical-postgres` | `dify-db`嚗<EFBFBD><EFBFBD>瘚页<EFBFBD> |
|
||
| **蝡臬藁** | `5432` | <20>航<EFBFBD><E888AA>畔5433`<60>碶<EFBFBD><E7A2B6>湧蠧 |
|
||
| **<2A>唳旿摨枏<E691A8>** | `ai_clinical_research` | `dify` |
|
||
| **<2A>券<EFBFBD>?* | 摮睃<E691AE><E79D83>券★<E588B8>桃<EFBFBD>銝𡁜𦛚<F0A1819C>唳旿 | 摮睃<E691AE>Dify<66><79>㺭<EFBFBD>?|
|
||
| **霈輸䔮<E8BCB8>孵<EFBFBD>** | <20>湔𦻖Prisma霈輸䔮 | <20>朞<EFBFBD>Dify API霈輸䔮 |
|
||
|
||
### <20>嗆<EFBFBD><E59786>?
|
||
|
||
```
|
||
<EFBFBD>𢞖<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
|
||
<EFBFBD>? AIclinicalresearch憿寧𤌍 <20>?
|
||
<EFBFBD>? <20>?
|
||
<EFBFBD>? <20>𢞖<EFBFBD><F0A29E96><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <20>𢞖<EFBFBD><F0A29E96><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <20>?
|
||
<EFBFBD>? <20>? Backend <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? PostgreSQL <20>? <20>?
|
||
<EFBFBD>? <20>? (Node.js) <20>?SQL <20>? (Docker) <20>? <20>?
|
||
<EFBFBD>? <20>? <20>? <20>? <20>? <20>?
|
||
<EFBFBD>? <20>? Prisma <20>? <20>?Port: 5432 <20>? <20>?
|
||
<EFBFBD>? <20>婙<EFBFBD><E5A999><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <20>婙<EFBFBD><E5A999><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <20>?
|
||
<EFBFBD>? <20>? <20>?
|
||
<EFBFBD>? <20>?HTTP API <20>?
|
||
<EFBFBD>? <20>? <20>?
|
||
<EFBFBD>? <20>𢞖<EFBFBD><F0A29E96><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <20>?
|
||
<EFBFBD>? <20>? Dify <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>> Dify<66>芸楛<E88AB8><E6A59B>ostgreSQL <20>?
|
||
<EFBFBD>? <20>? (Docker) <20>? (摰<><E691B0><EFBFBD>祉<EFBFBD>) <20>?
|
||
<EFBFBD>? <20>婙<EFBFBD><E5A999><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <20>?
|
||
<EFBFBD>? <20>?
|
||
<EFBFBD>婙<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
|
||
```
|
||
|
||
---
|
||
|
||
## <20><> 敶枏<E695B6><E69E8F>唳旿摨栞”蝏𤘪<E89D8F>
|
||
|
||
### <20>函<EFBFBD>PostgreSQL銝剔<E98A9D>銵?
|
||
|
||
```sql
|
||
-- <20>交<EFBFBD>嚗颹ackend/prisma/schema.prisma
|
||
|
||
-- <20>冽<EFBFBD>璅∪<E79285>
|
||
users -- <20>冽<EFBFBD>銵?
|
||
|
||
-- 憿寧𤌍璅∪<E79285>
|
||
projects -- 憿寧𤌍銵?
|
||
|
||
-- AI<41>桃<EFBFBD>璅∪<E79285>
|
||
conversations -- 撖寡<E69296>銵?
|
||
messages -- 瘨<><E798A8>銵?
|
||
general_conversations -- <20>𡁶鍂撖寡<E69296>銵?
|
||
general_messages -- <20>𡁶鍂瘨<E98D82><E798A8>銵?
|
||
|
||
-- <20>亥<EFBFBD>摨𤘪芋<F0A498AA>?
|
||
knowledge_bases -- <20>亥<EFBFBD>摨栞”
|
||
documents -- <20><>﹝銵?
|
||
|
||
-- <20>孵<EFBFBD><E5ADB5><EFBFBD>芋<EFBFBD>梹<EFBFBD>Phase 3嚗?
|
||
batch_tasks -- <20>孵<EFBFBD><E5ADB5><EFBFBD>遙<EFBFBD>∟”
|
||
batch_results -- <20>孵<EFBFBD><E5ADB5><EFBFBD><EFBFBD><EFBFBD>𡏭”
|
||
task_templates -- 隞餃𦛚璅⊥踎銵?
|
||
|
||
-- 蝔蹂辣摰⊥䰻璅∪<E79285>
|
||
review_tasks -- 蝔蹂辣摰⊥䰻隞餃𦛚銵?
|
||
|
||
-- 餈鞱𨯫蝞∠<E89D9E>璅∪<E79285>
|
||
admin_logs -- 蝞∠<E89D9E><E288A0>䀹𠯫敹𡑒”
|
||
```
|
||
|
||
**<2A>餉恣嚗?6撘㰘”嚗<E2809D><E59A97><EFBFBD>典銁<E585B8>刻䌊撌梁<E6928C>PostgreSQL銝准<E98A9D>?*
|
||
|
||
---
|
||
|
||
## <20>圲 撣貊鍂<E8B28A>滢<EFBFBD>
|
||
|
||
### <20>亦<EFBFBD>Docker摰孵膥<E5ADB5>嗆<EFBFBD>?
|
||
|
||
```bash
|
||
# <20>亦<EFBFBD><E4BAA6><EFBFBD><EFBFBD>匧捆<E58CA7>?
|
||
docker ps
|
||
|
||
# 摨磰砲<E7A3B0>賜<EFBFBD><E8B39C>堆<EFBFBD>
|
||
# ai-clinical-postgres (PostgreSQL)
|
||
# ai-clinical-redis (Redis)
|
||
```
|
||
|
||
### 餈墧𦻖<E5A2A7>訐ostgreSQL
|
||
|
||
**<2A>寞<EFBFBD>1嚗帋蝙<E5B88B>求ocker<65>賭誘**
|
||
```bash
|
||
# 餈𥕦<E9A488>PostgreSQL摰孵膥
|
||
docker exec -it ai-clinical-postgres psql -U postgres -d ai_clinical_research
|
||
|
||
# <20>嗅<EFBFBD><E59785>臭誑<E887AD>扯<EFBFBD>SQL嚗?
|
||
\dt # <20>亦<EFBFBD><E4BAA6><EFBFBD><EFBFBD>㕑”
|
||
\d users # <20>亦<EFBFBD>users銵函<E98AB5><E587BD>?
|
||
SELECT * FROM users LIMIT 10;
|
||
```
|
||
|
||
**<2A>寞<EFBFBD>2嚗帋蝙<E5B88B>冽㺭<E586BD>桀<EFBFBD>摰X<E691B0>蝡?*
|
||
- **DBeaver** / **pgAdmin** / **DataGrip** / **Navicat**
|
||
- 餈墧𦻖靽⊥<E99DBD>嚗?
|
||
- Host: `localhost`
|
||
- Port: `5432`
|
||
- Database: `ai_clinical_research`
|
||
- User: `postgres`
|
||
- Password: `postgres123`
|
||
|
||
### <20>𨀣迫<F0A880A3><E8BFAB>鍳<EFBFBD>冽㺭<E586BD>桀<EFBFBD>
|
||
|
||
```bash
|
||
# <20>𨀣迫嚗<E8BFAB><E59A97>銝滚<E98A9D><E6BB9A>斗㺭<E69697>殷<EFBFBD>
|
||
docker-compose down
|
||
|
||
# <20>臬𢆡
|
||
docker-compose up -d
|
||
|
||
# <20>滚鍳
|
||
docker-compose restart postgres
|
||
```
|
||
|
||
### <20>亦<EFBFBD><E4BAA6>唳旿摨𤘪𠯫敹?
|
||
|
||
```bash
|
||
# <20>亦<EFBFBD>PostgreSQL<51>亙<EFBFBD>
|
||
docker logs ai-clinical-postgres
|
||
|
||
# 摰墧𧒄<E5A2A7>亦<EFBFBD><E4BAA6>亙<EFBFBD>
|
||
docker logs -f ai-clinical-postgres
|
||
```
|
||
|
||
---
|
||
|
||
## <20>𠒣 <20>唳旿<E594B3><E697BF><EFBFBD><EFBFBD>?
|
||
|
||
### <20>唳旿摮睃<E691AE>雿滨蔭
|
||
|
||
**<2A>唳旿<E594B3>瘀<EFBFBD>Volume嚗㚁<E59A97>**
|
||
```
|
||
postgres_data:/var/lib/postgresql/data
|
||
```
|
||
|
||
**摰鮋<E691B0>摮睃<E691AE>雿滨蔭嚗?*
|
||
- Windows: `C:\ProgramData\Docker\volumes\aiclinicalresearch_postgres_data\_data`
|
||
- Mac/Linux: `/var/lib/docker/volumes/aiclinicalresearch_postgres_data/_data`
|
||
|
||
**<2A>滩<EFBFBD>嚗?*
|
||
- <20>?<3F>喃蝙<E59683>𣳇膄摰孵膥嚗Ǒdocker-compose down`嚗㚁<EFBFBD><EFBFBD>唳旿銝滢<EFBFBD>銝W仃
|
||
- <20>?<3F>唳旿摮睃<E691AE><E79D83>求ocker<65>唳旿<E594B3>瑚葉嚗峕<E59A97>銋<EFBFBD><E98A8B>靽嘥<E99DBD>
|
||
- <20>𩤃<EFBFBD> <20>芣<EFBFBD><E88AA3>扯<EFBFBD>`docker-compose down -v`嚗<EFBFBD><EFBFBD><EFBFBD>斗㺭<EFBFBD>桀㭘嚗㗇<EFBFBD>隡𡁏<EFBFBD>蝛箸㺭<EFBFBD>?
|
||
|
||
### 憭<>遢<EFBFBD>唳旿摨?
|
||
|
||
```bash
|
||
# 憭<>遢嚗<E981A2>紡<EFBFBD>搴QL嚗?
|
||
docker exec ai-clinical-postgres pg_dump -U postgres ai_clinical_research > backup.sql
|
||
|
||
# <20>W<EFBFBD>嚗<EFBFBD>紡<EFBFBD>兄QL嚗?
|
||
docker exec -i ai-clinical-postgres psql -U postgres ai_clinical_research < backup.sql
|
||
```
|
||
|
||
---
|
||
|
||
## <20>㴓 <20>芣䔉嚗锭chema<6D>𠉛氖霈∪<E99C88>
|
||
|
||
### 敶枏<E695B6><E69E8F>嗆<EFBFBD>?
|
||
|
||
```sql
|
||
-- <20><><EFBFBD>㕑”<E39591>賢銁public schema
|
||
public.users
|
||
public.projects
|
||
public.conversations
|
||
public.knowledge_bases
|
||
public.documents
|
||
public.review_tasks
|
||
...
|
||
```
|
||
|
||
### <20>格<EFBFBD><E6A0BC>嗆<EFBFBD>嚗𠄎chema<6D>𠉛氖嚗?
|
||
|
||
```sql
|
||
-- 撟喳蝱撅<E89DB1>chema
|
||
CREATE SCHEMA platform_schema;
|
||
platform_schema.users
|
||
platform_schema.roles
|
||
platform_schema.permissions
|
||
|
||
-- 銝𡁜𦛚璅∪<E79285>Schema
|
||
CREATE SCHEMA aia_schema; -- AI<41>箄<EFBFBD><E7AE84>桃<EFBFBD>
|
||
aia_schema.projects
|
||
aia_schema.conversations
|
||
aia_schema.messages
|
||
|
||
CREATE SCHEMA pkb_schema; -- 銝芯犖<E88AAF>亥<EFBFBD>摨?
|
||
pkb_schema.knowledge_bases
|
||
pkb_schema.documents
|
||
|
||
CREATE SCHEMA asl_schema; -- AI<41>箄<EFBFBD><E7AE84><EFBFBD>讃
|
||
asl_schema.projects
|
||
asl_schema.literature_items
|
||
asl_schema.screening_results
|
||
|
||
CREATE SCHEMA review_schema; -- 蝔蹂辣摰⊥䰻
|
||
review_schema.review_tasks
|
||
review_schema.review_journals
|
||
```
|
||
|
||
**摰墧鴌霈∪<E99C88>嚗?*
|
||
- **<2A>嗆挾銝<E68CBE>嚗<EFBFBD><E59A97><EFBFBD>喉<EFBFBD>嚗?* <20>餉<EFBFBD><E9A489>𠉛氖嚗䔶蝙<E494B6>刻”<E588BB>滚<EFBFBD>蝻<EFBFBD>嚗Ǒaia_projects`, `asl_projects`嚗?
|
||
- **<2A>嗆挾鈭䕘<E988AD>敺格<E695BA><E6A0BC>⊥<EFBFBD><E28AA5><EFBFBD>𧒄嚗㚁<E59A97>** <20>拍<EFBFBD><E68B8D>𠉛氖嚗<E6B096><E59A97>撱箇<E692B1>甇<EFBFBD><E79487>Schema
|
||
|
||
---
|
||
|
||
## <20><> Dify<66>唳旿摨橒<E691A8><E6A992>祉<EFBFBD>蝟餌<E89D9F>嚗?
|
||
|
||
### Dify<66><79><EFBFBD>蝵?
|
||
|
||
```
|
||
dify/docker/docker-compose.yml
|
||
<20>鎿<EFBFBD><E98EBF><EFBFBD> dify-db (PostgreSQL)
|
||
<20>鎿<EFBFBD><E98EBF><EFBFBD> dify-redis
|
||
<20>鎿<EFBFBD><E98EBF><EFBFBD> dify-web
|
||
<20>鎿<EFBFBD><E98EBF><EFBFBD> dify-api
|
||
<20>婙<EFBFBD><E5A999><EFBFBD> ...
|
||
```
|
||
|
||
**<EFBFBD>喲睸<EFBFBD>對<EFBFBD>**
|
||
- <20>?Dify<66>㕑䌊撌勗<E6928C><E58B97>函𡠺蝡讠<E89DA1>docker-compose.yml
|
||
- <20>?Dify<66><79>ostgreSQL<51>舐𡠺蝡讠<E89DA1>摰孵膥
|
||
- <20>?<3F>函<EFBFBD>憿寧𤌍銝滨凒<E6BBA8>亥挪<E4BAA5>唏ify<66><79>㺭<EFBFBD>桀<EFBFBD>
|
||
- <20>?<3F>朞<EFBFBD>Dify API嚗𠃍TTP REST嚗㕑<E59A97><E39591>求ify<66>蠘<EFBFBD>
|
||
|
||
### <20>函<EFBFBD>憿寧𤌍憒<F0A48C8D><E68692>雿輻鍂Dify
|
||
|
||
```typescript
|
||
// 銝齿糓<E9BDBF>湔𦻖霈輸䔮Dify<66>唳旿摨橒<E691A8><E6A992>峕糓<E5B395>朞<EFBFBD>API
|
||
|
||
// <20>𥕦遣<F0A595A6>亥<EFBFBD>摨?
|
||
const response = await fetch('http://localhost/v1/datasets', {
|
||
method: 'POST',
|
||
headers: {
|
||
'Authorization': `Bearer ${DIFY_API_KEY}`,
|
||
'Content-Type': 'application/json'
|
||
},
|
||
body: JSON.stringify({
|
||
name: '<27>𤑳<EFBFBD><F0A491B3>亥<EFBFBD>摨?
|
||
})
|
||
});
|
||
|
||
// 銝𠹺<E98A9D><F0A0B9BA><EFBFBD>﹝
|
||
const formData = new FormData();
|
||
formData.append('file', file);
|
||
await fetch(`http://localhost/v1/datasets/${datasetId}/document/create-by-file`, {
|
||
method: 'POST',
|
||
headers: {
|
||
'Authorization': `Bearer ${DIFY_API_KEY}`
|
||
},
|
||
body: formData
|
||
});
|
||
```
|
||
|
||
**<EFBFBD>函<EFBFBD><EFBFBD>唳旿摨㮖葉摮睃<EFBFBD>嚗?*
|
||
```sql
|
||
-- knowledge_bases銵?
|
||
{
|
||
id: 'uuid',
|
||
name: '<EFBFBD>𤑳<EFBFBD><EFBFBD>亥<EFBFBD>摨?,
|
||
dify_dataset_id: 'xxx' -- <20>唾<EFBFBD>Dify<66><79>ataset_id
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## <20>㴓 <20>餌<EFBFBD>
|
||
|
||
### <20>詨<EFBFBD>閬<EFBFBD><E996AC>
|
||
|
||
1. <20>?**<2A>冽<EFBFBD><E586BD>芸楛<E88AB8><E6A59B>ostgreSQL<51>唳旿摨?*
|
||
- <20>朞<EFBFBD>Docker<65>函蔡嚗Ǒdocker-compose.yml`嚗?
|
||
- 摰孵膥<E5ADB5>㵪<EFBFBD>`ai-clinical-postgres`
|
||
- <20>唳旿摨枏<E691A8>嚗䫤ai_clinical_research`
|
||
|
||
2. <20>?**<2A>其<EFBFBD><E585B6><EFBFBD>閬<EFBFBD><E996AC><EFBFBD>典<EFBFBD>鋆<EFBFBD>ostgreSQL**
|
||
- `docker-compose up -d`隡朞䌊<EFBFBD>典<EFBFBD>撱?
|
||
- <20>唳旿<E594B3><E697BF><EFBFBD><EFBFBD>硋<EFBFBD><E7A18B>典銁Docker<65>唳旿<E594B3>瑚葉
|
||
|
||
3. <20>?**Dify<66>臬<EFBFBD><E887AC>函𡠺蝡讠<E89DA1>蝟餌<E89D9F>**
|
||
- <20>㕑䌊撌梁<E6928C>PostgreSQL<51>唳旿摨?
|
||
- <20>券<EFBFBD>朞<EFBFBD>Dify API霈輸䔮嚗䔶<E59A97><E494B6>湔𦻖霈輸䔮<E8BCB8>唳旿摨?
|
||
|
||
4. <20>?**敶枏<E695B6>16撘㰘”<E3B098>券<EFBFBD><E588B8>冽<EFBFBD><E586BD><EFBFBD>ostgreSQL銝?*
|
||
- <20>冽<EFBFBD><E586BD><EFBFBD>★<EFBFBD>柴<EFBFBD><E69FB4>笆霂腈<E99C82><E88588>䰻霂<E4B0BB><E99C82><EFBFBD><EFBFBD><EFBFBD>獢<EFBFBD><E78DA2><EFBFBD>鸌憭<E9B88C><E686AD><EFBFBD><EFBFBD>阮隞嗅恣<E59785>亦<EFBFBD>
|
||
- <20>券<EFBFBD><E588B8>灼public` schema嚗<61>𧊋<EFBFBD>仿<EFBFBD>閬<EFBFBD><E996AC>蝳鳴<E89DB3>
|
||
|
||
### 銝箔<E98A9D>銋<EFBFBD><E98A8B>銝滩扇敺堒<E695BA>鋆<EFBFBD>ostgreSQL嚗?
|
||
|
||
**<EFBFBD>牐蛹<EFBFBD>冽覔<EFBFBD>祆瓷<EFBFBD>㗇<EFBFBD><EFBFBD>典<EFBFBD>鋆<EFBFBD><EFBFBD>** <20><>
|
||
|
||
- <20>?Docker<65>芸𢆡銝贝蝸<E8B49D>𨅯<EFBFBD>
|
||
- <20>?Docker<65>芸𢆡<E88AB8>𥕦遣摰孵膥
|
||
- <20>?銝<><E98A9D>桀鍳<E6A180>刻<EFBFBD><E588BB>祈䌊<E7A588>典鍳<E585B8>?
|
||
- <20>?<3F>典蘨<E585B8><E898A8>閬<EFBFBD><E996AC>銵䈣銝<E488A3><E98A9D>桀鍳<E6A180>?bat`
|
||
|
||
**餈坔停<E59D94>浴ocker<65><72><EFBFBD><EFBFBD>𨥈<EFBFBD>**
|
||
|
||
---
|
||
|
||
**<EFBFBD><EFBFBD>閬<EFBFBD><EFBFBD>銝<EFBFBD>甇乩<EFBFBD>閫<EFBFBD><EFBFBD><EFBFBD><EFBFBD>捆嚗?*
|
||
1. 憒<><E68692>憭<EFBFBD>遢<EFBFBD>峕<EFBFBD>憭齿㺭<E9BDBF>桀<EFBFBD>嚗?
|
||
2. 憒<><E68692>餈<EFBFBD>宏<EFBFBD>訕chema<6D>𠉛氖<F0A0899B>嗆<EFBFBD>嚗?
|
||
3. 憒<><E68692>餈墧𦻖<E5A2A7>唳旿摨栞<E691A8>銵峕<E98AB5><E5B395>冽䰻霂g<E99C82>
|
||
4. Prisma憒<61><E68692>蝞∠<E89D9E><E288A0>唳旿摨栞<E691A8>蝘鳴<E89D98>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|