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%)
444 lines
8.8 KiB
Markdown
444 lines
8.8 KiB
Markdown
# DC妯″潡閲嶅缓瀹屾垚鎬荤粨 - Day 1
|
||
|
||
> **鏃ユ湡**: 2025-11-28
|
||
> **鐗堟湰**: V1.0 (鍩轰簬Day2-3璁捐<E79281>鏂囨。閲嶅缓)
|
||
> **鐘舵€?*: 鉁?鍚庣<E98D9A>鏍稿績鍔熻兘瀹屾垚
|
||
|
||
---
|
||
|
||
## 馃搵 鑳屾櫙
|
||
|
||
**闂<><E99782>**锛欴C妯″潡寮€鍙戜唬鐮佸湪Cursor缂撳瓨娓呯悊鍚庝涪澶?
|
||
- 鉂?鎵€鏈塖ervice浠g爜涓㈠け
|
||
- 鉂?Controller鍜孯outes涓㈠け
|
||
- 鉂?Prisma妯″瀷瀹氫箟涓㈠け
|
||
- 鉁?璁捐<E79281>鏂囨。瀹屾暣淇濈暀
|
||
- 鉁?寮€鍙戣<E98D99>褰曪紙Day2-3锛変繚鐣?
|
||
|
||
**鏍规湰鍘熷洜**锛氫唬鐮佹湭鍙婃椂鎻愪氦鍒癎it锛屼粎瀛樺湪浜嶤ursor涓存椂缂撳瓨涓?
|
||
|
||
**瑙e喅鏂规<E98F82>**锛氬熀浜庡畬鏁寸殑璁捐<E79281>鏂囨。锛岄伒寰<E4BC92>簯鍘熺敓瑙勮寖锛屽畬鍏ㄩ噸寤篋C妯″潡
|
||
|
||
---
|
||
|
||
## 鉁?瀹屾垚鍐呭<E98D90>
|
||
|
||
### 1. Prisma Schema锛?涓<>〃锛?鉁?
|
||
|
||
**鏂囦欢**锛歚backend/prisma/schema.prisma`
|
||
|
||
| 琛ㄥ悕 | 鐢ㄩ€?| 瀛楁<E7809B>鏁?| Schema |
|
||
|------|------|--------|--------|
|
||
| **DCHealthCheck** | 鍋ュ悍妫€鏌ョ紦瀛?| 10 | dc_schema |
|
||
| **DCTemplate** | 棰勮<E6A3B0>妯℃澘 | 7 | dc_schema |
|
||
| **DCExtractionTask** | 鎻愬彇浠诲姟 | 21 | dc_schema |
|
||
| **DCExtractionItem** | 鎻愬彇璁板綍 | 15 | dc_schema |
|
||
|
||
**鍏抽敭鐗规€?*锛?
|
||
- 鉁?Schema闅旂<E99785>锛坄dc_schema`锛?
|
||
- 鉁?JSONB瀛楁<E7809B>锛堢伒娲诲瓨鍌<E793A8>級
|
||
- 鉁?澶栭敭绾ц仈鍒犻櫎
|
||
- 鉁?澶嶅悎绱㈠紩浼樺寲
|
||
- 鉁?鍞<>竴绾︽潫锛堟ā鏉垮幓閲嶏級
|
||
|
||
---
|
||
|
||
### 2. 鏍稿績Service锛?涓<>級 鉁?
|
||
|
||
#### 2.1 HealthCheckService
|
||
|
||
**鏂囦欢**锛歚backend/src/modules/dc/tool-b/services/HealthCheckService.ts`
|
||
|
||
**鍔熻兘**锛?
|
||
- 鉁?Excel鍒楁暟鎹<E69A9F>川閲忔<E996B2>鏌?
|
||
- 鉁?绌哄€肩巼銆佸钩鍧囬暱搴︾粺璁?
|
||
- 鉁?Token棰勪及
|
||
- 鉁?鎷︽埅绛栫暐锛堢┖鍊肩巼>80%鎴栧钩鍧囬暱搴?10锛?
|
||
- 鉁?缁撴灉缂撳瓨锛?4灏忔椂锛?
|
||
|
||
**骞冲彴鑳藉姏澶嶇敤**锛?
|
||
- 鉁?`storage`: 鏂囦欢璇诲彇
|
||
- 鉁?`logger`: 鏃ュ織璁板綍
|
||
- 鉁?`cache`: 缁撴灉缂撳瓨
|
||
- 鉁?`prisma`: 鏁版嵁搴撳瓨鍌?
|
||
|
||
---
|
||
|
||
#### 2.2 TemplateService
|
||
|
||
**鏂囦欢**锛歚backend/src/modules/dc/tool-b/services/TemplateService.ts`
|
||
|
||
**鍔熻兘**锛?
|
||
- 鉁?绠$悊棰勮<E6A3B0>鎻愬彇妯℃澘
|
||
- 鉁?Seed 3涓<33><E6B693>璁炬ā鏉匡紙鑲虹檶鐥呯悊銆佺硸灏跨梾鍏ラ櫌銆侀珮琛€鍘嬮棬璇婏級
|
||
- 鉁?妯℃澘鏌ヨ<E98F8C>锛堟寜鐤剧梾+鎶ュ憡绫诲瀷锛?
|
||
|
||
**棰勮<E6A3B0>妯℃澘**锛?
|
||
1. 鑲虹檶鐥呯悊鎶ュ憡锛?涓<>瓧娈碉級
|
||
2. 绯栧翱鐥呭叆闄㈣<E99784>褰曪紙5涓<35>瓧娈碉級
|
||
3. 楂樿<E6A582>鍘嬮棬璇婄梾鍘嗭紙5涓<35>瓧娈碉級
|
||
|
||
---
|
||
|
||
#### 2.3 DualModelExtractionService
|
||
|
||
**鏂囦欢**锛歚backend/src/modules/dc/tool-b/services/DualModelExtractionService.ts`
|
||
|
||
**鍔熻兘**锛堟牳蹇冿級锛?
|
||
- 鉁?骞跺彂璋冪敤DeepSeek-V3鍜孮wen-Max
|
||
- 鉁?PII鑴辨晱锛堟墜鏈哄彿銆佽韩浠借瘉銆佸<E98A86>鍚嶏級
|
||
- 鉁?JSON瑙f瀽锛?灞傚<E7819E>閿欑瓥鐣ワ級
|
||
- 鉁?Token缁熻<E7BC81>
|
||
- 鉁?鎵归噺寮傛<E5AFAE>澶勭悊
|
||
|
||
**骞冲彴鑳藉姏澶嶇敤**锛?
|
||
- 鉁?`LLMFactory`: LLM璋冪敤
|
||
- 鉁?`logger`: 鏃ュ織璁板綍
|
||
- 鉁?`prisma`: 鏁版嵁搴撴搷浣?
|
||
|
||
**鎶€鏈<E282AC>寒鐐?*锛?
|
||
- 鉁?Promise.allSettled骞跺彂锛堝弻妯″瀷锛?
|
||
- 鉁?3灞侸SON瑙f瀽瀹归敊
|
||
- 鉁?鑷<>姩PII鑴辨晱
|
||
- 鉁?瀛楁<E7809B>瀹屾暣鎬ч獙璇?
|
||
|
||
---
|
||
|
||
#### 2.4 ConflictDetectionService
|
||
|
||
**鏂囦欢**锛歚backend/src/modules/dc/tool-b/services/ConflictDetectionService.ts`
|
||
|
||
**鍔熻兘**锛?
|
||
- 鉁?鍙屾ā鍨嬬粨鏋滄瘮瀵?
|
||
- 鉁?瀛楁<E7809B>褰掍竴鍖栵紙绌烘牸銆佸ぇ灏忓啓銆佹暟鍊硷級
|
||
- 鉁?鏂囨湰鐩镐技搴﹁<E690B4>绠楋紙Dice Coefficient锛?
|
||
- 鉁?鍐茬獊涓ラ噸绋嬪害鍒嗙骇锛坙ow/medium/high锛?
|
||
|
||
**绠楁硶**锛?
|
||
- 鉁?鏂囨湰褰掍竴鍖?
|
||
- 鉁?鏁板€煎綊涓€鍖栵紙3cm = 3.0cm锛?
|
||
- 鉁?2-gram鐩镐技搴﹁<E690B4>绠?
|
||
- 鉁?鎵归噺妫€娴嬬粺璁?
|
||
|
||
---
|
||
|
||
### 3. Controller鍜孉PI锛?涓<><E6B693>鐐癸級 鉁?
|
||
|
||
**鏂囦欢**锛歚backend/src/modules/dc/tool-b/controllers/ExtractionController.ts`
|
||
|
||
| 鏂规硶 | 璺<>緞 | 鍔熻兘 | 鐘舵€?|
|
||
|------|------|------|------|
|
||
| **POST** | `/health-check` | 鍋ュ悍妫€鏌?| 鉁?|
|
||
| **GET** | `/templates` | 鑾峰彇妯℃澘鍒楄〃 | 鉁?|
|
||
| **POST** | `/tasks` | 鍒涘缓鎻愬彇浠诲姟 | 鉁?|
|
||
| **GET** | `/tasks/:taskId/progress` | 鏌ヨ<E98F8C>浠诲姟杩涘害 | 鉁?|
|
||
| **GET** | `/tasks/:taskId/items` | 鑾峰彇楠岃瘉缃戞牸鏁版嵁 | 鉁?|
|
||
| **POST** | `/items/:itemId/resolve` | 瑁佸喅鍐茬獊 | 鉁?|
|
||
|
||
**Base URL**: `/api/v1/dc/tool-b`
|
||
|
||
---
|
||
|
||
### 4. 璺<>敱閰嶇疆 鉁?
|
||
|
||
**鏂囦欢**锛?
|
||
- `backend/src/modules/dc/tool-b/routes/index.ts`
|
||
- `backend/src/modules/dc/index.ts`
|
||
|
||
**闆嗘垚鍒颁富搴旂敤**锛?
|
||
- 鉁?璺<>敱娉ㄥ唽锛坄registerDCRoutes`锛?
|
||
- 鉁?妯″潡鍒濆<E98D92>鍖栵紙`initDCModule`锛?
|
||
- 鉁?Seed棰勮<E6A3B0>妯℃澘
|
||
|
||
---
|
||
|
||
## 馃幆 鎶€鏈<E282AC>寒鐐?
|
||
|
||
### 1. 涓ユ牸閬靛惊浜戝師鐢熻<E990A2>鑼?鈽侊笍
|
||
|
||
**澶嶇敤骞冲彴鑳藉姏锛堥浂閲嶅<E996B2>瀹炵幇锛?*锛?
|
||
|
||
| 骞冲彴鑳藉姏 | 浣跨敤鍦烘櫙 | 鏂囦欢 |
|
||
|---------|---------|------|
|
||
| **storage** | Excel鏂囦欢璇诲彇 | HealthCheckService |
|
||
| **logger** | 缁熶竴鏃ュ織璁板綍 | 鎵€鏈塖ervice |
|
||
| **cache** | 鍋ュ悍妫€鏌ョ紦瀛?| HealthCheckService |
|
||
| **prisma** | 鏁版嵁搴撴搷浣?| 鎵€鏈塖ervice |
|
||
| **LLMFactory** | 鍙屾ā鍨嬭皟鐢?| DualModelExtractionService |
|
||
|
||
**浼樺娍**锛?
|
||
- 鉁?闆朵唬鐮佸垏鎹㈢幆澧冿紙鏈<E7B499>湴/浜戠<E6B59C>锛?
|
||
- 鉁?缁熶竴鏃ュ織鏍煎紡
|
||
- 鉁?鍒嗗竷寮忕紦瀛樻敮鎸?
|
||
- 鉁?杩炴帴姹犺嚜鍔ㄧ<E98D94>鐞?
|
||
|
||
---
|
||
|
||
### 2. 妯″潡鍖栨灦鏋?馃敡
|
||
|
||
**Schema闅旂<E99785>**锛?
|
||
- 鉁?鎵€鏈夎〃浣跨敤`dc_schema`
|
||
- 鉁?涓庡叾浠栨ā鍧楀畬鍏ㄩ殧绂?
|
||
- 鉁?鏀<>寔鐙<E5AF94>珛閮ㄧ讲
|
||
|
||
**浠g爜缁撴瀯**锛?
|
||
```
|
||
backend/src/modules/dc/
|
||
鈹溾攢鈹€ tool-b/
|
||
鈹? 鈹溾攢鈹€ services/
|
||
鈹? 鈹? 鈹溾攢鈹€ HealthCheckService.ts
|
||
鈹? 鈹? 鈹溾攢鈹€ TemplateService.ts
|
||
鈹? 鈹? 鈹溾攢鈹€ DualModelExtractionService.ts
|
||
鈹? 鈹? 鈹斺攢鈹€ ConflictDetectionService.ts
|
||
鈹? 鈹溾攢鈹€ controllers/
|
||
鈹? 鈹? 鈹斺攢鈹€ ExtractionController.ts
|
||
鈹? 鈹斺攢鈹€ routes/
|
||
鈹? 鈹斺攢鈹€ index.ts
|
||
鈹斺攢鈹€ index.ts
|
||
```
|
||
|
||
---
|
||
|
||
### 3. 鍙屾ā鍨嬩氦鍙夐獙璇?馃<>
|
||
|
||
**鎶€鏈<E282AC>疄鐜?*锛?
|
||
```typescript
|
||
// 骞跺彂璋冪敤涓や釜妯″瀷
|
||
const [resultA, resultB] = await Promise.allSettled([
|
||
this.callModel('deepseek', prompt, fields),
|
||
this.callModel('qwen', prompt, fields)
|
||
]);
|
||
|
||
// 鍐茬獊妫€娴?
|
||
const hasConflict = JSON.stringify(resultA.result) !== JSON.stringify(resultB.result);
|
||
```
|
||
|
||
**浼樺娍**锛?
|
||
- 鉁?鑷<>姩浜ゅ弶楠岃瘉
|
||
- 鉁?鍑忓皯AI骞昏<E9AA9E>
|
||
- 鉁?鎻愰珮鏁版嵁璐ㄩ噺
|
||
|
||
---
|
||
|
||
### 4. PII鑷<49>姩鑴辨晱 馃洝锔?
|
||
|
||
**瀹炵幇**锛?
|
||
```typescript
|
||
// 鎵嬫満鍙疯劚鏁忥細138****5678
|
||
// 韬<>唤璇佽劚鏁忥細330102********1234
|
||
// 濮撳悕鑴辨晱锛氬紶**
|
||
```
|
||
|
||
**绗﹀悎**锛氬尰鐤楁暟鎹<E69A9F>殣绉佷繚鎶よ<E98EB6>姹?
|
||
|
||
---
|
||
|
||
## 馃搳 浠g爜缁熻<E7BC81>
|
||
|
||
| 绫诲埆 | 鏁伴噺 | 浠g爜琛屾暟 |
|
||
|------|------|---------|
|
||
| **Prisma妯″瀷** | 4涓?| ~160琛?|
|
||
| **Service** | 4涓?| ~680琛?|
|
||
| **Controller** | 1涓?| ~330琛?|
|
||
| **Routes** | 1涓?| ~90琛?|
|
||
| **妯″潡鍏ュ彛** | 1涓?| ~60琛?|
|
||
| **鎬昏<E98EAC>** | 11涓<31>枃浠?| ~1,320琛?|
|
||
|
||
---
|
||
|
||
## 馃殌 涓嬩竴姝ヨ<E5A79D>鍒?
|
||
|
||
### Phase 1: 娴嬭瘯鍜岄獙璇侊紙Day 2锛?
|
||
|
||
1. **API娴嬭瘯**
|
||
- 鉁?鍋ュ悍妫€鏌<E282AC>PI
|
||
- 鉁?妯℃澘鍒楄〃API
|
||
- 鈴?鍒涘缓浠诲姟API
|
||
- 鈴?瑁佸喅鍐茬獊API
|
||
|
||
2. **闆嗘垚娴嬭瘯**
|
||
- 鈴?瀹屾暣鎻愬彇娴佺▼娴嬭瘯
|
||
- 鈴?鍙屾ā鍨嬪苟鍙戞祴璇?
|
||
- 鈴?鍐茬獊妫€娴嬫祴璇?
|
||
|
||
---
|
||
|
||
### Phase 2: 鍓嶇<E98D93>UI锛圖ay 3-5锛?
|
||
|
||
鍩轰簬V4鍘熷瀷瀹炵幇鍓嶇<EFBFBD>锛?
|
||
- 鈴?Step 1: 涓婁紶涓庝綋妫€
|
||
- 鈴?Step 2: 鏅鸿兘妯$増閰嶇疆
|
||
- 鈴?Step 3: 鍙岀洸鎻愬彇杩涘害
|
||
- 鈴?Step 4: 鍏ㄦ櫙楠岃瘉缃戞牸
|
||
- 鈴?Step 5: 缁撴灉瀵煎嚭
|
||
|
||
---
|
||
|
||
### Phase 3: 浼樺寲鍜屾墿灞曪紙Day 6+锛?
|
||
|
||
1. **鎬ц兘浼樺寲**
|
||
- 鈴?寮傛<E5AFAE>浠诲姟闃熷垪锛圔ullMQ锛?
|
||
- 鈴?鎵归噺澶勭悊浼樺寲
|
||
- 鈴?缂撳瓨绛栫暐浼樺寲
|
||
|
||
2. **鍔熻兘鎵╁睍**
|
||
- 鈴?鏇村<E98F87>棰勮<E6A3B0>妯℃澘
|
||
- 鈴?鑷<>畾涔夋ā鏉?
|
||
- 鈴?鎵归噺瑁佸喅
|
||
- 鈴?Excel瀵煎嚭
|
||
|
||
---
|
||
|
||
## 馃摑 缁忛獙鏁欒<E98F81>
|
||
|
||
### 1. 姣忔棩蹇呮彁浜?鈿狅笍
|
||
|
||
**鏁欒<E98F81>**锛欴C妯″潡浠g爜鍥犳湭鎻愪氦鑰屽叏閮ㄤ涪澶?
|
||
|
||
**鏀硅繘**锛?
|
||
- 鉁?鏇存柊Git鎻愪氦瑙勮寖锛堝己鍒舵瘡鏃ユ彁浜わ級
|
||
- 鉁?娣诲姞琛€娉<E282AC>暀璁<E69A80><E79281>鍛婂尯鍩?
|
||
- 鉁?浠婂ぉ鐨勪唬鐮佸繀椤讳粖澶╂彁浜?
|
||
|
||
---
|
||
|
||
### 2. 澶嶇敤骞冲彴鑳藉姏 鉁?
|
||
|
||
**浼樺娍**锛?
|
||
- 鉁?寮€鍙戞晥鐜囨彁鍗?鍊?
|
||
- 鉁?浠g爜璐ㄩ噺鏇撮珮
|
||
- 鉁?缁存姢鎴愭湰鏇翠綆
|
||
|
||
**绀轰緥**锛?
|
||
```typescript
|
||
// 鉂?閿欒<E996BF>锛氶噸澶嶅疄鐜?
|
||
class MyStorage { ... }
|
||
|
||
// 鉁?姝g‘锛氬<E9949B>鐢ㄥ钩鍙拌兘鍔?
|
||
import { storage } from '@/common/storage'
|
||
```
|
||
|
||
---
|
||
|
||
### 3. 鏂囨。椹卞姩寮€鍙?馃摎
|
||
|
||
**浼樺娍**锛?
|
||
- 鉁?璁捐<E79281>鏂囨。瀹屾暣锛岄噸寤烘棤闅滅<E99785>
|
||
- 鉁?Day2-3鏂囨。浣滀负钃濆浘
|
||
- 鉁?鎶€鏈<E282AC>€哄姟闄嶄綆
|
||
|
||
---
|
||
|
||
## 馃帀 鎬荤粨
|
||
|
||
**鎴愭灉**锛?
|
||
- 鉁?**4涓<34>暟鎹<E69A9F>〃**瀹屾暣瀹氫箟
|
||
- 鉁?**4涓<34>牳蹇僑ervice**瀹炵幇
|
||
- 鉁?**6涓狝PI绔<49>偣**瀹屾垚
|
||
- 鉁?**涓ユ牸閬靛惊**浜戝師鐢熻<E990A2>鑼?
|
||
- 鉁?**瀹屽叏澶嶇敤**骞冲彴鑳藉姏
|
||
- 鉁?**妯″潡鍖?*鏋舵瀯
|
||
- 鉁?**浠g爜璐ㄩ噺**楂?
|
||
|
||
**鏃堕棿**锛?
|
||
- 鈴憋笍 **寮€鍙戞椂闂?*锛氱害4灏忔椂
|
||
- 馃摑 **浠g爜閲?*锛殈1,320琛?
|
||
- 馃幆 **瀹屾垚搴?*锛氬悗绔?0%
|
||
|
||
**涓嬩竴姝?*锛?
|
||
1. API娴嬭瘯鍜岄獙璇?
|
||
2. 鍓嶇<E98D93>UI瀹炵幇
|
||
3. 闆嗘垚娴嬭瘯
|
||
4. 鎬ц兘浼樺寲
|
||
|
||
---
|
||
|
||
**鏂囨。缁撴潫** 鉁?
|
||
|
||
**鎻愪氦淇℃伅**锛?
|
||
```
|
||
feat(dc): Complete DC Tool-B backend implementation (Day 1 rebuild)
|
||
|
||
Completed:
|
||
- Add 4 Prisma models (dc_health_checks, dc_templates, dc_extraction_tasks, dc_extraction_items)
|
||
- Implement 4 core services (HealthCheck, Template, DualModelExtraction, ConflictDetection)
|
||
- Create ExtractionController with 6 API endpoints
|
||
- Register routes and initialize DC module
|
||
- Fully comply with cloud-native development standards
|
||
- Reuse all platform capabilities (storage, logger, cache, prisma, LLMFactory)
|
||
|
||
Tech Highlights:
|
||
- Dual model cross-validation (DeepSeek-V3 + Qwen-Max)
|
||
- PII auto-masking (phone, ID card, name)
|
||
- 3-layer JSON parsing with fallback
|
||
- Dice Coefficient similarity algorithm
|
||
- Schema isolation (dc_schema)
|
||
|
||
Lines: ~1,320 lines (4 services, 1 controller, routes, Prisma models)
|
||
|
||
Related: DC module code loss incident (2025-11-28)
|
||
Docs: docs/03-涓氬姟妯″潡/DC-鏁版嵁娓呮礂鏁寸悊/06-寮€鍙戣<E98D99>褰?DC妯″潡閲嶅缓瀹屾垚鎬荤粨-Day1.md
|
||
```
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|