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,28 +1,28 @@
# 2025-11-14 浠诲姟19瀹屾垚鎬荤粨
> **任务:** 后端代码分层Backend Code Layering
> **时间:** 2025-11-14
> **状态:** ✅ 完成
> **策略:** 增量演进,新旧并存
> **浠诲姟锛?* 鍚庣<E98D9A>爜鍒嗗眰锛圔ackend Code Layering锛?
> **鏃堕棿锛?* 2025-11-14
> **鐘舵€侊細** 鉁?瀹屾垚
> **绛栫暐锛?* 澧為噺婕旇繘锛屾柊鏃у苟瀛?
---
## 馃幆 浠诲姟鐩<E5A79F>
基于《前后端模块化架构设计-V2.md》和《后端架构增量演进方案.md》对后端代码进行分层改造为未来模块独立部署打下基础。
鍩轰簬銆婂墠鍚庣<EFBFBD>妯″潡鍖栨灦鏋勮<EFBFBD>璁?V2.md銆嬪拰銆婂悗绔<E68297>灦鏋勫<E98F8B>閲忔紨杩涙柟妗?md銆嬶紝瀵瑰悗绔<E68297>唬鐮佽繘琛屽垎灞傛敼閫狅紝涓烘湭鏉ユā鍧楃嫭绔嬮儴缃叉墦涓嬪熀纭€銆?
---
## ✅ 完成内容
## 鉁?瀹屾垚鍐呭<E98D90>
### 1. **鏋舵瀯绛栫暐鍒跺畾**
- ✅ 采用"绞杀者模式"Strangler Fig Pattern
- ✅ 新旧代码并存,零风险改造
- ✅ 现有模块保持不变,新模块按标准开发
- 鉁?閲囩敤"缁炴潃鑰呮ā寮?锛圫trangler Fig Pattern锛?
- 鉁?鏂版棫浠g爜骞跺瓨锛岄浂椋庨櫓鏀归€?
- 鉁?鐜版湁妯″潡淇濇寔涓嶅彉锛屾柊妯″潡鎸夋爣鍑嗗紑鍙?
### 2. **鐩<>綍缁撴瀯閲嶇粍**
#### **重组前**(平铺结构):
#### **閲嶇粍鍓?*锛堝钩閾虹粨鏋勶級锛?
```
backend/src/
鈹溾攢鈹€ routes/
@@ -35,140 +35,140 @@ backend/src/
鈹斺攢鈹€ config/
```
#### **重组后**(三层架构):
#### **閲嶇粍鍚?*锛堜笁灞傛灦鏋勶級锛?
```
backend/src/
鈹溾攢鈹€ legacy/ # 馃敻 鐜版湁涓氬姟浠g爜锛堜繚鎸佷笉鍙橈級
│ ├── routes/
│ ├── controllers/
│ ├── services/
│ └── templates/
├── common/ # 🔧 通用能力层
│ ├── llm/adapters/ # LLM适配器(DeepSeek, Qwen
│ ├── rag/ # RAG能力Dify
│ ├── document/ # 文档处理
│ ├── utils/ # 工具函数
│ └── middleware/ # 中间件
├── modules/ # 🌟 新架构模块
│ └── asl/ # ASL模块占位(标准化)
└── config/ # ⚙️ 配置层
鈹? 鈹溾攢鈹€ routes/
鈹? 鈹溾攢鈹€ controllers/
鈹? 鈹溾攢鈹€ services/
鈹? 鈹斺攢鈹€ templates/
鈹?
鈹溾攢鈹€ common/ # 馃敡 閫氱敤鑳藉姏灞?
鈹? 鈹溾攢鈹€ llm/adapters/ # LLM閫傞厤鍣<EFBFBD>DeepSeek, Qwen锛?
鈹? 鈹溾攢鈹€ rag/ # RAG鑳藉姏锛圖ify锛?
鈹? 鈹溾攢鈹€ document/ # 鏂囨。澶勭悊
鈹? 鈹溾攢鈹€ utils/ # 宸ュ叿鍑芥暟
鈹? 鈹斺攢鈹€ middleware/ # <EFBFBD>棿浠?
鈹?
鈹溾攢鈹€ modules/ # 馃専 鏂版灦鏋勬ā鍧?
鈹? 鈹斺攢鈹€ asl/ # ASL妯″潡鍗犱綅锛堟爣鍑嗗寲锛?
鈹?
鈹斺攢鈹€ config/ # 鈿欙笍 閰嶇疆灞?
```
### 3. **浠g爜杩佺Щ**
#### **文件迁移清单**
- ✅ 7个路由文件 → `legacy/routes/`
- ✅ 8个控制器文件 → `legacy/controllers/`
- ✅ 8个服务文件 → `legacy/services/`
- ✅ 1个模板文件 → `legacy/templates/`
- ✅ 4个LLM适配器 → `common/llm/adapters/`
- ✅ 2个RAG客户端 → `common/rag/`
- ✅ 1个文档处理客户端 → `common/document/`
- ✅ 1个工具文件 → `common/utils/`
- ✅ 1个中间件文件 → `common/middleware/`
#### **鏂囦欢杩佺Щ娓呭崟**锛?
- 鉁?7涓<37>矾鐢辨枃浠?鈫?`legacy/routes/`
- 鉁?8涓<38>帶鍒跺櫒鏂囦欢 鈫?`legacy/controllers/`
- 鉁?8涓<38>湇鍔℃枃浠?鈫?`legacy/services/`
- 鉁?1涓<31>ā鏉挎枃浠?鈫?`legacy/templates/`
- 鉁?4涓狶LM閫傞厤鍣?鈫?`common/llm/adapters/`
- 鉁?2涓猂AG瀹㈡埛绔?鈫?`common/rag/`
- 鉁?1涓<31>枃妗<E5A697>鐞嗗<E9909E>鎴风<E98EB4> 鈫?`common/document/`
- 鉁?1涓<31>伐鍏锋枃浠?鈫?`common/utils/`
- 鉁?1涓<31>腑闂翠欢鏂囦欢 鈫?`common/middleware/`
**总计33个文件零风险迁移**
**鎬昏<EFBFBD>锛?3涓<33>枃浠讹紝闆堕<E99786>闄╄縼绉?*
### 4. **瀵煎叆璺<E58F86>緞鏇存柊**
#### **更新类型**
- `index.ts`7处路由导入路径
- Legacy层内部15处导入路径更新
- `config` 相对路径:`../config/``../../config/`
- `adapters` 相对路径:`../adapters/``../../common/llm/adapters/`
- `clients` 相对路径:`../clients/xxx``../../common/rag|document/xxx`
- `utils` 相对路径:`../utils/``../../common/utils/`
- `middleware` 相对路径:`../middleware/``../../common/middleware/`
- Common层内部3处导入路径更新
- `config` 相对路径:`../config/``../../config/``../../../config/`
- `__dirname` 路径4处更新
- `agentService.ts`: 2处(config/agents.yaml, prompts/
- `reviewService.ts`: 2处(prompts/review_*.txt
#### **鏇存柊绫诲瀷**锛?
- 鉁?`index.ts`锛?澶勮矾鐢卞<E990A2>鍏ヨ矾寰?
- 鉁?Legacy灞傚唴閮<EFBFBD>細15澶勫<EFBFBD>鍏ヨ矾寰勬洿鏂?
- `config` 鐩稿<EFBFBD><EFBFBD>緞锛歚../config/` 鈫?`../../config/`
- `adapters` 鐩稿<EFBFBD><EFBFBD>緞锛歚../adapters/` 鈫?`../../common/llm/adapters/`
- `clients` 鐩稿<EFBFBD><EFBFBD>緞锛歚../clients/xxx` 鈫?`../../common/rag|document/xxx`
- `utils` 鐩稿<EFBFBD><EFBFBD>緞锛歚../utils/` 鈫?`../../common/utils/`
- `middleware` 鐩稿<EFBFBD><EFBFBD>緞锛歚../middleware/` 鈫?`../../common/middleware/`
- 鉁?Common灞傚唴閮<EFBFBD>細3澶勫<EFBFBD>鍏ヨ矾寰勬洿鏂?
- `config` 鐩稿<EFBFBD><EFBFBD>緞锛歚../config/` 鈫?`../../config/` 鎴?`../../../config/`
- 鉁?`__dirname` <EFBFBD>緞锛?澶勬洿鏂?
- `agentService.ts`: 2澶勶紙config/agents.yaml, prompts/锛?
- `reviewService.ts`: 2澶勶紙prompts/review_*.txt锛?
**总计29处路径更新逐个手动修改无乱码**
**鎬昏<EFBFBD>锛?9澶勮矾寰勬洿鏂帮紝閫愪釜鎵嬪姩淇<E5A7A9>敼锛屾棤涔辩爜**
### 5. **鍏抽敭闂<E695AD><E99782>喅**
#### **问题1中文乱码风险**
- **预防措施**:逐个文件手动修改,拒绝批量脚本
- **结果**:✅ 零乱码,所有中文注释完好
#### **<EFBFBD><EFBFBD>1锛氫腑鏂囦贡鐮侀<EFBFBD>闄?*
- **棰勯槻鎺<EFBFBD>柦**锛氶€愪釜鏂囦欢鎵嬪姩淇<E5A7A9>敼锛屾嫆缁濇壒閲忚剼鏈?
- **缁撴灉**锛氣渽 闆朵贡鐮侊紝鎵€鏈変腑鏂囨敞閲婂畬濂?
#### **闂<><E99782>2锛氭壒澶勭悊鍔熻兘500閿欒<E996BF>**
- **错误**`rawOutput` 字段不存在
- **閿欒<EFBFBD>**锛歚rawOutput` 瀛楁<E7809B>涓嶅瓨鍦?
- **鏍瑰洜**锛歅risma Schema 缂哄皯 `@map("raw_output")`
- **瑙e喅**锛氭坊鍔犳槧灏勶紝閲嶆柊鐢熸垚 Prisma Client
- **结果**:✅ 批处理功能正常运行
- **缁撴灉**锛氣渽 鎵瑰<E98EB5>鐞嗗姛鑳芥<E991B3>甯歌繍琛?
#### **问题3配置文件路径**
#### **<EFBFBD><EFBFBD>3锛氶厤缃<EFBFBD>枃浠惰矾寰?*
- **闂<><E99782>**锛歚agents.yaml`, `prompts/` 璺<>緞閿欒<E996BF>
- **解决**:修正 `__dirname` 相对路径计算
- **瑙e喅**锛氫慨姝?`__dirname` 鐩稿<EFBFBD><EFBFBD>緞璁
- **缁撴灉**锛氣渽 閰嶇疆鏂囦欢姝g‘鍔犺浇
---
## 馃И 娴嬭瘯楠岃瘉
### **功能测试**Frontend + Backend
1. **智能问答 - 对话模式**:正常运行
2. **智能问答 - 知识库模式**:正常运行
3. **智能问答 - 批处理模式**:✅ 修复后正常
4. **知识库管理**:正常运行
5. **文档上传**:正常运行
6. **项目管理**:正常运行
### **鍔熻兘娴嬭瘯**锛團rontend + Backend锛?
1. 鉁?**鏅鸿兘闂<E58598>瓟 - 瀵硅瘽妯″紡**锛氭<E9949B>甯歌繍琛?
2. 鉁?**鏅鸿兘闂<E58598>瓟 - 鐭ヨ瘑搴撴ā寮?*锛氭<E9949B>甯歌繍琛?
3. 鉁?**鏅鸿兘闂<E58598>瓟 - 鎵瑰<E98EB5>鐞嗘ā寮?*锛氣渽 淇<><E6B787>鍚庢<E98D9A>甯?
4. 鉁?**鐭ヨ瘑搴撶<E690B4>鐞?*锛氭<E9949B>甯歌繍琛?
5. 鉁?**鏂囨。涓婁紶**锛氭<E9949B>甯歌繍琛?
6. 鉁?**椤圭洰绠$悊**锛氭<E9949B>甯歌繍琛?
### **鏈嶅姟鍚<E5A79F>姩娴嬭瘯**
```bash
# 鍚庣<E98D9A>鏈嶅姟
npm run dev - 正常启动
http://localhost:3001/health - 健康检查通过
鉁?npm run dev - 父鍚<EFBFBD>
鉁?http://localhost:3001/health - 鍋ュ悍妫€鏌ラ€氳繃
# 鍓嶇<E98D93>鏈嶅姟
npm run dev - 正常启动
http://localhost:3000 - 前端页面正常
鉁?npm run dev - 父鍚<EFBFBD>
鉁?http://localhost:3000 - 鍓嶇<EFBFBD>椤甸潰姝
```
---
## 馃搳 鏋舵瀯瀵规瘮
| 维度 | 重组前 | 重组后 |
| 缁村害 | 閲嶇粍鍓?| 閲嶇粍鍚?|
|------|--------|--------|
| **代码组织** | 平铺,无层次 | 三层架构,清晰明确 |
| **浠g爜缁勭粐** | 骞抽摵锛屾棤灞傛<EFBFBD> | 涓夊眰鏋舵瀯锛屾竻鏅版槑纭?|
| **鑱岃矗鍒掑垎** | 娣锋潅 | Legacy/Common/Modules 鍒嗙<E98D92> |
| **新模块开发** | 无标准 | 标准化目录结构 |
| **独立部署** | 不支持 | 支持modules/asl/ |
| **鏂版ā鍧楀紑鍙?* | 鏃犳爣鍑?| 鏍囧噯鍖栫洰褰曠粨鏋?|
| **<EFBFBD>珛閮ㄧ讲** | 涓嶆敮鎸?| 鏀<>寔锛坢odules/asl/锛?|
| **浠g爜澶嶇敤** | 鍥伴毦 | 閫氱敤鑳藉姏灞傜粺涓€绠$悊 |
| **架构演进** | 一次性重写风险高 | 增量演进,风险可控 |
| **鏋舵瀯婕旇繘** | 涓€娆℃€ч噸鍐欓<EFBFBD>闄╅珮 | 澧為噺婕旇繘锛岄<E9949B>闄╁彲鎺?|
---
## 🎯 核心价值
## 馃幆 鏍稿績浠峰€?
### 1. **零风险改造** ⭐⭐⭐
### 1. **闆堕<EFBFBD>闄╂敼閫?* 猸愨瓙猸?
- 鐜版湁鍔熻兘100%杩愯<E69DA9>
- 无需大规模重构
- 随时可回滚
- 鏃犻渶澶ц<EFBFBD>妯¢噸鏋?
- 闅忔椂鍙<EFBFBD>洖婊?
### 2. **清晰的架构边界**
### 2. **娓呮櫚鐨勬灦鏋勮竟鐣?*
```
legacy/ ← 旧代码,明确标识,不主动改
common/ ← 通用能力,各模块共享
modules/ ← 新模块,标准化开发
legacy/ 鈫?鏃т唬鐮侊紝鏄庣‘鏍囪瘑锛屼笉涓诲姩鏀?
common/ 鈫?閫氱敤鑳藉姏锛屽悇妯″潡鍏变韩
modules/ 鈫?鏂版ā鍧楋紝鏍囧噯鍖栧紑鍙?
```
### 3. **ASL模块开发就绪**
- `modules/asl/` 目录已创建
- 可直接按标准架构开发
- 不受旧代码约束
### 3. **ASL妯″潡寮€鍙戝氨缁?*
- `modules/asl/` <EFBFBD>綍宸插垱寤?
- <EFBFBD>洿鎺ユ寜鏍囧噯鏋舵瀯寮€鍙?
- 涓嶅彈鏃т唬鐮佺害鏉?
### 4. **骞虫粦婕旇繘璺<E7B998>緞**
```
现在: 7个旧模块legacy + 0个新模块
未来: 7个旧模块 + 1个新模块ASL
更远: 7个旧模块 + N个新模块
鐜板湪锛? 7涓<37>棫妯″潡锛坙egacy锛?+ 0<EFBFBD>柊妯″潡
<EFBFBD>潵锛? 7涓<37>棫妯″潡 + 1涓<31>柊妯″潡锛圓SL锛?
鏇磋繙锛? 7涓<37>棫妯″潡 + N涓<4E>柊妯″潡
鏈€缁堬細 鎸夐渶閫愭<E996AB>杩佺Щ鏃фā鍧楋紙鍙<E7B499>€夛級
```
@@ -176,56 +176,56 @@ modules/ ← 新模块,标准化开发
## 馃摑 缁忛獙鎬荤粨
### ✅ **做得好的**
1. **谨慎的策略**:选择增量演进而非一次性重写
2. **手动修改**:逐个文件修改,避免批量脚本乱码
### 鉁?**鍋氬緱濂界殑**
1. **璋ㄦ厧鐨勭瓥鐣?*锛氶€夋嫨澧為噺婕旇繘鑰岄潪涓€娆℃€ч噸鍐?
2. **鎵嬪姩淇<EFBFBD>敼**锛氶€愪釜鏂囦欢淇<E6ACA2>敼锛岄伩鍏嶆壒閲忚剼鏈<E589BC>贡鐮?
3. **鍏呭垎娴嬭瘯**锛氭瘡涓<E798A1>姛鑳介兘瀹為檯娴嬭瘯楠岃瘉
4. **闂<><E99782>娣辨寲**锛氭壒澶勭悊闂<E6828A><E99782>杩芥牴婧<E789B4>簮鍒版暟鎹<E69A9F>簱瀛楁<E7809B>
5. **鏂囨。瀹屽杽**锛氳<E9949B>缁嗚<E7BC81>褰曞疄鏂借繃绋嬪拰鍐崇瓥
### 鈿狅笍 **闇€瑕佹敞鎰忕殑**
1. **路径依赖**:导入路径需仔细计算(`../` vs `../../` vs `../../../`
2. **相对路径陷阱**`__dirname` 在目录移动后需要调整
3. **Prisma映射**:数据库字段与代码字段需要 `@map` 映射
4. **测试覆盖**:某些功能(如批处理)之前可能测试不足
1. **<EFBFBD>緞渚濊禆**锛氬<E9949B>鍏ヨ矾寰勯渶浠旂粏璁畻锛坄../` vs `../../` vs `../../../`锛?
2. **鐩稿<EFBFBD><EFBFBD>緞闄烽槺**锛歚__dirname` 鍦ㄧ洰褰曠Щ鍔ㄥ悗闇€瑕佽皟鏁?
3. **Prisma鏄犲皠**锛氭暟鎹<E69A9F>簱瀛楁<E7809B>涓庝唬鐮佸瓧娈甸渶瑕?`@map` 鏄犲皠
4. **娴嬭瘯瑕嗙洊**锛氭煇浜涘姛鑳斤紙濡傛壒澶勭悊锛変箣鍓嶅彲鑳芥祴璇曚笉瓒?
---
## 馃搨 鐩稿叧鏂囨。
1. **架构设计**
1. **鏋舵瀯璁捐<EFBFBD>**锛?
- `docs/00-绯荤粺鎬讳綋璁捐<E79281>/鍓嶅悗绔<E68297>ā鍧楀寲鏋舵瀯璁捐<E79281>-V2.md`
- `docs/09-鏋舵瀯瀹炴柦/鍚庣<E98D9A>鏋舵瀯澧為噺婕旇繘鏂规<E98F82>.md`
2. **实施记录**
- `docs/08-项目管理/下一阶段行动计划-V2.2-完整版.md`
2. **瀹炴柦璁板綍**锛?
- `docs/08-椤圭洰绠$悊/涓嬩竴闃舵<E99783>琛屽姩璁″垝-V2.2-瀹屾暣鐗?md`
3. **编码规范**
- `docs/09-架构实施/编码规范-UTF8最佳实践.md`
3. **缂栫爜瑙勮寖**锛?
- `docs/09-鏋舵瀯瀹炴柦/缂栫爜瑙勮寖-UTF8鏈€浣冲疄璺?md`
- `.editorconfig`
- `.gitattributes`
---
## 🚀 下一步行动
## 馃殌 涓嬩竴姝ヨ<E5A79D>鍔?
### **绔嬪嵆寮€濮嬶細浠诲姟20 - Week 2 楠屾敹**
1. 楠屾敹鍓嶇<E98D93>缁熶竴鏋舵瀯
2. 楠屾敹鍚庣<E98D9A>爜鍒嗗眰
3. 缂栧啓 Week 2 鎬荤粨鎶ュ憡
4. 准备 ASL 开发
4. 鍑嗗<EFBFBD> ASL 寮€鍙?
### **Week 3-4ASL 模块开发**
- 在新架构下开发 ASL 模块
- 验证标准化开发流程
- 积累新架构实践经验
### **Week 3-4锛欰SL 妯″潡寮€鍙?*
- 鍦ㄦ柊鏋舵瀯涓嬪紑鍙?ASL 妯″潡
- 楠岃瘉鏍囧噯鍖栧紑鍙戞祦绋?
- <EFBFBD>疮鏂版灦鏋勫疄璺电粡楠?
---
**完成时间:** 2025-11-14
**耗时:** 约4小时含问题排查
**文件修改:** 33个文件移动 + 29处路径更新 + 1处Prisma修复
**测试状态:** ✅ 所有功能通过
**风险等级:** 极低(增量演进)
**成果评价:** ⭐⭐⭐ 超出预期,架构清晰,功能稳定
**瀹屾垚鏃堕棿锛?* 2025-11-14
**鑰楁椂锛?* 绾?灏忔椂锛堝惈闂<E68388><E99782>鎺掓煡锛?
**鏂囦欢淇<EFBFBD>敼锛?* 33涓<33>枃浠剁Щ鍔?+ 29澶勮矾寰勬洿鏂?+ 1澶凱risma<EFBFBD><EFBFBD>
**娴嬭瘯鐘舵€侊細** 鉁?鎵€鏈夊姛鑳介€氳繃
**椋庨櫓绛夌骇锛?* 鏋佷綆锛堝<E9949B>閲忔紨杩涳級
**鎴愭灉璇勪环锛?* 猸愨瓙猸?瓒呭嚭棰勬湡锛屾灦鏋勬竻鏅帮紝鍔熻兘绋冲畾