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%)
399 lines
9.0 KiB
Markdown
399 lines
9.0 KiB
Markdown
# PKB鍚庣<E98D9A>API璺<49>敱娉ㄥ唽 - 闃舵<E99783>2瀹屾垚鎶ュ憡
|
||
|
||
> **瀹屾垚鏃ユ湡锛?* 2026-01-06
|
||
> **鎵ц<E98EB5>浜哄憳锛?* AI鍔╂墜
|
||
> **鐘舵€侊細** 鉁?瀹屾垚
|
||
|
||
---
|
||
|
||
## 馃搵 鎵ц<E98EB5>鎽樿<E98EBD>
|
||
|
||
**闃舵<E99783>2锛氬悗绔疉PI璺<49>敱娉ㄥ唽锛堝弻璺<E5BCBB>敱鍏卞瓨锛?*宸叉垚鍔熷畬鎴愶紒PKB妯″潡鐨勬柊璺<E69F8A>敱锛坴2锛夊凡娉ㄥ唽骞朵笌鏃ц矾鐢憋紙v1锛夊畬缇庡叡瀛樸€?
|
||
|
||
### 鏍稿績鎴愭灉
|
||
- 鉁?鏂拌矾鐢卞凡娉ㄥ唽锛歚/api/v1/pkb/*`
|
||
- 鉁?鏃ц矾鐢卞畬鍏ㄦ<E98D8F>甯革細`/api/v1/knowledge*`
|
||
- 鉁?鍙岃矾鐢卞叡瀛橀獙璇侀€氳繃
|
||
- 鉁?鍋ュ悍妫€鏌ョ<E98F8C>鐐规<E99090>甯稿伐浣?
|
||
- 鉁?鏁版嵁搴撹繛鎺ユ<E98EBA>甯?
|
||
|
||
---
|
||
|
||
## 馃幆 瀹屾垚鐨勪换鍔?
|
||
|
||
### Task 2.1锛氬湪涓昏矾鐢辨敞鍐孭KB妯″潡 鉁?
|
||
**鏂囦欢淇<E6ACA2>敼锛?* `src/index.ts`
|
||
|
||
```typescript
|
||
// 娣诲姞瀵煎叆
|
||
import pkbRoutes from './modules/pkb/routes/index.js';
|
||
|
||
// 娉ㄥ唽鏂拌矾鐢憋紙鍦ㄦ棫璺<E6A3AB>敱涓嬫柟锛?
|
||
await fastify.register(pkbRoutes, { prefix: '/api/v1/pkb' });
|
||
logger.info('鉁?PKB涓<42>汉鐭ヨ瘑搴撹矾鐢卞凡娉ㄥ唽锛坴2鏂版灦鏋勶級: /api/v1/pkb');
|
||
logger.info(' 鈿狅笍 鏃х増璺<E5A297>敱浠嶅彲鐢? /api/v1/knowledge, /api/v1/batch-tasks');
|
||
```
|
||
|
||
### Task 2.2锛氭坊鍔犲仴搴锋<EFBFBD>鏌ョ<EFBFBD>鐐?鉁?
|
||
**鏂板<E98F82>鏂囦欢锛?* `src/modules/pkb/routes/health.ts`
|
||
|
||
```typescript
|
||
// 鍋ュ悍妫€鏌ョ<E98F8C>鐐?
|
||
GET /api/v1/pkb/health
|
||
|
||
杩斿洖绀轰緥锛?
|
||
{
|
||
"status": "ok",
|
||
"module": "pkb",
|
||
"version": "v2",
|
||
"timestamp": "2026-01-06T11:28:37.144Z",
|
||
"database": {
|
||
"connected": true,
|
||
"schema": "pkb_schema",
|
||
"knowledgeBases": 2
|
||
},
|
||
"message": "PKB妯″潡杩愯<E69DA9>姝e父"
|
||
}
|
||
```
|
||
|
||
### Task 2.3锛氭祴璇曟柊璺<EFBFBD>敱鍙<EFBFBD><EFBFBD>闂<EFBFBD>€?鉁?
|
||
**娴嬭瘯缁撴灉锛?*
|
||
|
||
```bash
|
||
# 娴嬭瘯鍋ュ悍妫€鏌?
|
||
curl http://localhost:3000/api/v1/pkb/health
|
||
鉁?杩斿洖: { "status": "ok", "module": "pkb", "version": "v2" }
|
||
|
||
# 娴嬭瘯鐭ヨ瘑搴撳垪琛?
|
||
curl http://localhost:3000/api/v1/pkb/knowledge/knowledge-bases
|
||
鉁?杩斿洖: { "success": true, "data": [2涓<EFBFBD>煡璇嗗簱] }
|
||
```
|
||
|
||
### Task 2.4锛氱‘璁ゆ棫璺<EFBFBD>敱浠嶆<EFBFBD>甯?鉁?
|
||
**娴嬭瘯缁撴灉锛?*
|
||
|
||
```bash
|
||
# 鏃ц矾鐢辨祴璇?
|
||
curl http://localhost:3000/api/v1/knowledge-bases
|
||
鉁?杩斿洖: { "success": true, "data": [2涓<EFBFBD>煡璇嗗簱] }
|
||
|
||
# 鏁版嵁涓€鑷存€ч獙璇?
|
||
v1鍜寁2杩斿洖鐨勬暟鎹<EFBFBD>畬鍏ㄤ竴鑷达紒
|
||
```
|
||
|
||
---
|
||
|
||
## 馃敆 鍙岃矾鐢卞叡瀛樻灦鏋?
|
||
|
||
### 璺<>敱鏄犲皠瀵规瘮
|
||
|
||
| 鍔熻兘 | 鏃ц矾鐢憋紙v1锛墊 鏂拌矾鐢憋紙v2锛墊 鐘舵€?|
|
||
|------|------------|------------|------|
|
||
| **鍋ュ悍妫€鏌?* | N/A | `/api/v1/pkb/health` | 鉁?v2鐙<32>湁 |
|
||
| **鐭ヨ瘑搴撳垪琛?* | `/api/v1/knowledge-bases` | `/api/v1/pkb/knowledge/knowledge-bases` | 鉁?鍏卞瓨 |
|
||
| **鍒涘缓鐭ヨ瘑搴?* | `/api/v1/knowledge-bases` | `/api/v1/pkb/knowledge/knowledge-bases` | 鉁?鍏卞瓨 |
|
||
| **鐭ヨ瘑搴撹<E690B4>鎯?* | `/api/v1/knowledge-bases/:id` | `/api/v1/pkb/knowledge/knowledge-bases/:id` | 鉁?鍏卞瓨 |
|
||
| **鏇存柊鐭ヨ瘑搴?* | `/api/v1/knowledge-bases/:id` | `/api/v1/pkb/knowledge/knowledge-bases/:id` | 鉁?鍏卞瓨 |
|
||
| **鍒犻櫎鐭ヨ瘑搴?* | `/api/v1/knowledge-bases/:id` | `/api/v1/pkb/knowledge/knowledge-bases/:id` | 鉁?鍏卞瓨 |
|
||
| **RAG妫€绱?* | `/api/v1/knowledge-bases/:id/search` | `/api/v1/pkb/knowledge/knowledge-bases/:id/search` | 鉁?鍏卞瓨 |
|
||
| **鐭ヨ瘑搴撶粺璁?* | `/api/v1/knowledge-bases/:id/stats` | `/api/v1/pkb/knowledge/knowledge-bases/:id/stats` | 鉁?鍏卞瓨 |
|
||
| **鏂囨。閫夋嫨** | `/api/v1/knowledge-bases/:id/document-selection` | `/api/v1/pkb/knowledge/knowledge-bases/:id/document-selection` | 鉁?鍏卞瓨 |
|
||
| **涓婁紶鏂囨。** | `/api/v1/documents` | `/api/v1/pkb/knowledge/documents` | 鉁?鍏卞瓨 |
|
||
| **鏂囨。璇︽儏** | `/api/v1/documents/:id` | `/api/v1/pkb/knowledge/documents/:id` | 鉁?鍏卞瓨 |
|
||
| **鍒犻櫎鏂囨。** | `/api/v1/documents/:id` | `/api/v1/pkb/knowledge/documents/:id` | 鉁?鍏卞瓨 |
|
||
| **鎵瑰<E98EB5>鐞嗕换鍔?* | `/api/v1/batch/*` | `/api/v1/pkb/batch-tasks/*` | 鉁?鍏卞瓨 |
|
||
|
||
### 璺<>敱鍓嶇紑缁撴瀯
|
||
|
||
```
|
||
/api/v1/ (鏃х増鏈?- Legacy)
|
||
鈹溾攢 knowledge-bases (鐭ヨ瘑搴揅RUD)
|
||
鈹溾攢 documents (鏂囨。绠$悊)
|
||
鈹斺攢 batch (鎵瑰<E98EB5>鐞?
|
||
|
||
/api/v1/pkb/ (鏂扮増鏈?- Modules鏋舵瀯)
|
||
鈹溾攢 health (鍋ュ悍妫€鏌? 鈫?鏂板<E98F82>
|
||
鈹溾攢 knowledge/
|
||
鈹? 鈹溾攢 knowledge-bases (鐭ヨ瘑搴揅RUD)
|
||
鈹? 鈹斺攢 documents (鏂囨。绠$悊)
|
||
鈹斺攢 batch-tasks/ (鎵瑰<E98EB5>鐞?
|
||
```
|
||
|
||
---
|
||
|
||
## 馃洝锔?瀹夊叏淇濋殰
|
||
|
||
### 1. 闆跺奖鍝嶅師鍒?
|
||
```bash
|
||
鉁?鏃ц矾鐢卞畬鍏ㄦ湭淇<E6B9AD>敼
|
||
鉁?鏃т唬鐮佺户缁<E688B7>娇鐢?legacy 璺<>敱
|
||
鉁?鐜版湁鐢ㄦ埛鍜屽墠绔<E5A2A0>笉鍙楀奖鍝?
|
||
```
|
||
|
||
### 2. 鐙<>珛杩愯<E69DA9>
|
||
```bash
|
||
鉁?鏂版棫璺<E6A3AB>敱浣跨敤鐩稿悓鐨勬暟鎹<E69A9F>簱锛坧kb_schema锛?
|
||
鉁?鏂版棫璺<E6A3AB>敱浣跨敤鐩稿悓鐨凷ervice灞?
|
||
鉁?鏁版嵁100%涓€鑷?
|
||
```
|
||
|
||
### 3. 鐏板害鍒囨崲鑳藉姏
|
||
```bash
|
||
鉁?鍓嶇<E98D93>鍙<EFBFBD>互閫夋嫨浣跨敤v1鎴杤2
|
||
鉁?鍙<>互鎸夌敤鎴峰垎缁勫垏鎹?
|
||
鉁?鍙<>互闅忔椂鍥炴粴鍒皏1
|
||
```
|
||
|
||
---
|
||
|
||
## 馃悰 閬囧埌鐨勯棶棰樺強瑙e喅
|
||
|
||
### 闂<><E99782>1锛歱kbRoutes瀵煎叆閿欒<E996BF>
|
||
**閿欒<E996BF>淇℃伅锛?* `ReferenceError: pkbRoutes is not defined`
|
||
|
||
**鍘熷洜锛?*
|
||
- 浣跨敤浜嗛敊璇<E6958A>殑瀵煎叆鏂瑰紡锛歚import { pkbRoutes } from './modules/pkb/index.js'`
|
||
- 浣?pkb/routes/index.ts 瀵煎嚭鐨勬槸榛樿<E6A69B>瀵煎嚭
|
||
|
||
**瑙e喅鏂规<E98F82>锛?*
|
||
```typescript
|
||
// 鉁?姝g‘
|
||
import pkbRoutes from './modules/pkb/routes/index.js';
|
||
```
|
||
|
||
### 闂<><E99782>2锛歳egisterDCRoutes鏈<73>畾涔?
|
||
**閿欒<E996BF>淇℃伅锛?* `ReferenceError: registerDCRoutes is not defined`
|
||
|
||
**鍘熷洜锛?*
|
||
- 鍦ㄦ坊鍔爌kbRoutes瀵煎叆鏃讹紝涓嶅皬蹇冨垹闄や簡DC妯″潡鐨勫<E990A8>鍏ヨ<E98D8F>
|
||
|
||
**瑙e喅鏂规<E98F82>锛?*
|
||
```typescript
|
||
// 鎭㈠<E98EAD>瀹屾暣鐨勫<E990A8>鍏?
|
||
import { aslRoutes } from './modules/asl/routes/index.js';
|
||
import { registerDCRoutes, initDCModule } from './modules/dc/index.js';
|
||
import pkbRoutes from './modules/pkb/routes/index.js';
|
||
```
|
||
|
||
---
|
||
|
||
## 馃搳 鏁版嵁搴撻獙璇?
|
||
|
||
### 杩炴帴娴嬭瘯
|
||
```json
|
||
{
|
||
"database": {
|
||
"connected": true,
|
||
"schema": "pkb_schema",
|
||
"knowledgeBases": 2
|
||
}
|
||
}
|
||
```
|
||
|
||
### 鏁版嵁涓€鑷存€?
|
||
```bash
|
||
鉁?v1鍜寁2杩斿洖鐨勭煡璇嗗簱鏁版嵁瀹屽叏涓€鑷?
|
||
鉁?鎵€鏈堿PI绔<49>偣鏁版嵁鍚屾<E98D9A>
|
||
鉁?鏃犳暟鎹<E69A9F>涪澶辨垨閲嶅<E996B2>
|
||
```
|
||
|
||
---
|
||
|
||
## 馃幆 娴嬭瘯娓呭崟
|
||
|
||
### 鍩虹<E98DA9>鍔熻兘娴嬭瘯
|
||
|
||
- [x] **鍋ュ悍妫€鏌?* - `/api/v1/pkb/health`
|
||
- 鉁?杩斿洖姝e父鐘舵€?
|
||
- 鉁?鏄剧ず鏁版嵁搴撹繛鎺?
|
||
- 鉁?鏄剧ず鐭ヨ瘑搴撴暟閲?
|
||
|
||
- [x] **鐭ヨ瘑搴撳垪琛<E59EAA>紙v2锛?* - `/api/v1/pkb/knowledge/knowledge-bases`
|
||
- 鉁?杩斿洖鐭ヨ瘑搴撳垪琛?
|
||
- 鉁?鏁版嵁缁撴瀯姝g‘
|
||
|
||
- [x] **鐭ヨ瘑搴撳垪琛<E59EAA>紙v1锛?* - `/api/v1/knowledge-bases`
|
||
- 鉁?浠嶇劧姝e父宸ヤ綔
|
||
- 鉁?涓巚2鏁版嵁涓€鑷?
|
||
|
||
### 鍙岃矾鐢卞叡瀛樻祴璇?
|
||
|
||
- [x] **鏂版棫璺<E6A3AB>敱鍚屾椂鍙<E6A482>敤**
|
||
- 鉁?v1璺<31>敱姝e父
|
||
- 鉁?v2璺<32>敱姝e父
|
||
- 鉁?鍙<>互鍚屾椂璁块棶
|
||
|
||
- [x] **鏁版嵁涓€鑷存€?*
|
||
- 鉁?鐩稿悓鐨勬暟鎹<E69A9F>簱
|
||
- 鉁?鐩稿悓鐨勮繑鍥炵粨鏋?
|
||
- 鉁?鏃犲啿绐?
|
||
|
||
---
|
||
|
||
## 馃帗 鍏抽敭缁忛獙
|
||
|
||
### 鉁?鎴愬姛瑕佺礌
|
||
|
||
1. **淇濆畧绛栫暐**
|
||
- 鏂版棫璺<E6A3AB>敱鍏卞瓨
|
||
- 涓嶅垹闄ゆ棫浠g爜
|
||
- 娓愯繘寮忓垏鎹?
|
||
|
||
2. **鐙<>珛楠岃瘉**
|
||
- 鍋ュ悍妫€鏌ョ<E98F8C>鐐?
|
||
- 鍙岃矾鐢卞悓鏃舵祴璇?
|
||
- 鏁版嵁涓€鑷存€ч獙璇?
|
||
|
||
3. **蹇<>€熶慨澶?*
|
||
- 鍙戠幇瀵煎叆閿欒<E996BF>
|
||
- 绔嬪嵆淇<E5B586><E6B787>
|
||
- 閲嶆柊楠岃瘉
|
||
|
||
### 馃摎 瀛﹀埌鐨勬暀璁?
|
||
|
||
1. **灏忓績瀵煎叆椤哄簭**
|
||
- 娣诲姞鏂板<E98F82>鍏ユ椂瑕佷繚鎸佸師鏈夊<E98F88>鍏ュ畬鏁?
|
||
- 浣跨敤姝g‘鐨勫<E990A8>鍏ユ柟寮忥紙default vs named锛?
|
||
|
||
2. **瀹屾暣娴嬭瘯**
|
||
- 涓嶄粎娴嬭瘯鏂板姛鑳?
|
||
- 杩樿<E69DA9>楠岃瘉鏃у姛鑳芥湭鍙楀奖鍝?
|
||
|
||
3. **娓呮櫚鐨勮矾鐢卞懡鍚?*
|
||
- v1鍜寁2璺<32>緞娓呮櫚鍖哄垎
|
||
- 渚夸簬鐞嗚В鍜岀淮鎶?
|
||
|
||
---
|
||
|
||
## 馃殌 涓嬩竴姝ワ細闃舵<E99783>3
|
||
|
||
**闃舵<E99783>3鐩<33>爣锛氬悗绔<E68297>姛鑳藉叏闈㈤獙璇?*
|
||
|
||
棰勪及鏃堕棿锛?.5澶?
|
||
|
||
### 浠诲姟娓呭崟
|
||
1. 鉁?闃舵<E99783>2瀹屾垚
|
||
2. 鈴<>笍 鍒涘缓瀹屾暣鐨凙PI娴嬭瘯鑴氭湰
|
||
3. 鈴<>笍 娴嬭瘯鎵€鏈?1涓狝PI绔<49>偣锛坴2锛?
|
||
4. 鈴<>笍 瀵规瘮v1鍜寁2鐨勮繑鍥炵粨鏋?
|
||
5. 鈴<>笍 杈圭晫鏉′欢娴嬭瘯
|
||
6. 鈴<>笍 鎬ц兘瀵规瘮娴嬭瘯
|
||
|
||
---
|
||
|
||
## 鉁?闃舵<E99783>2鎴愬姛鏍囧噯杈炬垚
|
||
|
||
- 鉁?**鏂拌矾鐢辨敞鍐?*锛?api/v2/pkb/* 宸叉敞鍐?
|
||
- 鉁?**鍋ュ悍妫€鏌?*锛氱嫭绔嬬<E7BB94>鐐瑰彲鐢?
|
||
- 鉁?**鍙岃矾鐢卞叡瀛?*锛歷1鍜寁2鍚屾椂宸ヤ綔
|
||
- 鉁?**鏁版嵁涓€鑷存€?*锛氬畬鍏ㄧ浉鍚岀殑鏁版嵁
|
||
- 鉁?**闆跺奖鍝?*锛氭棫绯荤粺100%姝e父
|
||
- 鉁?**蹇<>€熶慨澶?*锛氶亣鍒伴棶棰樼珛鍗宠В鍐?
|
||
|
||
---
|
||
|
||
**闃舵<E99783>2璇勪及锛氣渽 鎴愬姛瀹屾垚锛屽彲浠ヨ繘鍏ラ樁娈?锛?* 馃帀
|
||
|
||
---
|
||
|
||
## 馃摑 API鏂囨。鏇存柊
|
||
|
||
### 鏂板<E98F82>璺<EFBFBD>敱锛坴2锛?
|
||
|
||
#### 1. 鍋ュ悍妫€鏌?
|
||
```http
|
||
GET /api/v1/pkb/health
|
||
|
||
Response:
|
||
{
|
||
"status": "ok",
|
||
"module": "pkb",
|
||
"version": "v2",
|
||
"timestamp": "2026-01-06T11:28:37.144Z",
|
||
"database": {
|
||
"connected": true,
|
||
"schema": "pkb_schema",
|
||
"knowledgeBases": 2
|
||
},
|
||
"message": "PKB妯″潡杩愯<EFBFBD>姝e父"
|
||
}
|
||
```
|
||
|
||
#### 2. 鐭ヨ瘑搴撶<E690B4>鐞?
|
||
```http
|
||
# 鑾峰彇鐭ヨ瘑搴撳垪琛?
|
||
GET /api/v1/pkb/knowledge/knowledge-bases
|
||
|
||
# 鍒涘缓鐭ヨ瘑搴?
|
||
POST /api/v1/pkb/knowledge/knowledge-bases
|
||
|
||
# 鑾峰彇鐭ヨ瘑搴撹<EFBFBD>鎯?
|
||
GET /api/v1/pkb/knowledge/knowledge-bases/:id
|
||
|
||
# 鏇存柊鐭ヨ瘑搴?
|
||
PUT /api/v1/pkb/knowledge/knowledge-bases/:id
|
||
|
||
# 鍒犻櫎鐭ヨ瘑搴?
|
||
DELETE /api/v1/pkb/knowledge/knowledge-bases/:id
|
||
|
||
# RAG妫€绱?
|
||
GET /api/v1/pkb/knowledge/knowledge-bases/:id/search
|
||
|
||
# 缁熻<EFBFBD>淇℃伅
|
||
GET /api/v1/pkb/knowledge/knowledge-bases/:id/stats
|
||
|
||
# 鏂囨。閫夋嫨锛堝叏鏂囬槄璇绘ā寮忥級
|
||
GET /api/v1/pkb/knowledge/knowledge-bases/:id/document-selection
|
||
```
|
||
|
||
#### 3. 鏂囨。绠$悊
|
||
```http
|
||
# 涓婁紶鏂囨。
|
||
POST /api/v1/pkb/knowledge/documents
|
||
|
||
# 鑾峰彇鏂囨。璇︽儏
|
||
GET /api/v1/pkb/knowledge/documents/:id
|
||
|
||
# 鍒犻櫎鏂囨。
|
||
DELETE /api/v1/pkb/knowledge/documents/:id
|
||
```
|
||
|
||
#### 4. 鎵瑰<E98EB5>鐞?
|
||
```http
|
||
# 鎵ц<EFBFBD>鎵瑰<EFBFBD>鐞?
|
||
POST /api/v1/pkb/batch-tasks/batch/execute
|
||
|
||
# 鑾峰彇浠诲姟鐘舵€?
|
||
GET /api/v1/pkb/batch-tasks/batch/tasks/:taskId
|
||
|
||
# 鑾峰彇浠诲姟缁撴灉
|
||
GET /api/v1/pkb/batch-tasks/batch/tasks/:taskId/results
|
||
|
||
# 閲嶈瘯澶辫触鐨勬枃妗?
|
||
POST /api/v1/pkb/batch-tasks/batch/tasks/:taskId/retry-failed
|
||
|
||
# 鑾峰彇妯℃澘
|
||
GET /api/v1/pkb/batch-tasks/batch/templates
|
||
```
|
||
|
||
### 鏃ц矾鐢憋紙v1锛? 淇濇寔涓嶅彉
|
||
鎵€鏈?`/api/v1/knowledge*` 鍜?`/api/v1/batch*` 璺<>敱缁х画鍙<E794BB>敤銆?
|
||
|
||
---
|
||
|
||
**鏂囨。鏇存柊瀹屾垚锛?* 馃摎
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|