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,6 +1,6 @@
|
||||
# Node.js 蜷守ォッ - pino-pretty 髣ョ鬚倅ソョ螟崎ョー蠖<EFBDB0>
|
||||
|
||||
> **修复时间**:2025-12-24
|
||||
> **菫ョ螟肴慮髣エ**<2A>?025-12-24
|
||||
> **髣ョ鬚伜次蝗<E6ACA1>**<2A>夂函莠ァ邇ッ蠅<EFBDAF>スソ逕ィ莠<EFBDA8>シ蜿台セ晁オ朴ino-pretty
|
||||
> **隗」蜀ウ譁ケ譯<EFBDB9>**<2A>壽<EFBFBD>ケ謐ョ邇ッ蠅<EFBDAF>序驥乗擅莉カ蛹紋スソ逕ィpino-pretty
|
||||
|
||||
@@ -15,27 +15,27 @@ Error: unable to determine transport target for "pino-pretty"
|
||||
```
|
||||
|
||||
### 譬ケ譛ャ蜴溷屏
|
||||
1. `pino-pretty` 是一个**devDependency**(开发依赖)
|
||||
2. Dockerfile使用 `npm ci --production` 只安装生产依赖
|
||||
1. `pino-pretty` 譏ッ荳荳?*devDependency**<EFBFBD>亥シ蜿台セ晁オ厄シ<EFBFBD>
|
||||
2. Dockerfile菴ソ逕ィ `npm ci --production` 蜿ェ螳芽」<EFBFBD>函莠ァ萓晁オ?
|
||||
3. `pino-pretty` **荳堺シ夊「ォ螳芽」<E88ABD>芦逕滉コァ邇ッ蠅<EFBDAF>**
|
||||
4. 但 `src/index.ts` 中硬编码了 `pino-pretty` 作为日志格式化工具
|
||||
5. 生产环境启动时找不到 `pino-pretty`,导致崩溃
|
||||
4. 菴?`src/index.ts` 荳ュ遑ャ郛也<EFBFBD>∽コ?`pino-pretty` 菴應クコ譌・蠢玲<EFBFBD>シ蠑丞喧蟾・蜈?
|
||||
5. 逕滉コァ邇ッ蠅<EFBFBD>星蜉ィ譌カ謇セ荳榊芦 `pino-pretty`<EFBFBD>悟ッシ閾エ蟠ゥ貅?
|
||||
|
||||
---
|
||||
|
||||
## ✅ 解决方案
|
||||
## 笨?隗」蜀ウ譁ケ譯<EFBDB9>
|
||||
|
||||
### 1. 菫ョ謾ケ莉」遐<EFBDA3> - 譚。莉カ蛹紋スソ逕ィpino-pretty
|
||||
|
||||
**譁<>サカ**<EFBFBD>啻backend/src/index.ts`
|
||||
|
||||
**修改前(第29-41行)**:
|
||||
**菫ョ謾ケ蜑搾シ育ャ?9-41陦鯉シ<E9AF89>**<2A>?
|
||||
```typescript
|
||||
const fastify = Fastify({
|
||||
logger: {
|
||||
level: config.logLevel,
|
||||
transport: {
|
||||
target: 'pino-pretty', // ❌ 硬编码,生产环境会报错
|
||||
target: 'pino-pretty', // 笶?遑ャ郛也<E9839B><E4B99F>シ檎函莠ァ邇ッ蠅<EFBDAF>シ壽冠髞?
|
||||
options: {
|
||||
colorize: true,
|
||||
translateTime: 'HH:MM:ss Z',
|
||||
@@ -46,7 +46,7 @@ const fastify = Fastify({
|
||||
});
|
||||
```
|
||||
|
||||
**修改后**:
|
||||
**菫ョ謾ケ蜷?*<2A>?
|
||||
```typescript
|
||||
// 逕滉コァ邇ッ蠅<EFBDAF>スソ逕ィJSON譬シ蠑乗律蠢暦シ域ァ閭ス譖エ螂ス<E89E82>会シ悟シ蜿醍識蠅<E8AD98>スソ逕ィpino-pretty<74>域<EFBFBD>隸サ<E99AB8><EFBDBB>
|
||||
const fastify = Fastify({
|
||||
@@ -70,10 +70,10 @@ const fastify = Fastify({
|
||||
});
|
||||
```
|
||||
|
||||
**关键改进**:
|
||||
- ✅ 根据 `NODE_ENV` 条件化配置
|
||||
- ✅ 生产环境:使用原生JSON日志(性能更好,适合ELK/Loki等日志系统)
|
||||
- ✅ 开发环境:使用pino-pretty(易读,便于调试)
|
||||
**蜈ウ髞ョ謾ケ霑<EFBFBD>**<2A>?
|
||||
- 笨?譬ケ謐ョ `NODE_ENV` 譚。莉カ蛹夜<E89BB9>鄂?
|
||||
- 笨?逕滉コァ邇ッ蠅<EFBDAF>シ壻スソ逕ィ蜴溽函JSON譌・蠢暦シ域ァ閭ス譖エ螂ス<E89E82>碁ょ粋ELK/Loki遲画律蠢礼ウサ扈滂シ<E6BB82>
|
||||
- 笨?蠑蜿醍識蠅<E8AD98>シ壻スソ逕ィpino-pretty<74>域<EFBFBD>隸サ<E99AB8>御セソ莠手ー<E6898B>ッ包シ?
|
||||
|
||||
### 2. 驥肴眠郛冶ッ禅ypeScript
|
||||
|
||||
@@ -90,9 +90,9 @@ npm run build
|
||||
docker build -t crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/backend-service:v1.2 .
|
||||
```
|
||||
|
||||
**构建结果**:
|
||||
- ✅ 构建成功
|
||||
- ✅ 耗时:8.4秒(快速,大部分层使用缓存)
|
||||
**譫<EFBFBD>サコ扈捺棡**<2A>?
|
||||
- 笨?譫<>サコ謌仙粥
|
||||
- 笨?閠玲慮<E78EB2>?.4遘抵シ亥ソォ騾滂シ悟、ァ驛ィ蛻<EFBFBD>アゆスソ逕ィ郛灘ュ假シ?
|
||||
|
||||
### 4. 謗ィ騾∝芦ACR
|
||||
|
||||
@@ -100,9 +100,9 @@ docker build -t crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-cli
|
||||
docker push crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/backend-service:v1.2
|
||||
```
|
||||
|
||||
**推送结果**:
|
||||
- ✅ 推送成功
|
||||
- ✅ Digest: `sha256:dd48750c5032681613776ea484a2194622e3926c6f49a1d7246105c090ecce35`
|
||||
**謗ィ騾∫サ捺<EFBFBD>?*<2A>?
|
||||
- 笨?謗ィ騾∵<E9A8BE>蜉?
|
||||
- 笨?Digest: `sha256:dd48750c5032681613776ea484a2194622e3926c6f49a1d7246105c090ecce35`
|
||||
|
||||
---
|
||||
|
||||
@@ -110,77 +110,77 @@ docker push crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinica
|
||||
|
||||
| 鬘ケ逶ョ | v1.0 | v1.1 | v1.2<EFBFBD>域怙譁ー<EFBFBD><EFBFBD> |
|
||||
|------|------|------|-------------|
|
||||
| **问题** | 缺少config | ❌ 修复 | ❌ 修复 |
|
||||
| **问题** | - | pino-pretty | ✅ 修复 |
|
||||
| **状态** | ❌ 启动失败 | ❌ 启动失败 | ✅ 待验证 |
|
||||
| **修改内容** | - | +config目录 | +条件化日志配置 |
|
||||
| **构建时间** | ~5分钟 | ~1分钟 | ~8秒 |
|
||||
| **髣ョ鬚<EFBFBD>** | 郛コ蟆祖onfig | 笶?菫ョ螟<EFBDAE> | 笶?菫ョ螟<EFBDAE> |
|
||||
| **髣ョ鬚<EFBFBD>** | - | pino-pretty | 笨?菫ョ螟<EFBDAE> |
|
||||
| **迥カ諤?* | 笶?蜷ッ蜉ィ螟ア雍・ | 笶?蜷ッ蜉ィ螟ア雍・ | 笨?蠕<>ェ瑚ッ?|
|
||||
| **菫ョ謾ケ蜀<EFBFBD>ョケ** | - | +config逶ョ蠖<EFBFBD> | +譚。莉カ蛹匁律蠢鈴<E8A0A2>鄂?|
|
||||
| **譫<EFBFBD>サコ譌カ髣エ** | ~5蛻<EFBFBD>帖 | ~1蛻<EFBFBD>帖 | ~8遘?|
|
||||
|
||||
---
|
||||
|
||||
## 🎯 下一步操作
|
||||
## <EFBFBD>識 荳倶ク豁・謫堺ス?
|
||||
|
||||
### 步骤1:登录SAE控制台
|
||||
### 豁・鬪、1<EFBFBD>夂匳蠖百AE謗ァ蛻カ蜿?
|
||||
隶ソ髣ョ<EFBFBD>喇ttps://sae.console.aliyun.com/
|
||||
|
||||
### 豁・鬪、2<EFBDA4>壽峩譁ー髟懷ワ迚域悽荳コ v1.2
|
||||
|
||||
1. 謇セ蛻ー蠎皮畑<E79AAE>啻nodejs-backend-test`
|
||||
2. 配置管理 → 部署配置 → 镜像设置
|
||||
3. 修改镜像版本:
|
||||
2. 驟咲スョ邂。逅<EFBFBD> 竊?驛ィ鄂イ驟咲スョ 竊?髟懷ワ隶セ鄂ョ
|
||||
3. 菫ョ謾ケ髟懷ワ迚域悽<EFBFBD>?
|
||||
```
|
||||
莉趣シ喘ackend-service:v1.1
|
||||
改为:backend-service:v1.2 ✨
|
||||
謾ケ荳コ<EFBFBD>喘ackend-service:v1.2 笨?
|
||||
```
|
||||
|
||||
### 豁・鬪、3<EFBDA4>夐㍾譁ー驛ィ鄂イ蟷カ鬪瑚ッ<E7919A>
|
||||
|
||||
1. 保存并重新部署
|
||||
1. 菫晏ュ伜ケカ驥肴眠驛ィ鄂?
|
||||
2. 譟・逵句ョ樊慮譌・蠢<EFBDA5>
|
||||
3. **成功标志**:
|
||||
3. **謌仙粥譬<EFBFBD>ソ<EFBFBD>**<2A>?
|
||||
|
||||
**✅ 期望的日志格式**(JSON格式,不是pretty格式):
|
||||
**笨?譛滓悍逧<E6828D>律蠢玲<E8A0A2>シ蠑?*<2A><>SON譬シ蠑擾シ御ク肴弍pretty譬シ蠑擾シ会シ<E4BC9A>
|
||||
```json
|
||||
{"level":30,"time":1703472498828,"pid":1,"hostname":"xxx","msg":"Server listening at http://0.0.0.0:3001"}
|
||||
{"level":30,"time":1703472498830,"pid":1,"hostname":"xxx","msg":"Config loaded: /app/config/agents.yaml"}
|
||||
{"level":30,"time":1703472498832,"pid":1,"hostname":"xxx","msg":"Database connected successfully"}
|
||||
```
|
||||
|
||||
**❌ 不应该出现**:
|
||||
**笶?荳榊コ碑ッ・蜃コ邇?*<2A>?
|
||||
- `Error: unable to determine transport target for "pino-pretty"`
|
||||
- 任何关于pino-pretty的错误
|
||||
- 莉サ菴募<EFBFBD>莠姿ino-pretty逧<EFBFBD>漠隸?
|
||||
|
||||
---
|
||||
|
||||
## 📊 为什么生产环境不用pino-pretty?
|
||||
## <EFBFBD>投 荳コ莉荵育函莠ァ邇ッ蠅<EFBDAF>ク咲畑pino-pretty<EFBFBD>?
|
||||
|
||||
### 諤ァ閭ス蟇ケ豈<EFBDB9>
|
||||
|
||||
| 謖<><E8AC96><EFBFBD> | 蜴溽函JSON | pino-pretty |
|
||||
|------|---------|-------------|
|
||||
| **吞吐量** | ~30,000 log/s | ~3,000 log/s |
|
||||
| **CPU使用** | 低 | 高(格式化开销) |
|
||||
| **内存使用** | 低 | 高 |
|
||||
| **适用场景** | 生产环境 | 开发环境 |
|
||||
| **蜷槫瑞驥?* | ~30,000 log/s | ~3,000 log/s |
|
||||
| **CPU菴ソ逕ィ** | 菴?| 鬮假シ域<EFBDBC>シ蠑丞喧蠑髞<E9AB9E>?|
|
||||
| **蜀<EFBFBD>ュ倅スソ逕ィ** | 菴?| 鬮?|
|
||||
| **騾ら畑蝨コ譎ッ** | 逕滉コァ邇ッ蠅<EFBDAF> | 蠑蜿醍識蠅?|
|
||||
|
||||
### 譌・蠢礼ウサ扈滄寔謌<E5AF94>
|
||||
|
||||
**生产环境最佳实践**:
|
||||
**逕滉コァ邇ッ蠅<EFBFBD>怙菴ウ螳櫁キ?*<2A>?
|
||||
```
|
||||
蠎皮畑霎灘<EFBFBD>JSON譌・蠢<EFBFBD>
|
||||
↓
|
||||
SAE/K8s收集(stdout/stderr)
|
||||
↓
|
||||
日志系统(ELK/Loki/阿里云SLS)
|
||||
↓
|
||||
可视化分析(Kibana/Grafana)
|
||||
竊?
|
||||
SAE/K8s謾カ髮<EFBFBD>シ<EFBFBD>tdout/stderr<EFBFBD>?
|
||||
竊?
|
||||
譌・蠢礼ウサ扈滂シ<EFBFBD>LK/Loki/髦ソ驥御コ全LS<4C>?
|
||||
竊?
|
||||
蜿ッ隗<EFBFBD>喧蛻<EFBFBD>梵<EFBFBD><EFBFBD>ibana/Grafana<EFBFBD>?
|
||||
```
|
||||
|
||||
JSON格式日志更适合:
|
||||
- ✅ 结构化查询(字段级搜索)
|
||||
- ✅ 日志聚合和分析
|
||||
- ✅ 告警规则配置
|
||||
- ✅ 性能监控
|
||||
JSON譬シ蠑乗律蠢玲峩騾ょ粋<EFBFBD>?
|
||||
- 笨?扈捺桷蛹匁衍隸「<E99AB8>亥ュ玲ョオ郤ァ謳懃エ「<EFBDB4><EFBDA2>
|
||||
- 笨?譌・蠢苓★蜷亥柱蛻<E69FB1><E89BBB>?
|
||||
- 笨?蜻願ュヲ隗<EFBDA6><E99A97>驟咲スョ
|
||||
- 笨?諤ァ閭ス逶第而
|
||||
|
||||
---
|
||||
|
||||
@@ -199,9 +199,9 @@ npm run dev
|
||||
# 隗ょッ滓律蠢苓セ灘<EFBDBE>蠎碑ッ・譏ッJSON譬シ蠑<EFBDBC>
|
||||
```
|
||||
|
||||
### 测试开发环境日志格式
|
||||
### 豬玖ッ募シ蜿醍識蠅<EFBFBD>律蠢玲<EFBFBD>シ蠑?
|
||||
```bash
|
||||
# 设置开发环境变量
|
||||
# 隶セ鄂ョ蠑蜿醍識蠅<EFBFBD>序驥?
|
||||
export NODE_ENV=development
|
||||
|
||||
# 蜷ッ蜉ィ蠎皮畑
|
||||
@@ -214,35 +214,36 @@ npm run dev
|
||||
|
||||
## <20>庁 扈城ェ梧蕗隶ュ
|
||||
|
||||
### 1. 开发依赖管理
|
||||
- ✅ **DO**:将格式化工具(如pino-pretty)放在devDependencies
|
||||
- ✅ **DO**:生产环境使用原生日志格式
|
||||
- ❌ **DON'T**:在生产环境依赖devDependencies
|
||||
### 1. 蠑蜿台セ晁オ也ョ。逅?
|
||||
- 笨?**DO**<EFBFBD>壼ー<EFBFBD><EFBFBD>シ蠑丞喧蟾・蜈キ<EFBFBD>亥ヲQino-pretty<EFBFBD>画叛蝨ィdevDependencies
|
||||
- 笨?**DO**<EFBFBD>夂函莠ァ邇ッ蠅<EFBFBD>スソ逕ィ蜴溽函譌・蠢玲<EFBFBD>シ蠑?
|
||||
- 笶?**DON'T**<EFBFBD>壼惠逕滉コァ邇ッ蠅<EFBFBD>セ晁オ謀evDependencies
|
||||
|
||||
### 2. 邇ッ蠅<EFBDAF>る<C280>
|
||||
- ✅ **DO**:根据NODE_ENV配置不同的行为
|
||||
- ✅ **DO**:生产环境优先考虑性能
|
||||
- ✅ **DO**:开发环境优先考虑易用性
|
||||
- 笨?**DO**<EFBFBD>壽<EFBFBD>ケ謐ョNODE_ENV驟咲スョ荳榊酔逧<EFBFBD>。御ク?
|
||||
- 笨?**DO**<EFBFBD>夂函莠ァ邇ッ蠅<EFBFBD>シ伜<EFBFBD>閠<EFBFBD>剔諤ァ閭ス
|
||||
- 笨?**DO**<EFBFBD>壼シ蜿醍識蠅<EFBFBD>シ伜<EFBFBD>閠<EFBFBD>剔譏鍋畑諤?
|
||||
|
||||
### 3. Docker髟懷ワ莨伜喧
|
||||
- ✅ **DO**:使用 `npm ci --production` 减小镜像体积
|
||||
- ✅ **DO**:在代码中适配生产环境
|
||||
- ❌ **DON'T**:为了方便在生产环境安装所有依赖
|
||||
- 笨?**DO**<EFBFBD>壻スソ逕?`npm ci --production` 蜃丞ー城復蜒丈ス鍋ァッ
|
||||
- 笨?**DO**<2A>壼惠莉」遐∽クュ騾る<E9A8BE>逕滉コァ邇ッ蠅<EFBDAF>
|
||||
- 笶?**DON'T**<2A>壻クコ莠<EFBDBA>婿萓ソ蝨ィ逕滉コァ邇ッ蠅<EFBDAF>ョ芽」<E88ABD>園譛我セ晁オ?
|
||||
|
||||
---
|
||||
|
||||
## <20>統 菫ョ螟肴サ扈<EFBDBB>
|
||||
|
||||
**髣ョ鬚俶<E9AC9A>ケ貅<EFBDB9>**<EFBFBD>壻サ」遐∵悴騾る<EFBFBD>逕滉コァ邇ッ蠅<EFBFBD>シ育。ャ郛也<EFBFBD>∝シ蜿大キ・蜈キ<EFBFBD><EFBFBD>
|
||||
**修复方式**:添加环境判断,条件化配置
|
||||
**菫ョ螟肴婿蠑<EFBFBD>**<EFBFBD>壽キサ蜉<EFBFBD>邇ッ蠅<EFBFBD>愛譁ュ<EFBFBD>梧擅莉カ蛹夜<EFBFBD>鄂?
|
||||
**蠖ア蜩崎激蝗エ**<EFBFBD>壻サ<EFBFBD>律蠢苓セ灘<EFBFBD>譬シ蠑擾シ御ク榊スア蜩榊粥閭ス
|
||||
**修复时间**:约10分钟(编译2分钟 + 构建8秒 + 推送1分钟)
|
||||
**版本号**:v1.2
|
||||
**菫ョ螟肴慮髣エ**<EFBFBD>夂コヲ10蛻<EFBFBD>帖<EFBFBD>育シ冶ッ?蛻<>帖 + 譫<>サコ8遘?+ 謗ィ騾?蛻<>帖<EFBFBD>?
|
||||
**迚域悽蜿?*<2A>嘛1.2
|
||||
|
||||
---
|
||||
|
||||
**文档创建时间**:2025-12-24
|
||||
**维护人员**:运维团队
|
||||
**譁<EFBFBD>。」蛻帛サコ譌カ髣エ**<EFBFBD>?025-12-24
|
||||
**扈エ謚、莠コ蜻<EFBFBD>**<EFBFBD>夊ソ千サエ蝗「髦?
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user