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:
@@ -1,19 +1,19 @@
|
||||
# 数据库架构说明
|
||||
# <EFBFBD>唳旿摨𤘪沲<EFBFBD><EFBFBD>秩<EFBFBD>?
|
||||
|
||||
> **创建日期:** 2025-11-06
|
||||
> **文档目的:** 澄清数据库部署方式和架构
|
||||
> **<EFBFBD>𥕦遣<EFBFBD>交<EFBFBD>嚗?* 2025-11-06
|
||||
> **<EFBFBD><EFBFBD>﹝<EFBFBD>桃<EFBFBD>嚗?* 瞉<><E79E89><EFBFBD>唳旿摨㯄<E691A8>蝵脫䲮撘誩<E69298><E8AAA9>嗆<EFBFBD>
|
||||
|
||||
---
|
||||
|
||||
## <20><> <20>詨<EFBFBD>瞉<EFBFBD><E79E89>
|
||||
|
||||
### ✅ 您有自己独立的PostgreSQL数据库!
|
||||
### <EFBFBD>?<3F>冽<EFBFBD><E586BD>芸楛<E88AB8>祉<EFBFBD><E7A589><EFBFBD>ostgreSQL<EFBFBD>唳旿摨橒<EFBFBD>
|
||||
|
||||
**关键事实:**
|
||||
1. ✅ PostgreSQL是通过Docker部署的(`docker-compose.yml`)
|
||||
2. ✅ 这是您项目的独立数据库,不是Dify的
|
||||
3. ✅ Dify有自己完全独立的数据库(在`dify/docker/`目录下)
|
||||
4. ✅ 您不需要手动安装PostgreSQL,Docker会自动创建
|
||||
**<EFBFBD>喲睸鈭见<EFBFBD>嚗?*
|
||||
1. <EFBFBD>?PostgreSQL<EFBFBD>舫<EFBFBD>朞<EFBFBD>Docker<EFBFBD>函蔡<EFBFBD><EFBFBD><EFBFBD>`docker-compose.yml`嚗?
|
||||
2. <EFBFBD>?餈蹱糓<E8B9B1>券★<E588B8>桃<EFBFBD><E6A183>祉<EFBFBD><E7A589>唳旿摨橒<E691A8>銝齿糓Dify<EFBFBD>?
|
||||
3. <EFBFBD>?Dify<EFBFBD>㕑䌊撌勗<EFBFBD><EFBFBD>函𡠺蝡讠<EFBFBD><EFBFBD>唳旿摨橒<EFBFBD><EFBFBD>灼dify/docker/`<EFBFBD>桀<EFBFBD>銝页<EFBFBD>
|
||||
4. <EFBFBD>?<3F>其<EFBFBD><E585B6><EFBFBD>閬<EFBFBD><E996AC><EFBFBD>典<EFBFBD>鋆<EFBFBD>ostgreSQL嚗㷉ocker隡朞䌊<EFBFBD>典<EFBFBD>撱?
|
||||
|
||||
---
|
||||
|
||||
@@ -25,18 +25,18 @@
|
||||
# 雿滨蔭嚗鋫Iclinicalresearch/docker-compose.yml
|
||||
|
||||
services:
|
||||
# PostgreSQL 数据库
|
||||
# PostgreSQL <EFBFBD>唳旿摨?
|
||||
postgres:
|
||||
image: postgres:15-alpine # 雿輻鍂摰䀹䲮PostgreSQL<51>𨅯<EFBFBD>
|
||||
container_name: ai-clinical-postgres
|
||||
environment:
|
||||
POSTGRES_DB: ai_clinical_research # <20>唳旿摨枏<E691A8>
|
||||
POSTGRES_USER: postgres # 用户名
|
||||
POSTGRES_USER: postgres # <EFBFBD>冽<EFBFBD><EFBFBD>?
|
||||
POSTGRES_PASSWORD: postgres123 # 撖<><E69296>
|
||||
ports:
|
||||
- "5432:5432" # 蝡臬藁<E887AC>惩<EFBFBD>
|
||||
volumes:
|
||||
- postgres_data:/var/lib/postgresql/data # 数据持久化
|
||||
- postgres_data:/var/lib/postgresql/data # <EFBFBD>唳旿<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
|
||||
networks:
|
||||
- ai-clinical-network
|
||||
healthcheck:
|
||||
@@ -58,14 +58,14 @@ services:
|
||||
|
||||
volumes:
|
||||
postgres_data: # PostgreSQL<51>唳旿<E594B3>瘀<EFBFBD><E79880>唳旿<E594B3><E697BF><EFBFBD><EFBFBD>硋<EFBFBD><E7A18B>剁<EFBFBD>
|
||||
redis_data: # Redis数据卷
|
||||
redis_data: # Redis<EFBFBD>唳旿<EFBFBD>?
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## <20><> <20>臬𢆡瘚<F0A286A1><E7989A>
|
||||
|
||||
### 一键启动脚本(一键启动.bat)
|
||||
### 銝<EFBFBD><EFBFBD>桀鍳<EFBFBD>刻<EFBFBD><EFBFBD>穿<EFBFBD>銝<EFBFBD><EFBFBD>桀鍳<EFBFBD>?bat嚗?
|
||||
|
||||
```batch
|
||||
[甇仿炊2/7] <20>臬𢆡PostgreSQL<51>朙edis摰孵膥
|
||||
@@ -79,14 +79,14 @@ docker-compose up -d
|
||||
5. <20>臬𢆡摰孵膥撟嗅銁<E59785>𤾸蝱餈鞱<E9A488>
|
||||
```
|
||||
|
||||
**您不需要手动安装PostgreSQL!**
|
||||
- ✅ Docker会自动创建和管理
|
||||
- ✅ 数据存储在Docker数据卷中,不会丢失
|
||||
- ✅ 可以通过`localhost:5432`连接
|
||||
**<EFBFBD>其<EFBFBD><EFBFBD><EFBFBD>閬<EFBFBD><EFBFBD><EFBFBD>典<EFBFBD>鋆<EFBFBD>ostgreSQL嚗?*
|
||||
- <EFBFBD>?Docker隡朞䌊<EFBFBD>典<EFBFBD>撱箏<EFBFBD>蝞∠<EFBFBD>
|
||||
- <EFBFBD>?<3F>唳旿摮睃<E691AE><E79D83>求ocker<65>唳旿<E594B3>瑚葉嚗䔶<E59A97>隡帋腺憭?
|
||||
- <EFBFBD>?<3F>臭誑<E887AD>朞<EFBFBD>`localhost:5432`餈墧𦻖
|
||||
|
||||
---
|
||||
|
||||
## 🗄️ 数据库连接信息
|
||||
## <EFBFBD><EFBFBD>儭?<3F>唳旿摨栞<E691A8><E6A09E>乩縑<E4B9A9>?
|
||||
|
||||
### 餈墧𦻖<E5A2A7>滨蔭
|
||||
|
||||
@@ -95,18 +95,18 @@ docker-compose up -d
|
||||
postgresql://postgres:postgres123@localhost:5432/ai_clinical_research
|
||||
```
|
||||
|
||||
**拆解:**
|
||||
- **协议:** postgresql://
|
||||
**<EFBFBD><EFBFBD>圾嚗?*
|
||||
- **<EFBFBD>讛悅嚗?* postgresql://
|
||||
- **<2A>冽<EFBFBD><E586BD>㵪<EFBFBD>** postgres
|
||||
- **密码:** postgres123
|
||||
- **主机:** localhost(Docker映射到本地)
|
||||
- **端口:** 5432
|
||||
- **数据库名:** ai_clinical_research
|
||||
- **撖<EFBFBD><EFBFBD>嚗?* postgres123
|
||||
- **銝餅㦤嚗?* localhost嚗㇄ocker<EFBFBD>惩<EFBFBD><EFBFBD>唳𧋦<EFBFBD>堆<EFBFBD>
|
||||
- **蝡臬藁嚗?* 5432
|
||||
- **<EFBFBD>唳旿摨枏<EFBFBD>嚗?* ai_clinical_research
|
||||
|
||||
### 后端配置(backend/.env)
|
||||
### <EFBFBD>𡒊垢<EFBFBD>滨蔭嚗Ê̄ackend/.env嚗?
|
||||
|
||||
```bash
|
||||
# 数据库连接
|
||||
# <EFBFBD>唳旿摨栞<EFBFBD><EFBFBD>?
|
||||
DATABASE_URL=postgresql://postgres:postgres123@localhost:5432/ai_clinical_research
|
||||
|
||||
# 餈嗘葵餈墧𦻖<E5A2A7><F0A6BB96>糓<EFBFBD>刻䌊撌梁<E6928C>PostgreSQL嚗䔶<E59A97><E494B6>浴ify<66><79><EFBFBD>
|
||||
@@ -118,85 +118,85 @@ DATABASE_URL=postgresql://postgres:postgres123@localhost:5432/ai_clinical_resear
|
||||
|
||||
### 蝟餌<E89D9F>撖寞<E69296>
|
||||
|
||||
| 项目 | 您的数据库 | Dify的数据库 |
|
||||
| 憿寧𤌍 | <20>函<EFBFBD><E587BD>唳旿摨?| Dify<66><79>㺭<EFBFBD>桀<EFBFBD> |
|
||||
|------|----------|-------------|
|
||||
| **雿滨蔭** | `AIclinicalresearch/docker-compose.yml` | `dify/docker/docker-compose.yml` |
|
||||
| **容器名** | `ai-clinical-postgres` | `dify-db`(猜测) |
|
||||
| **摰孵膥<EFBFBD>?* | `ai-clinical-postgres` | `dify-db`嚗<EFBFBD><EFBFBD>瘚页<EFBFBD> |
|
||||
| **蝡臬藁** | `5432` | <20>航<EFBFBD><E888AA>畔5433`<60>碶<EFBFBD><E7A2B6>湧蠧 |
|
||||
| **<2A>唳旿摨枏<E691A8>** | `ai_clinical_research` | `dify` |
|
||||
| **用途** | 存储您项目的业务数据 | 存储Dify的数据 |
|
||||
| **<EFBFBD>券<EFBFBD>?* | 摮睃<E691AE><E79D83>券★<E588B8>桃<EFBFBD>銝𡁜𦛚<F0A1819C>唳旿 | 摮睃<E691AE>Dify<66><79>㺭<EFBFBD>?|
|
||||
| **霈輸䔮<E8BCB8>孵<EFBFBD>** | <20>湔𦻖Prisma霈輸䔮 | <20>朞<EFBFBD>Dify API霈輸䔮 |
|
||||
|
||||
### 架构图
|
||||
### <EFBFBD>嗆<EFBFBD><EFBFBD>?
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────┐
|
||||
│ AIclinicalresearch项目 │
|
||||
│ │
|
||||
│ ┌──────────────┐ ┌──────────────┐ │
|
||||
│ │ Backend │──────│ PostgreSQL │ │
|
||||
│ │ (Node.js) │ SQL │ (Docker) │ │
|
||||
│ │ │ │ │ │
|
||||
│ │ Prisma │ │ Port: 5432 │ │
|
||||
│ └──────────────┘ └──────────────┘ │
|
||||
│ │ │
|
||||
│ │ HTTP API │
|
||||
│ ↓ │
|
||||
│ ┌──────────────┐ │
|
||||
│ │ Dify │──────> Dify自己的PostgreSQL │
|
||||
│ │ (Docker) │ (完全独立) │
|
||||
│ └──────────────┘ │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────┘
|
||||
<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憿寧𤌍 <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><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>? <EFBFBD>?
|
||||
<EFBFBD>? <20>? Backend <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? PostgreSQL <EFBFBD>? <EFBFBD>?
|
||||
<EFBFBD>? <20>? (Node.js) <EFBFBD>?SQL <EFBFBD>? (Docker) <EFBFBD>? <EFBFBD>?
|
||||
<EFBFBD>? <20>? <EFBFBD>? <EFBFBD>? <EFBFBD>? <EFBFBD>?
|
||||
<EFBFBD>? <20>? Prisma <EFBFBD>? <EFBFBD>?Port: 5432 <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><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>? <EFBFBD>?
|
||||
<EFBFBD>? <EFBFBD>? <EFBFBD>?
|
||||
<EFBFBD>? <EFBFBD>?HTTP API <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>? <EFBFBD>?
|
||||
<EFBFBD>? <20>? Dify <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>> Dify<EFBFBD>芸楛<EFBFBD><EFBFBD>ostgreSQL <EFBFBD>?
|
||||
<EFBFBD>? <20>? (Docker) <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>? <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><EFBFBD><EFBFBD>?
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## <20><> 敶枏<E695B6><E69E8F>唳旿摨栞”蝏𤘪<E89D8F>
|
||||
|
||||
### 您的PostgreSQL中的表
|
||||
### <EFBFBD>函<EFBFBD>PostgreSQL銝剔<EFBFBD>銵?
|
||||
|
||||
```sql
|
||||
-- <20>交<EFBFBD>嚗颹ackend/prisma/schema.prisma
|
||||
|
||||
-- <20>冽<EFBFBD>璅∪<E79285>
|
||||
users -- 用户表
|
||||
users -- <EFBFBD>冽<EFBFBD>銵?
|
||||
|
||||
-- 憿寧𤌍璅∪<E79285>
|
||||
projects -- 项目表
|
||||
projects -- 憿寧𤌍銵?
|
||||
|
||||
-- AI<41>桃<EFBFBD>璅∪<E79285>
|
||||
conversations -- 对话表
|
||||
messages -- 消息表
|
||||
general_conversations -- 通用对话表
|
||||
general_messages -- 通用消息表
|
||||
conversations -- 撖寡<EFBFBD>銵?
|
||||
messages -- 瘨<EFBFBD><EFBFBD>銵?
|
||||
general_conversations -- <EFBFBD>𡁶鍂撖寡<EFBFBD>銵?
|
||||
general_messages -- <EFBFBD>𡁶鍂瘨<EFBFBD><EFBFBD>銵?
|
||||
|
||||
-- 知识库模块
|
||||
-- <20>亥<EFBFBD>摨𤘪芋<F0A498AA>?
|
||||
knowledge_bases -- <20>亥<EFBFBD>摨栞”
|
||||
documents -- 文档表
|
||||
documents -- <EFBFBD><EFBFBD>﹝銵?
|
||||
|
||||
-- 批处理模块(Phase 3)
|
||||
-- <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 -- 任务模板表
|
||||
task_templates -- 隞餃𦛚璅⊥踎銵?
|
||||
|
||||
-- 蝔蹂辣摰⊥䰻璅∪<E79285>
|
||||
review_tasks -- 稿件审查任务表
|
||||
review_tasks -- 蝔蹂辣摰⊥䰻隞餃𦛚銵?
|
||||
|
||||
-- 餈鞱𨯫蝞∠<E89D9E>璅∪<E79285>
|
||||
admin_logs -- 蝞∠<E89D9E><E288A0>䀹𠯫敹𡑒”
|
||||
```
|
||||
|
||||
**总计:16张表,全部在您自己的PostgreSQL中。**
|
||||
**<EFBFBD>餉恣嚗?6撘㰘”嚗<E2809D><E59A97><EFBFBD>典銁<E585B8>刻䌊撌梁<E6928C>PostgreSQL銝准<EFBFBD>?*
|
||||
|
||||
---
|
||||
|
||||
## <20>圲 撣貊鍂<E8B28A>滢<EFBFBD>
|
||||
|
||||
### 查看Docker容器状态
|
||||
### <EFBFBD>亦<EFBFBD>Docker摰孵膥<EFBFBD>嗆<EFBFBD>?
|
||||
|
||||
```bash
|
||||
# 查看所有容器
|
||||
# <20>亦<EFBFBD><E4BAA6><EFBFBD><EFBFBD>匧捆<E58CA7>?
|
||||
docker ps
|
||||
|
||||
# 摨磰砲<E7A3B0>賜<EFBFBD><E8B39C>堆<EFBFBD>
|
||||
@@ -211,15 +211,15 @@ docker ps
|
||||
# 餈𥕦<E9A488>PostgreSQL摰孵膥
|
||||
docker exec -it ai-clinical-postgres psql -U postgres -d ai_clinical_research
|
||||
|
||||
# 然后可以执行SQL:
|
||||
# <EFBFBD>嗅<EFBFBD><EFBFBD>臭誑<EFBFBD>扯<EFBFBD>SQL嚗?
|
||||
\dt # <20>亦<EFBFBD><E4BAA6><EFBFBD><EFBFBD>㕑”
|
||||
\d users # 查看users表结构
|
||||
\d users # <EFBFBD>亦<EFBFBD>users銵函<EFBFBD><EFBFBD>?
|
||||
SELECT * FROM users LIMIT 10;
|
||||
```
|
||||
|
||||
**方法2:使用数据库客户端**
|
||||
**<EFBFBD>寞<EFBFBD>2嚗帋蝙<EFBFBD>冽㺭<EFBFBD>桀<EFBFBD>摰X<EFBFBD>蝡?*
|
||||
- **DBeaver** / **pgAdmin** / **DataGrip** / **Navicat**
|
||||
- 连接信息:
|
||||
- 餈墧𦻖靽⊥<E99DBD>嚗?
|
||||
- Host: `localhost`
|
||||
- Port: `5432`
|
||||
- Database: `ai_clinical_research`
|
||||
@@ -239,7 +239,7 @@ docker-compose up -d
|
||||
docker-compose restart postgres
|
||||
```
|
||||
|
||||
### 查看数据库日志
|
||||
### <EFBFBD>亦<EFBFBD><EFBFBD>唳旿摨𤘪𠯫敹?
|
||||
|
||||
```bash
|
||||
# <20>亦<EFBFBD>PostgreSQL<51>亙<EFBFBD>
|
||||
@@ -251,7 +251,7 @@ docker logs -f ai-clinical-postgres
|
||||
|
||||
---
|
||||
|
||||
## 💾 数据持久化
|
||||
## <EFBFBD>𠒣 <20>唳旿<E594B3><E697BF><EFBFBD><EFBFBD>?
|
||||
|
||||
### <20>唳旿摮睃<E691AE>雿滨蔭
|
||||
|
||||
@@ -260,22 +260,22 @@ docker logs -f ai-clinical-postgres
|
||||
postgres_data:/var/lib/postgresql/data
|
||||
```
|
||||
|
||||
**实际存储位置:**
|
||||
**摰鮋<EFBFBD>摮睃<EFBFBD>雿滨蔭嚗?*
|
||||
- Windows: `C:\ProgramData\Docker\volumes\aiclinicalresearch_postgres_data\_data`
|
||||
- Mac/Linux: `/var/lib/docker/volumes/aiclinicalresearch_postgres_data/_data`
|
||||
|
||||
**重要:**
|
||||
- ✅ 即使删除容器(`docker-compose down`),数据不会丢失
|
||||
- ✅ 数据存储在Docker数据卷中,持久化保存
|
||||
- ⚠️ 只有执行`docker-compose down -v`(删除数据卷)才会清空数据
|
||||
**<EFBFBD>滩<EFBFBD>嚗?*
|
||||
- <20>?<3F>喃蝙<E59683>𣳇膄摰孵膥嚗Ǒdocker-compose down`嚗㚁<EFBFBD><EFBFBD>唳旿銝滢<EFBFBD>銝W仃
|
||||
- <EFBFBD>?<3F>唳旿摮睃<E691AE><E79D83>求ocker<65>唳旿<E594B3>瑚葉嚗峕<E59A97>銋<EFBFBD><E98A8B>靽嘥<E99DBD>
|
||||
- <EFBFBD>𩤃<EFBFBD> <20>芣<EFBFBD><E88AA3>扯<EFBFBD>`docker-compose down -v`嚗<EFBFBD><EFBFBD><EFBFBD>斗㺭<EFBFBD>桀㭘嚗㗇<EFBFBD>隡𡁏<EFBFBD>蝛箸㺭<EFBFBD>?
|
||||
|
||||
### 备份数据库
|
||||
### 憭<EFBFBD>遢<EFBFBD>唳旿摨?
|
||||
|
||||
```bash
|
||||
# 备份(导出SQL)
|
||||
# 憭<EFBFBD>遢嚗<EFBFBD>紡<EFBFBD>搴QL嚗?
|
||||
docker exec ai-clinical-postgres pg_dump -U postgres ai_clinical_research > backup.sql
|
||||
|
||||
# 恢复(导入SQL)
|
||||
# <EFBFBD>W<EFBFBD>嚗<EFBFBD>紡<EFBFBD>兄QL嚗?
|
||||
docker exec -i ai-clinical-postgres psql -U postgres ai_clinical_research < backup.sql
|
||||
```
|
||||
|
||||
@@ -283,7 +283,7 @@ docker exec -i ai-clinical-postgres psql -U postgres ai_clinical_research < back
|
||||
|
||||
## <20>㴓 <20>芣䔉嚗锭chema<6D>𠉛氖霈∪<E99C88>
|
||||
|
||||
### 当前状态
|
||||
### 敶枏<EFBFBD><EFBFBD>嗆<EFBFBD>?
|
||||
|
||||
```sql
|
||||
-- <20><><EFBFBD>㕑”<E39591>賢銁public schema
|
||||
@@ -296,7 +296,7 @@ public.review_tasks
|
||||
...
|
||||
```
|
||||
|
||||
### 目标架构(Schema隔离)
|
||||
### <EFBFBD>格<EFBFBD><EFBFBD>嗆<EFBFBD>嚗𠄎chema<EFBFBD>𠉛氖嚗?
|
||||
|
||||
```sql
|
||||
-- 撟喳蝱撅<E89DB1>chema
|
||||
@@ -311,7 +311,7 @@ aia_schema.projects
|
||||
aia_schema.conversations
|
||||
aia_schema.messages
|
||||
|
||||
CREATE SCHEMA pkb_schema; -- 个人知识库
|
||||
CREATE SCHEMA pkb_schema; -- 銝芯犖<EFBFBD>亥<EFBFBD>摨?
|
||||
pkb_schema.knowledge_bases
|
||||
pkb_schema.documents
|
||||
|
||||
@@ -325,15 +325,15 @@ review_schema.review_tasks
|
||||
review_schema.review_journals
|
||||
```
|
||||
|
||||
**实施计划:**
|
||||
- **阶段一(立即):** 逻辑隔离,使用表名前缀(`aia_projects`, `asl_projects`)
|
||||
**摰墧鴌霈∪<EFBFBD>嚗?*
|
||||
- **<EFBFBD>嗆挾銝<EFBFBD>嚗<EFBFBD><EFBFBD><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
|
||||
|
||||
---
|
||||
|
||||
## 🔍 Dify数据库(独立系统)
|
||||
## <EFBFBD><EFBFBD> Dify<EFBFBD>唳旿摨橒<EFBFBD><EFBFBD>祉<EFBFBD>蝟餌<EFBFBD>嚗?
|
||||
|
||||
### Dify的部署
|
||||
### Dify<EFBFBD><EFBFBD><EFBFBD>蝵?
|
||||
|
||||
```
|
||||
dify/docker/docker-compose.yml
|
||||
@@ -345,17 +345,17 @@ dify/docker/docker-compose.yml
|
||||
```
|
||||
|
||||
**<EFBFBD>喲睸<EFBFBD>對<EFBFBD>**
|
||||
- ✅ Dify有自己完全独立的docker-compose.yml
|
||||
- ✅ Dify的PostgreSQL是独立的容器
|
||||
- ✅ 您的项目不直接访问Dify的数据库
|
||||
- ✅ 通过Dify API(HTTP REST)调用Dify功能
|
||||
- <EFBFBD>?Dify<EFBFBD>㕑䌊撌勗<EFBFBD><EFBFBD>函𡠺蝡讠<EFBFBD>docker-compose.yml
|
||||
- <EFBFBD>?Dify<EFBFBD><EFBFBD>ostgreSQL<EFBFBD>舐𡠺蝡讠<EFBFBD>摰孵膥
|
||||
- <EFBFBD>?<3F>函<EFBFBD>憿寧𤌍銝滨凒<E6BBA8>亥挪<E4BAA5>唏ify<66><79>㺭<EFBFBD>桀<EFBFBD>
|
||||
- <EFBFBD>?<3F>朞<EFBFBD>Dify API嚗𠃍TTP REST嚗㕑<EFBFBD><EFBFBD>求ify<EFBFBD>蠘<EFBFBD>
|
||||
|
||||
### <20>函<EFBFBD>憿寧𤌍憒<F0A48C8D><E68692>雿輻鍂Dify
|
||||
|
||||
```typescript
|
||||
// 銝齿糓<E9BDBF>湔𦻖霈輸䔮Dify<66>唳旿摨橒<E691A8><E6A992>峕糓<E5B395>朞<EFBFBD>API
|
||||
|
||||
// 创建知识库
|
||||
// <EFBFBD>𥕦遣<EFBFBD>亥<EFBFBD>摨?
|
||||
const response = await fetch('http://localhost/v1/datasets', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@@ -363,7 +363,7 @@ const response = await fetch('http://localhost/v1/datasets', {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
body: JSON.stringify({
|
||||
name: '我的知识库'
|
||||
name: '<EFBFBD>𤑳<EFBFBD><EFBFBD>亥<EFBFBD>摨?
|
||||
})
|
||||
});
|
||||
|
||||
@@ -379,12 +379,12 @@ await fetch(`http://localhost/v1/datasets/${datasetId}/document/create-by-file`,
|
||||
});
|
||||
```
|
||||
|
||||
**您的数据库中存储:**
|
||||
**<EFBFBD>函<EFBFBD><EFBFBD>唳旿摨㮖葉摮睃<EFBFBD>嚗?*
|
||||
```sql
|
||||
-- knowledge_bases表
|
||||
-- knowledge_bases銵?
|
||||
{
|
||||
id: 'uuid',
|
||||
name: '我的知识库',
|
||||
name: '<EFBFBD>𤑳<EFBFBD><EFBFBD>亥<EFBFBD>摨?,
|
||||
dify_dataset_id: 'xxx' -- <20>唾<EFBFBD>Dify<66><79>ataset_id
|
||||
}
|
||||
```
|
||||
@@ -395,39 +395,39 @@ await fetch(`http://localhost/v1/datasets/${datasetId}/document/create-by-file`,
|
||||
|
||||
### <20>詨<EFBFBD>閬<EFBFBD><E996AC>
|
||||
|
||||
1. ✅ **您有自己的PostgreSQL数据库**
|
||||
- 通过Docker部署(`docker-compose.yml`)
|
||||
1. <EFBFBD>?**<2A>冽<EFBFBD><E586BD>芸楛<E88AB8><E6A59B>ostgreSQL<EFBFBD>唳旿摨?*
|
||||
- <EFBFBD>朞<EFBFBD>Docker<EFBFBD>函蔡嚗Ǒdocker-compose.yml`嚗?
|
||||
- 摰孵膥<E5ADB5>㵪<EFBFBD>`ai-clinical-postgres`
|
||||
- <20>唳旿摨枏<E691A8>嚗䫤ai_clinical_research`
|
||||
|
||||
2. ✅ **您不需要手动安装PostgreSQL**
|
||||
- `docker-compose up -d`会自动创建
|
||||
2. <EFBFBD>?**<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. ✅ **Dify是完全独立的系统**
|
||||
- 有自己的PostgreSQL数据库
|
||||
- 您通过Dify API访问,不直接访问数据库
|
||||
3. <EFBFBD>?**Dify<EFBFBD>臬<EFBFBD><EFBFBD>函𡠺蝡讠<EFBFBD>蝟餌<EFBFBD>**
|
||||
- <EFBFBD>㕑䌊撌梁<EFBFBD>PostgreSQL<EFBFBD>唳旿摨?
|
||||
- <EFBFBD>券<EFBFBD>朞<EFBFBD>Dify API霈輸䔮嚗䔶<EFBFBD><EFBFBD>湔𦻖霈輸䔮<EFBFBD>唳旿摨?
|
||||
|
||||
4. ✅ **当前16张表全部在您的PostgreSQL中**
|
||||
4. <EFBFBD>?**敶枏<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>
|
||||
|
||||
### 为什么您不记得安装PostgreSQL?
|
||||
### 銝箔<EFBFBD>銋<EFBFBD><EFBFBD>銝滩扇敺堒<EFBFBD>鋆<EFBFBD>ostgreSQL嚗?
|
||||
|
||||
**<EFBFBD>牐蛹<EFBFBD>冽覔<EFBFBD>祆瓷<EFBFBD>㗇<EFBFBD><EFBFBD>典<EFBFBD>鋆<EFBFBD><EFBFBD>** <20><>
|
||||
|
||||
- ✅ Docker自动下载镜像
|
||||
- ✅ Docker自动创建容器
|
||||
- ✅ 一键启动脚本自动启动
|
||||
- ✅ 您只需要运行`一键启动.bat`
|
||||
- <EFBFBD>?Docker<EFBFBD>芸𢆡銝贝蝸<EFBFBD>𨅯<EFBFBD>
|
||||
- <EFBFBD>?Docker<EFBFBD>芸𢆡<EFBFBD>𥕦遣摰孵膥
|
||||
- <EFBFBD>?銝<><E98A9D>桀鍳<E6A180>刻<EFBFBD><E588BB>祈䌊<E7A588>典鍳<E585B8>?
|
||||
- <EFBFBD>?<3F>典蘨<E585B8><E898A8>閬<EFBFBD><E996AC>銵䈣銝<E488A3><E98A9D>桀鍳<E6A180>?bat`
|
||||
|
||||
**餈坔停<E59D94>浴ocker<65><72><EFBFBD><EFBFBD>𨥈<EFBFBD>**
|
||||
|
||||
---
|
||||
|
||||
**需要进一步了解的内容:**
|
||||
1. 如何备份和恢复数据库?
|
||||
2. 如何迁移到Schema隔离架构?
|
||||
**<EFBFBD><EFBFBD>閬<EFBFBD><EFBFBD>銝<EFBFBD>甇乩<EFBFBD>閫<EFBFBD><EFBFBD><EFBFBD><EFBFBD>捆嚗?*
|
||||
1. 憒<EFBFBD><EFBFBD>憭<EFBFBD>遢<EFBFBD>峕<EFBFBD>憭齿㺭<EFBFBD>桀<EFBFBD>嚗?
|
||||
2. 憒<EFBFBD><EFBFBD>餈<EFBFBD>宏<EFBFBD>訕chema<EFBFBD>𠉛氖<EFBFBD>嗆<EFBFBD>嚗?
|
||||
3. 憒<><E68692>餈墧𦻖<E5A2A7>唳旿摨栞<E691A8>銵峕<E98AB5><E5B395>冽䰻霂g<E99C82>
|
||||
4. Prisma憒<61><E68692>蝞∠<E89D9E><E288A0>唳旿摨栞<E691A8>蝘鳴<E89D98>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user