Files
AIclinicalresearch/docs/08-项目管理/PKB迁移-阶段2完成报告.md
HaHafeng 1b53ab9d52 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%)
2026-01-14 19:15:01 +08:00

9.0 KiB
Raw Blame History

PKB鍚庣<EFBFBD>API璺<EFBFBD>敱娉ㄥ唽 - 闃舵<E99783>2瀹屾垚鎶ュ憡

*瀹屾垚鏃ユ湡锛? 2026-01-06
*鎵ц<EFBFBD>浜哄憳锛? 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妯″潡 鉁?

*鏂囦欢淇<EFBFBD>敼锛? src/index.ts

// 娣诲姞瀵煎叆
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>鐐?鉁?

*鏂板<EFBFBD>鏂囦欢锛? src/modules/pkb/routes/health.ts

// 鍋ュ悍妫€鏌ョ<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>父"
}

Task 2.3锛氭祴璇曟柊璺<EFBFBD>敱鍙<EFBFBD><EFBFBD><EFBFBD>€?鉁?

*娴嬭瘯缁撴灉锛?

# 娴嬭瘯鍋ュ悍妫€鏌?
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>甯?鉁?

*娴嬭瘯缁撴灉锛?

# 鏃ц矾鐢辨祴璇?
curl http://localhost:3000/api/v1/knowledge-bases
鉁?杩斿洖: { "success": true, "data": [2涓<EFBFBD>煡璇嗗簱] }

# 鏁版嵁涓€鑷存€ч獙璇?
v1鍜寁2杩斿洖鐨勬暟鎹<E69A9F>畬鍏ㄤ竴鑷达紒

馃敆 鍙岃矾鐢卞叡瀛樻灦鏋?

<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 鉁?鍏卞瓨
*鐭ヨ瘑搴撹<EFBFBD>鎯? /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 鉁?鍏卞瓨
*鎵瑰<EFBFBD>鐞嗕换鍔? /api/v1/batch/* /api/v1/pkb/batch-tasks/* 鉁?鍏卞瓨

<EFBFBD>敱鍓嶇紑缁撴瀯

/api/v1/ (鏃х増鏈?- Legacy)
鈹溾攢 knowledge-bases (鐭ヨ瘑搴揅RUD)
鈹溾攢 documents (鏂囨。绠$悊)
鈹斺攢 batch (鎵瑰<E98EB5>鐞?

/api/v1/pkb/ (鏂扮増鏈?- Modules鏋舵瀯)
鈹溾攢 health (鍋ュ悍妫€鏌? 鈫?鏂板<E98F82>
鈹溾攢 knowledge/
鈹? 鈹溾攢 knowledge-bases (鐭ヨ瘑搴揅RUD)
鈹? 鈹斺攢 documents (鏂囨。绠$悊)
鈹斺攢 batch-tasks/ (鎵瑰<E98EB5>鐞?

馃洝锔?瀹夊叏淇濋殰

1. 闆跺奖鍝嶅師鍒?

鉁?鏃ц矾鐢卞畬鍏ㄦ湭淇<E6B9AD>敼
鉁?鏃т唬鐮佺户缁<E688B7>娇鐢?legacy 璺<>敱
鉁?鐜版湁鐢ㄦ埛鍜屽墠绔<E5A2A0>笉鍙楀奖鍝?

2. 鐙<>珛杩愯<E69DA9>

鉁?鏂版棫璺<E6A3AB>敱浣跨敤鐩稿悓鐨勬暟鎹<E69A9F>簱锛坧kb_schema锛?
鉁?鏂版棫璺<E6A3AB>敱浣跨敤鐩稿悓鐨凷ervice灞?
鉁?鏁版嵁100%涓€鑷?

3. 鐏板害鍒囨崲鑳藉姏

鉁?鍓嶇<E98D93><EFBFBD>互閫夋嫨浣跨敤v1鎴杤2
鉁?鍙<>互鎸夌敤鎴峰垎缁勫垏鎹?
鉁?鍙<>互闅忔椂鍥炴粴鍒皏1

馃悰 閬囧埌鐨勯棶棰樺強瑙e喅

<EFBFBD><EFBFBD>1锛歱kbRoutes瀵煎叆閿欒<EFBFBD>

*閿欒<EFBFBD>淇℃伅锛? ReferenceError: pkbRoutes is not defined

*鍘熷洜锛?

  • 浣跨敤浜嗛敊璇<EFBFBD>殑瀵煎叆鏂瑰紡锛歚import { pkbRoutes } from './modules/pkb/index.js'`
  • 浣?pkb/routes/index.ts 瀵煎嚭鐨勬槸榛樿<E6A69B>瀵煎嚭

*喅鏂规<EFBFBD>锛?

// 鉁?姝g‘
import pkbRoutes from './modules/pkb/routes/index.js';

<EFBFBD><EFBFBD>2锛歳egisterDCRoutes鏈<EFBFBD>畾涔?

*閿欒<EFBFBD>淇℃伅锛? ReferenceError: registerDCRoutes is not defined

*鍘熷洜锛?

  • 鍦ㄦ坊鍔爌kbRoutes瀵煎叆鏃讹紝涓嶅皬蹇冨垹闄や簡DC妯″潡鐨勫<EFBFBD>鍏ヨ<EFBFBD>

*喅鏂规<EFBFBD>锛?

// 鎭㈠<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';

馃搳 鏁版嵁搴撻獙璇?

杩炴帴娴嬭瘯

{
  "database": {
    "connected": true,
    "schema": "pkb_schema",
    "knowledgeBases": 2
  }
}

鏁版嵁涓€鑷存€?

鉁?v1鍜寁2杩斿洖鐨勭煡璇嗗簱鏁版嵁瀹屽叏涓€鑷?
鉁?鎵€鏈堿PI绔<49>偣鏁版嵁鍚屾<E98D9A>
鉁?鏃犳暟鎹<E69A9F>涪澶辨垨閲嶅<E996B2>

馃幆 娴嬭瘯娓呭崟

鍩虹<EFBFBD>鍔熻兘娴嬭瘯

  • *鍋ュ悍妫€鏌? - /api/v1/pkb/health

    • 鉁?杩斿洖姝e父鐘舵€?
    • 鉁?鏄剧ず鏁版嵁搴撹繛鎺?
    • 鉁?鏄剧ず鐭ヨ瘑搴撴暟閲?
  • *鐭ヨ瘑搴撳垪琛<EFBFBD>紙v2锛? - /api/v1/pkb/knowledge/knowledge-bases

    • 鉁?杩斿洖鐭ヨ瘑搴撳垪琛?
    • 鉁?鏁版嵁缁撴瀯姝g‘
  • *鐭ヨ瘑搴撳垪琛<EFBFBD>紙v1锛? - /api/v1/knowledge-bases

    • 鉁?浠嶇劧姝e父宸ヤ綔
    • 鉁?涓巚2鏁版嵁涓€鑷?

鍙岃矾鐢卞叡瀛樻祴璇?

  • 鏂版棫璺<EFBFBD>敱鍚屾椂鍙<EFBFBD>

    • 鉁?v1璺<31>敱姝
    • 鉁?v2璺<32>敱姝
    • 鉁?鍙<>互鍚屾椂璁块棶
  • *鏁版嵁涓€鑷存€?

    • 鉁?鐩稿悓鐨勬暟鎹<E69A9F>
    • 鉁?鐩稿悓鐨勮繑鍥炵粨鏋?
    • 鉁?鏃犲啿绐?

馃帗 鍏抽敭缁忛獙

鉁?鎴愬姛瑕佺礌

  1. 淇濆畧绛栫暐

    • 鏂版棫璺<EFBFBD>敱鍏卞瓨
    • 涓嶅垹闄ゆ棫浠g爜
    • 娓愯繘寮忓垏鎹?
  2. <EFBFBD>珛楠岃瘉

    • 鍋ュ悍妫€鏌ョ<EFBFBD>鐐?
    • 鍙岃矾鐢卞悓鏃舵祴璇?
    • 鏁版嵁涓€鑷存€ч獙璇?
  3. *<EFBFBD>€熶慨澶?

    • 鍙戠幇瀵煎叆閿欒<EFBFBD>
    • 绔嬪嵆淇<EFBFBD><EFBFBD>
    • 閲嶆柊楠岃瘉

馃摎 瀛﹀埌鐨勬暀璁?

  1. 灏忓績瀵煎叆椤哄簭

    • 娣诲姞鏂板<EFBFBD>鍏ユ椂瑕佷繚鎸佸師鏈夊<EFBFBD>鍏ュ畬鏁?
    • 浣跨敤姝鐨勫<EFBFBD>鍏ユ柟寮忥紙default vs named锛?
  2. 瀹屾暣娴嬭瘯

    • 涓嶄粎娴嬭瘯鏂板姛鑳?
    • 杩樿<EFBFBD>楠岃瘉鏃у姛鑳芥湭鍙楀奖鍝?
  3. *娓呮櫚鐨勮矾鐢卞懡鍚?

    • v1鍜寁2璺<EFBFBD>緞娓呮櫚鍖哄垎
    • 渚夸簬鐞嗚В鍜岀淮鎶?

馃殌 涓嬩竴姝ワ細闃舵<E99783>3

*闃舵<EFBFBD>3鐩<EFBFBD>爣锛氬悗绔<EFBFBD>姛鑳藉叏闈㈤獙璇?

棰勪及鏃堕棿锛?.5澶?

浠诲姟娓呭崟

  1. 鉁?闃舵<E99783>2瀹屾垚
  2. <EFBFBD>笍 鍒涘缓瀹屾暣鐨凙PI娴嬭瘯鑴氭湰
  3. <EFBFBD>笍 娴嬭瘯鎵€鏈?1涓狝PI绔<49>偣锛坴2锛?
  4. <EFBFBD>笍 瀵规瘮v1鍜寁2鐨勮繑鍥炵粨鏋?
  5. <EFBFBD>笍 杈圭晫鏉′欢娴嬭瘯
  6. <EFBFBD>笍 鎬ц兘瀵规瘮娴嬭瘯

鉁?闃舵<E99783>2鎴愬姛鏍囧噯杈炬垚

  • 鉁?**鏂拌矾鐢辨敞鍐?锛?api/v2/pkb/ 宸叉敞鍐?
  • 鉁?**鍋ュ悍妫€鏌?*锛氱嫭绔嬬<E7BB94>鐐瑰彲鐢?
  • 鉁?**鍙岃矾鐢卞叡瀛?*锛歷1鍜寁2鍚屾椂宸ヤ綔
  • 鉁?**鏁版嵁涓€鑷存€?*锛氬畬鍏ㄧ浉鍚岀殑鏁版嵁
  • 鉁?**闆跺奖鍝?*锛氭棫绯荤粺100%姝e父
  • 鉁?**蹇<>€熶慨澶?*锛氶亣鍒伴棶棰樼珛鍗宠В鍐?

*闃舵<EFBFBD>2璇勪及锛氣渽 鎴愬姛瀹屾垚锛屽彲浠ヨ繘鍏ラ樁娈?锛? 馃帀


馃摑 API鏂囨。鏇存柊

鏂板<EFBFBD><EFBFBD>敱锛坴2锛?

1. 鍋ュ悍妫€鏌?

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妯″潡杩愯<E69DA9>父"
}

2. 鐭ヨ瘑搴撶<E690B4>鐞?

# 鑾峰彇鐭ヨ瘑搴撳垪琛?
GET /api/v1/pkb/knowledge/knowledge-bases

# 鍒涘缓鐭ヨ瘑搴?
POST /api/v1/pkb/knowledge/knowledge-bases

# 鑾峰彇鐭ヨ瘑搴撹<E690B4>鎯?
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

# 缁熻<E7BC81>淇℃伅
GET /api/v1/pkb/knowledge/knowledge-bases/:id/stats

# 鏂囨。閫夋嫨锛堝叏鏂囬槄璇绘ā寮忥級
GET /api/v1/pkb/knowledge/knowledge-bases/:id/document-selection

3. 鏂囨。绠$悊

# 涓婁紶鏂囨。
POST /api/v1/pkb/knowledge/documents

# 鑾峰彇鏂囨。璇︽儏
GET /api/v1/pkb/knowledge/documents/:id

# 鍒犻櫎鏂囨。
DELETE /api/v1/pkb/knowledge/documents/:id

4. 鎵瑰<E98EB5>鐞?

# 鎵ц<E98EB5>鎵瑰<E98EB5>鐞?
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>敤銆?


*鏂囨。鏇存柊瀹屾垚锛? 馃摎