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,8 +1,8 @@
# Schema餈<61><EFBFBD>𡁏𧋦雿輻鍂<E8BCBB><E98D82><EFBFBD>
> **版本:** V1.0
> **创建日期:** 2025-11-09
> **迁移目标:** 从public schema迁移到10个隔离Schema
> **<EFBFBD><EFBFBD>𧋦嚗?* V1.0
> **<EFBFBD>𥕦遣<EFBFBD><EFBFBD>嚗?* 2025-11-09
> **<EFBFBD><EFBFBD><EFBFBD>嚗?* 隞簵ublic schema<EFBFBD><EFBFBD>?0銝芷<E98A9D>蝳艋chema
---
@@ -10,13 +10,13 @@
| # | <20>𡁏𧋦<F0A1818F>滨妍 | 霂湔<E99C82> | 憸<><EFBFBD>園𡢿 | <20>滨蔭靘肽<E99D98> |
|---|---------|------|---------|---------|
| 1 | `001-create-all-10-schemas.sql` | 创建10个Schema3详细+7空 | 5秒 | 无 |
| 2 | `002-migrate-platform.sql` | 迁移platform_schema1个表users | 15分钟 | 001 |
| 3 | `003-migrate-aia.sql` | 迁移aia_schema5个表对话相关 | 30分钟 | 001, 002 |
| 4 | `004-migrate-pkb.sql` | 迁移pkb_schema5个表知识库相关 | 30分钟 | 001, 002 |
| 5 | `005-validate-all.sql` | 全局验证和数据完整性检查 | 10分钟 | 001-004 |
| 1 | `001-create-all-10-schemas.sql` | <EFBFBD>𥕦遣10銝杵chema嚗?霂衣<E99C82>+7蝛綽<E89D9B> | 5蝘?| <20>?|
| 2 | `002-migrate-platform.sql` | <EFBFBD>platform_schema嚗?銝芾”嚗鮁sers嚗?| 15<EFBFBD><EFBFBD><EFBFBD> | 001 |
| 3 | `003-migrate-aia.sql` | <EFBFBD>aia_schema嚗?銝芾”嚗𡁜笆霂萘㮾<E89098><EFBFBD> | 30<EFBFBD><EFBFBD><EFBFBD> | 001, 002 |
| 4 | `004-migrate-pkb.sql` | <EFBFBD>pkb_schema嚗?銝芾”嚗𡁶䰻霂<E4B0BB><E99C82><EFBFBD><EFBFBD>嚗?| 30<EFBFBD><EFBFBD><EFBFBD> | 001, 002 |
| 5 | `005-validate-all.sql` | <EFBFBD><EFBFBD>撉諹<EFBFBD><EFBFBD>峕㺭<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?| 10<EFBFBD><EFBFBD><EFBFBD> | 001-004 |
**总计:** 约1.5小时
**<EFBFBD>餉恣嚗?* 蝥?.5撠𤩺𧒄
---
@@ -24,19 +24,19 @@
### <20>滨蔭<E6BBA8><E894AD><EFBFBD>
1. **备份数据库(强烈建议)**
1. **<EFBFBD><EFBFBD>唳旿摨橒<EFBFBD>撘箇<EFBFBD>撱箄悅嚗?*
```bash
pg_dump -U postgres -d your_database > backup_$(date +%Y%m%d_%H%M%S).sql
```
2. **确认数据库连接**
2. **蝖株恕<EFBFBD>唳旿摨栞<EFBFBD><EFBFBD>?*
```bash
# 蝖桐<E89D96>DATABASE_URL<52><EFBFBD><E887AC><EFBFBD><EFBFBD>
echo $DATABASE_URL
# 或查看 .env 文件
# <EFBFBD>𡝗䰻<EFBFBD>?.env <EFBFBD><EFBFBD>
```
3. **确认当前表结构**
3. **蝖株恕敶枏<EFBFBD>銵函<EFBFBD><EFBFBD>?*
```sql
SELECT tablename FROM pg_tables WHERE schemaname = 'public';
```
@@ -59,8 +59,7 @@ psql $DATABASE_URL -f 004-migrate-pkb.sql
psql $DATABASE_URL -f 005-validate-all.sql
```
#### 方法2一次性执行所有脚本
#### <EFBFBD><EFBFBD>2嚗帋<EFBFBD>甈⊥<EFBFBD><EFBFBD>銵峕<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
```bash
# <20>𥕦遣<F0A595A6><EFBFBD><E689AF>𡁏𧋦
cat 001-create-all-10-schemas.sql \
@@ -71,18 +70,16 @@ cat 001-create-all-10-schemas.sql \
| psql $DATABASE_URL
```
#### 方法3使用数据库客户端如DBeaver、pgAdmin
#### <EFBFBD><EFBFBD>3嚗帋蝙<EFBFBD>冽㺭<EFBFBD><EFBFBD><EFBFBD>蝡荔<EFBFBD><EFBFBD>Beaver<EFBFBD><EFBFBD>gAdmin嚗?
1. <20><EFBFBD><E69E8F>唳旿摨枏恥<E69E8F>瑞垢
2. 餈墧𦻖<E5A2A7>啁𤌍<E59581><F0A48C8D><EFBFBD><EFBFBD>
3. 靘脲活<E884B2><EFBFBD>撟嗆<E6929F>銵峕<E98AB5>銝杵QL<51><4C>
---
## ✅ 验证清单
### 执行001后
## <EFBFBD>?撉諹<E69289><EFBFBD><E79A9C>
### <20><EFBFBD>001<30>?
- [ ] 10銝杵chema<6D><EFBFBD><E588B8>𥕦遣<F0A595A6>𣂼<EFBFBD>
- [ ] 瘥譍葵Schema<6D><EFBFBD>瘜券<E7989C>霂湔<E99C82>
@@ -94,21 +91,17 @@ WHERE nspname LIKE '%_schema'
ORDER BY nspname;
```
### 执行002
- [ ] platform_schema.users表创建成功
- [ ] 数据从public.users完整迁移
- [ ] 4个索引创建成功
### <EFBFBD><EFBFBD>002<EFBFBD>?
- [ ] platform_schema.users銵典<E98AB5>撱箸<E692B1><E7AEB8>?- [ ] <20>唳旿隞簵ublic.users摰峕㟲餈<E39FB2>
- [ ] 4銝芰揣撘訫<EFBFBD>撱箸<EFBFBD><EFBFBD>?
```sql
-- 撉諹<E69289>SQL
SELECT COUNT(*) AS public_count FROM public.users;
SELECT COUNT(*) AS platform_count FROM platform_schema.users;
```
### 执行003
- [ ] aia_schema的5个表创建成功
### <EFBFBD><EFBFBD>003<EFBFBD>?
- [ ] aia_schema<6D>?銝芾”<E88ABE>𥕦遣<F0A595A6>𣂼<EFBFBD>
- [ ] <20>唳旿摰峕㟲餈<E39FB2>
- [ ] 憭㚚睸蝥行<E89DA5><EFBFBD>撱箇<E692B1>
@@ -118,9 +111,8 @@ SELECT COUNT(*) FROM aia_schema.projects;
SELECT COUNT(*) FROM aia_schema.conversations;
```
### 执行004
- [ ] pkb_schema的5个表创建成功
### <EFBFBD><EFBFBD>004<EFBFBD>?
- [ ] pkb_schema<6D>?銝芾”<E88ABE>𥕦遣<F0A595A6>𣂼<EFBFBD>
- [ ] <20><>鉄Phase 2<><EFBFBD><E586BD><EFBFBD>粉摮埈挾
- [ ] <20>唳旿摰峕㟲餈<E39FB2>
@@ -130,20 +122,16 @@ SELECT COUNT(*) FROM pkb_schema.knowledge_bases;
SELECT COUNT(*) FROM pkb_schema.documents;
```
### 执行005
- [ ] 所有数据量对比一致
- [ ] 跨Schema外键引用有效
- [ ] 无数据丢失
### <EFBFBD><EFBFBD>005<EFBFBD>?
- [ ] <20><><EFBFBD>㗇㺭<E39787><EFBFBD>撖寞<E69296><EFBFBD><E98A9D>?- [ ] 頝沒chema憭㚚睸撘閧鍂<E996A7><EFBFBD>
- [ ] <EFBFBD>䭾㺭<EFBFBD>桐腺憭?
---
## 📊 迁移后数据分布
## <EFBFBD><EFBFBD><><EFBFBD>擧㺭<E693A7><EFBFBD>撣?
### Platform Schema
```
platform_schema
└── users (1表)
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> users (1銵?
```
### AIA Schema
@@ -153,7 +141,7 @@ aia_schema
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> conversations
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> messages
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> general_conversations
└── general_messages (5表)
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> general_messages (5銵?
```
### PKB Schema
@@ -163,13 +151,13 @@ pkb_schema
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> documents
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> batch_tasks
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> batch_results
└── task_templates (5表)
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> task_templates (5銵?
```
### 空Schema7个
### 蝛搴chema嚗?銝迎<E98A9D>
```
asl_schema (AI<41><EFBFBD><E7AE84><EFBFBD>讃 - Week 3霈曇恣)
common_schema (通用能力层)
common_schema (<EFBFBD>𡁶鍂<EFBFBD><EFBFBD>撅?
dc_schema (<28>唳旿皜<E697BF><E79A9C>)
rvw_schema (摰∠阮蝟餌<E89D9F>)
admin_schema (餈鞱𨯫蝞∠<E89D9E>)
@@ -184,25 +172,19 @@ st_schema (统计分析工具)
### 1. 鈭见𦛚靽脲擪
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝘餉<EFBFBD><EFBFBD><EFBFBD>雿輻鍂鈭<EFBFBD><EFBFBD><EFBFBD><EFBFBD>BEGIN/COMMIT嚗㚁<E59A97>
- 成功:全部提交
- 失败:自动回滚,无部分迁移
### 2. 幂等性
- <EFBFBD>𣂼<EFBFBD>嚗𡁜<EFBFBD><EFBFBD><EFBFBD>鈭?- 憭梯揖嚗朞䌊<E69C9E><EFBFBD>皛𡄯<E79A9B><F0A184AF>𣳇<EFBFBD><F0A3B387><EFBFBD><EFBFBD>蝘?
### 2. 撟<><E6929F><EFBFBD>?
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>祆𣈲<EFBFBD><EFBFBD><EFBFBD>憭齿<EFBFBD>銵䕘<EFBFBD>
- 雿輻鍂 `IF NOT EXISTS` <20>𥕦遣撖寡情
- 雿輻鍂 `ON CONFLICT DO NOTHING` <20><EFBFBD><E98DA6>唳旿
### 3. public schema靽萘<E99DBD>
迁移后**不会删除** public schema中的原表:
- 原因:方便回滚和对比验证
- 清理:待所有验证通过后,再决定是否删除
<EFBFBD><EFBFBD>?*銝滢<E98A9D><E6BBA2>𣳇膄** public schema銝剔<EFBFBD><EFBFBD>蠘”嚗?- <20><EFBFBD>嚗𡁏䲮靘踹<E99D98>皛𡁜<E79A9B>撖寞<E69296>撉諹<E69289>
- <EFBFBD><EFBFBD>嚗𡁜<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𠬍<EFBFBD><EFBFBD><EFBFBD>摰𡁏糓<EFBFBD><EFBFBD><EFBFBD>?
### 4. 憭㚚睸蝥行<E89DA5>
支持跨Schema外键
- 所有业务表引用 `platform_schema.users(id)`
<EFBFBD><EFBFBD>頝沒chema憭㚚睸嚗?- <20><><EFBFBD><EFBFBD><E58A90>∟”撘閧鍂 `platform_schema.users(id)`
- PostgreSQL<51><EFBFBD><E6AFBA><EFBFBD>嚗峕<E59A97><E5B395><EFBFBD><EFBFBD><EFBFBD><E5AF9E>滨蔭
---
@@ -211,9 +193,9 @@ st_schema (统计分析工具)
### <20><EFBFBD>1嚗朞<E59A97><E69C9E>亥◤<E4BAA5><EFBFBD>
**错误:** `connection refused`
**<EFBFBD>躰秤嚗?* `connection refused`
**解决:**
**<EFBFBD><EFBFBD>嚗?*
```bash
# 璉<><E79289>仙ostgreSQL<51>滚𦛚
sudo systemctl status postgresql
@@ -222,29 +204,24 @@ sudo systemctl status postgresql
sudo systemctl start postgresql
```
### 问题2权限不足
### <EFBFBD><EFBFBD>2嚗𡁏<EFBFBD><EFBFBD>𣂷<EFBFBD>頞?
**<2A>躰秤嚗?* `permission denied to create schema`
**错误:** `permission denied to create schema`
**解决:**
**<EFBFBD><EFBFBD>嚗?*
```sql
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
GRANT CREATE ON DATABASE your_database TO your_user;
```
### 问题3外键约束失败
### <EFBFBD><EFBFBD>3嚗𡁜<EFBFBD><EFBFBD>桃漲<EFBFBD>笔仃韐?
**<2A>躰秤嚗?* `violates foreign key constraint`
**错误:** `violates foreign key constraint`
**<EFBFBD><EFBFBD>嚗?*
- 蝖桐<E89D96><E6A190><EFBFBD><EFBFBD>銵?002嚗īlatform嚗匧<E59A97><E58CA7><EFBFBD> 003/004嚗Òia/pkb嚗?- 璉<><E79289>交糓<E4BAA4><EFBFBD>摮斤<E691AE><E696A4><EFBFBD>ser_id
**解决:**
- 确保先执行 002platform再执行 003/004aia/pkb
- 检查是否有孤立的user_id
### 问题4数据量不一致
**错误:** 验证脚本报告数据量不一致
**解决:**
### <20><EFBFBD>4嚗𡁏㺭<F0A1818F><EFBFBD>銝滢<E98A9D><E6BBA2>?
**<2A>躰秤嚗?* 撉諹<E69289><E8ABB9>𡁏𧋦<F0A1818F><EFBFBD><E4BA99>唳旿<E594B3><EFBFBD><EFBFBD><E98A9D>?
**閫<><E996AB>嚗?*
1. 璉<><E79289>交糓<E4BAA4><EFBFBD><EFBFBD>宏餈<E5AE8F><E9A488>銝剜鰵憓䂿<E68693><E482BF>唳旿
2. 雿輻鍂ID撖寞<E69296><EFBFBD><E79289><EFBFBD>雿枏榆撘<E6A686><E69298>
```sql
@@ -258,8 +235,7 @@ GRANT CREATE ON DATABASE your_database TO your_user;
## <20><> <20><EFBFBD><E5A2A7><EFBFBD>
### 快速回滚(推荐)
### 敹恍<EFBFBD><EFBFBD>皛𡄯<EFBFBD><EFBFBD><EFBFBD>嚗?
```sql
-- <20>𣳇膄<F0A3B387><E88684><EFBFBD>㗇鰵撱箇<E692B1>Schema嚗<61><E59A97>蝥扯<E89DA5><E689AF>𣳇膄<F0A3B387><E88684><EFBFBD>㕑”<E39591>峕㺭<E5B395><EFBFBD>
DROP SCHEMA IF EXISTS platform_schema CASCADE;
@@ -274,8 +250,7 @@ DROP SCHEMA IF EXISTS ssa_schema CASCADE;
DROP SCHEMA IF EXISTS st_schema CASCADE;
```
### 从备份恢复
### 隞𤾸<EFBFBD>隞賣<EFBFBD>憭?
```bash
# <20><EFBFBD><EFBFBD>
psql $DATABASE_URL < backup_20251109_100000.sql
@@ -287,10 +262,9 @@ psql $DATABASE_URL < backup_20251109_100000.sql
<EFBFBD>宏摰峕<EFBFBD><EFBFBD>𠬍<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
1. **更新Prisma配置** → 见任务9
1. **<EFBFBD>湔鰵Prisma<EFBFBD>滨蔭** <20>?閫<><EFBFBD>?
- <20>湔鰵 `backend/prisma/schema.prisma`
- 添加 `multiSchema` 预览特性
- 为3个Schema定义模型
- 瘛餃<EFBFBD> `multiSchema` <EFBFBD><EFBFBD><EFBFBD><EFBFBD>? - 銝?銝杵chema摰帋<E691B0><E79285>
2. **<2A><><EFBFBD>Prisma Client**
```bash
@@ -298,28 +272,25 @@ psql $DATABASE_URL < backup_20251109_100000.sql
npx prisma generate
```
3. **更新代码** → 见任务12
3. **<EFBFBD>湔鰵隞<EFBFBD><EFBFBD>** <20>?閫<><EFBFBD>?2
- <20><><EFBFBD>㗇㺭<E39787><EFBFBD><E6A180>亥砭雿輻鍂<E8BCBB>訕chema
- 瘚贝<E7989A><E8B49D><EFBFBD><E594B3><EFBFBD>
4. **运行测试** → 见任务8
4. **餈鞱<EFBFBD>瘚贝<EFBFBD>** <20>?閫<><EFBFBD>?
- 瘚贝<E7989A>AI<41><EFBFBD><E7AE84><EFBFBD>
- 测试知识库功能
- 瘚贝<EFBFBD><EFBFBD><EFBFBD>摨枏<EFBFBD><EFBFBD>?
---
## <20><> <20><EFBFBD>撣桀𨭌
如果遇到问题:
1. **查看日志** - psql会输出详细的执行信息和错误
2. **检查文档** - 参考 `09-架构实施/01-Schema隔离架构设计10个.md`
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗?
1. **<2A><EFBFBD><E4BAA6><EFBFBD>** - psql隡朞<E99AA1><E69C9E>箄祕蝏<E7A595><E89D8F><EFBFBD><EFBFBD>靽⊥<E99DBD><E28AA5><EFBFBD>霂?2. **璉<><E79289><EFBFBD>獢?* - <20><><EFBFBD>?`09-<2D><EFBFBD>摰墧鴌/01-Schema<6D>𠉛氖<F0A0899B><EFBFBD>霈曇恣嚗?0銝迎<E98A9D>.md`
3. **撉諹<E69289><E8ABB9>唳旿** - 餈鞱<E9A488> `005-validate-all.sql`
---
**<EFBFBD>𥕦遣鈭綽<EFBFBD>** AI<41><EFBFBD>
**<EFBFBD><EFBFBD><EFBFBD>擧凒<EFBFBD><EFBFBD>** 2025-11-09
**版本:** V1.0
**<EFBFBD><EFBFBD>𧋦嚗?* V1.0
**核心理念:可重复执行 + 事务保护 + 完整验证 = 安全迁移** ⭐⭐⭐
**<EFBFBD><EFBFBD><EFBFBD><EFBFBD>艙嚗𡁜虾<EFBFBD><EFBFBD><EFBFBD><EFBFBD> + 鈭见𦛚靽脲擪 + 摰峕㟲撉諹<E69289> = 摰匧<E691B0><EFBFBD>宏** 潃鐥<E6BD83>潃?