Files
AIclinicalresearch/docs/03-业务模块/IIT Manager Agent/06-开发记录/Phase1.5-AI对话集成REDCap完成记录.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

8.4 KiB
Raw Blame History

Phase 1.5: AI瀵硅瘽闆嗘垚REDCap鐪熷疄鏁版嵁鏌ヨ<E98F8C> - 寮€鍙戝畬鎴愯<E98EB4>褰?

**寮€鍙戞棩鏈?: 2026-01-03
**寮€鍙戜汉鍛?
: AI Clinical Research Team
鐗堟湰: Phase 1.5
**鐘舵€?*: 鉁?宸插畬鎴?


馃搵 *寮€鍙戠洰鏍?

瀹炵幇AI鍦ㄤ紒涓氬井淇腑鍩轰簬REDCap鐪熷疄鏁版嵁涓嶱I杩涜<EFBFBD>鏅鸿兘瀵硅瘽锛岃В鍐矻LM骞昏<EFBFBD><EFBFBD><EFBFBD>銆?

*鏍稿績闇€姹?

  1. AI鑳藉<EFBFBD>鏌ヨ<EFBFBD>REDCap鐪熷疄鏁版嵁
  2. AI涓嶇紪閫犳暟鎹<EFBFBD>紝鍩轰簬浜嬪疄鍥炵瓟
  3. <EFBFBD>寔澶氳疆瀵硅瘽涓婁笅鏂囪<EFBFBD>蹇?
  4. 鎻愪緵鍗虫椂"姝湪鏌ヨ<E98F8C>"鍙嶉<E98D99>

馃幆 瀹屾垚鍔熻兘

1. 鎰忓浘璇嗗埆

  • 鉁?鏌ヨ<EFBFBD>鐗瑰畾璁板綍: 璇嗗埆璁板綍ID锛堝<E9949B>"ID 7"銆?璁板綍7"锛?
  • 鉁?**缁熻<E7BC81>璁板綍鏁?*: 璇嗗埆"澶氬皯"銆?鍑犱釜"銆?鍑犳潯"绛夊叧閿<E58FA7>
  • 鉁?椤圭洰淇℃伅: 璇嗗埆"椤圭洰鍚嶇О"銆?椤圭洰鎯呭喌"绛?
  • 鉁?**鏅<>€氬<E282AC>璇?*: 榛樿<E6A69B>澶勭悊鍏朵粬瀵硅瘽

瀹炵幇鏂瑰紡: 鍏抽敭璇嶅尮閰?+ 姝e垯琛ㄨ揪寮?

2. REDCap鏁版嵁鏌ヨ<E98F8C>

  • 鉁?queryRedcapRecord(): 鏌ヨ<E98F8C>鐗瑰畾璁板綍鐨勮<E990A8>缁嗕俊鎭?
  • 鉁?countRedcapRecords(): 缁熻<E7BC81>鎬昏<E98EAC>褰曟暟
  • 鉁?getProjectInfo(): 鑾峰彇椤圭洰鍩烘湰淇℃伅

鏁版嵁鏉ユ簮: 鏁版嵁搴?iit_schema.projects 琛?鈫?RedcapAdapter 鈫?REDCap API

3. 鏁版嵁娉ㄥ叆LLM

  • 鉁?灏嗘煡璇㈢粨鏋滄敞鍏<E6959E>ystem娑堟伅
  • 鉁?鏂扮殑System Prompt寮鸿皟"鍩轰簬鐪熷疄鏁版嵁锛屼笉缂栭€?
  • 鉁?閿欒<E996BF>澶勭悊锛氭煡璇㈠け璐ユ椂鍙嬪ソ鎻愮ず

*4. 涓婁笅鏂囪<E98F82>蹇?

  • 鉁?SessionMemory淇濆瓨鏈€杩?杞<><E69D9E>璇?
  • 鉁?鏀<>寔澶氳疆瀵硅瘽鐞嗚В锛堝<E9949B>"浠?鎸囦唬涔嬪墠鎻愬埌鐨勬偅鑰咃級

5. 鍗虫椂鍙嶉<E98D99>

  • 鉁?鏀跺埌娑堟伅鍚庣珛鍗冲洖澶?馃<>湪鏌ヨ<E98F8C>锛岃<E9949B>绋嶅€?.."
  • 鉁?鏌ヨ<E98F8C>瀹屾垚鍚庢帹閫佹渶缁堢粨鏋?

馃彈锔?*鎶€鏈<EFBFBD>灦鏋?

*鏁版嵁娴?

鐢ㄦ埛娑堟伅锛堜紒涓氬井淇★級
    鈫?
WechatCallbackController.handleMessage()
    鈫?
ChatService.handleMessage()
    鈫?
1. detectIntent() - 鎰忓浘璇嗗埆
    鈫?
2. queryRedcapRecord() / countRedcapRecords() / getProjectInfo()
    鈫?
    prisma.iitProject.findFirst() - 浠庢暟鎹<E69A9F>簱鑾峰彇椤圭洰閰嶇疆
        鈫?
    new RedcapAdapter(url, token) - 鍒涘缓API閫傞厤鍣?
        鈫?
    redcap.exportRecords() - 璋冪敤REDCap API
        鈫?
    杩斿洖鐪熷疄鏁版嵁
    鈫?
3. buildMessagesWithData() - 鏋勫缓LLM娑堟伅锛堟敞鍏ユ暟鎹<E69A9F>級
    鈫?
4. llm.chat() - 璋冪敤DeepSeek-V3
    鈫?
5. sessionMemory.addMessage() - 璁板綍鍒颁笂涓嬫枃
    鈫?
AI鍥炲<E98DA5>锛堜紒涓氬井淇★級

鍏抽敭浠g爜

  • ChatService.ts: 390琛岋紝鏂板<E98F82>REDCap鏌ヨ<E98F8C>鏂规硶
  • 鎰忓浘璇嗗埆: detectIntent()锛屾<E9949B>鍒欏尮閰?
  • 鏁版嵁娉ㄥ叆: buildMessagesWithData()
  • System Prompt: getSystemPromptWithData()

馃И 娴嬭瘯缁撴灉

娴嬭瘯鐜<EFBFBD><EFBFBD>

  • 椤圭洰: test0102 (REDCap PID: 16)
  • **璁板綍鏁?*: 10鏉★紙ID 1-10锛?
  • 娴嬭瘯鐢ㄦ埛: FengZhiBo
  • 娴嬭瘯鏃堕棿: 2026-01-03 22:28

娴嬭瘯鍦烘櫙1: 鏌ヨ<E98F8C>鐗瑰畾璁板綍 鉁?

鐢ㄦ埛杈撳叆:

<EFBFBD>垜鏌ヨ<EFBFBD>涓€涓?璁板綍 7鐨?鎵€鏈変俊鎭?

AI鍥炲<EFBFBD> (鍩轰簬鐪熷疄鏁版嵁):

鏍规嵁REDCap鏌ヨ<EFBFBD>缁撴灉锛岃<EFBFBD>褰?鐨勪俊鎭<E4BF8A><E98EAD>涓嬶細

**鍩烘湰淇℃伅**
- 濮撳悕锛氫紒涓氬井淇? 浼佷笟寰<E7AC9F>俊7
- 鍑虹敓鏃ユ湡锛?017-01-04
- 骞撮緞锛?宀?
- 鎬у埆锛氱敺
- 韬<>珮锛?30 cm
- 浣撻噸锛?0 kg
- BMI锛?9.6

**鑱旂郴鏂瑰紡**
- 鍦板潃锛氫紒涓氬井淇?
- 閭<><E996AD>锛歡ofeng117@163.com

**鍏朵粬淇℃伅**
- 姘戞棌锛氳タ鐝<E382BF>墮瑁旀垨鎷変竵瑁?
- 娌荤枟鍙诧細娴嬭瘯7777
- 鏄<>惁瀹屾垚锛氭槸

鎵€鏈夊瓧娈靛潎宸插鍐欏畬鎴愩€傚<E282AC>闇€鏌ョ湅瀹屾暣琛ㄥ崟锛屽缓璁<E7BC93>櫥褰昍EDCap绯荤粺銆?

鏁版嵁楠岃瘉: 鉁?瀹屽叏鍖归厤REDCap鏁版嵁搴?

娴嬭瘯鍦烘櫙2: 缁熻<E7BC81>鏌ヨ<E98F8C> (棰勬湡)

鐢ㄦ埛杈撳叆: "鎴戜滑绯荤粺涓<E7B2BA>凡缁忔湁鍑犳潯璁板綍浜嗭紵"
棰勬湡鍥炲<EFBFBD>: "褰撳墠椤圭洰test0102宸叉湁 *10鏉?€呮暟鎹<E69A9F><E98EB9>褰?

娴嬭瘯鍦烘櫙3: 椤圭洰淇℃伅 (棰勬湡)

鐢ㄦ埛杈撳叆: "鍜变滑褰撳墠鐨勯」鐩<E3808D>悕绉版槸浠€涔堬紵"
棰勬湡鍥炲<EFBFBD>: "褰撳墠椤圭洰鍚嶇О涓?test0102"

鎬ц兘鎸囨爣

  • 鈴憋笍 API鏌ヨ<EFBFBD>: 300-700ms
  • 鈴憋笍 LLM鍝嶅簲: 2-3绉?
  • 鈴憋笍 **鎬诲搷搴旀椂闂?*: 3-5绉?
  • 馃搳 **Token娑堣€?*: 绾?00 tokens/娆?

馃啔 瀵规瘮锛氳В鍐矻LM骞昏<EFBFBD>

涔嬪墠锛堢紪閫犳暟鎹<EFBFBD> 鉂?

AI: "ID 7鐨勫叆缁勬棩鏈熶负 **2023-10-26**锛堝嵆鍩虹嚎璁胯<E79281>鏃ユ湡锛?
     鉂?瀹屽叏缂栭€?
     鉂?涓庣湡瀹炴暟鎹<E69A9F>笉绗?
     鉂?椤圭洰鍚嶇О缂栭€犱负"IIT-2023-001: XX骞查<E9AA9E>瀵筜Y鐤剧梾..."

鐜板湪锛堢湡瀹炴暟鎹<EFBFBD> 鉁?

AI: "鍑虹敓鏃ユ湡锛?017-01-04
     骞撮緞锛?宀?
     韬<>珮锛?30 cm
     浣撻噸锛?0 kg"
     鉁?100%鐪熷疄
     鉁?鏉ヨ嚜REDCap鏁版嵁搴?
     鉁?椤圭洰鍚嶇О涓簍est0102锛堢湡瀹烇級

馃挕 *鎶€鏈<EFBFBD>寒鐐?

1. 鏋舵瀯璁捐<E79281>

  • 鉁?浠庢暟鎹<EFBFBD>簱璇诲彇閰嶇疆: 涓嶄娇鐢ㄧ幆澧冨彉閲忥紝鏀<E7B49D>寔澶氶」鐩?
  • 鉁?**澶嶇敤閫氱敤鑳藉姏灞?*: LLMFactory闆堕厤缃<E58EA4>泦鎴?
  • 鉁?鍒嗗眰娓呮櫚: Controller 鈫?Service 鈫?Adapter 鈫?API

2. 鎰忓浘璇嗗埆

  • 鉁?**绠€鍗曟湁鏁?*: 鍏抽敭璇嶅尮閰?+ 姝e垯琛ㄨ揪寮?
  • 鉁?鎵╁睍鎬уソ: 鏄撲簬娣诲姞鏂版剰鍥?
  • 鉁?鎬ц兘浼樼<EFBFBD>: <1ms璇嗗埆鏃堕棿

3. 鏁版嵁瀹夊叏

  • 鉁?Token鍔犲瘑瀛樺偍: 鏁版嵁搴撲腑鍔犲瘑
  • 鉁?**鍔ㄦ€佽幏鍙?*: 姣忔<E5A7A3>鏌ヨ<E98F8C>鏃朵粠鏁版嵁搴撹<E690B4>鍙?
  • 鉁?鏉冮檺鎺у埗: 鍩轰簬椤圭洰鐘舵€佽繃婊?

4. 鐢ㄦ埛浣撻獙

  • 鉁?鍗虫椂鍙嶉<EFBFBD>: "姝湪鏌ヨ<E98F8C>"娑堟伅
  • 鉁?鍑嗙‘鍥炵瓟: 鍩轰簬鐪熷疄鏁版嵁
  • 鉁?**涓婁笅鏂囪繛璐?*: 鏀<>寔澶氳疆瀵硅瘽

馃搳 爜缁熻<EFBFBD>

鏂板<EFBFBD>鏂囦欢

  1. SessionMemory.ts - 170琛?(涓婁笅鏂囪<E98F82>蹇?
  2. test-redcap-query-from-db.ts - 250琛?(娴嬭瘯鑴氭湰)
  3. check-test-project-in-db.ts - 74琛?(椤圭洰妫€鏌?

<EFBFBD>敼鏂囦欢

  1. ChatService.ts - 鏂板<E98F82>200琛?(REDCap闆嗘垚)
  2. WechatCallbackController.ts - 鏂板<E98F82>鍗虫椂鍙嶉<E98D99>
  3. routes/index.ts - 鏂板<E98F82>鏍硅矾鐢?

鍒犻櫎鏂囦欢

  1. test-redcap-query-for-ai.ts (浣跨敤鐜<E695A4><E9909C>鍙橀噺锛屽凡搴熷純)
  2. check-env-config.ts (鐜<><E9909C>鍙橀噺妫€鏌ワ紝宸插簾寮?

鈿狅笍 褰撳墠闄愬埗

1. 鎰忓浘璇嗗埆

  • 鉂?浠呮敮鎸佸叧閿<E58FA7>瘝鍖归厤
  • 鉂?涓嶆敮鎸佸<E98EB8>鏉傛煡璇㈢粍鍚?
  • 鉂?涓嶆敮鎸佹ā绯婂尮閰?

2. 鏁版嵁鏌ヨ<E98F8C>

  • 鉂?浠呮敮鎸佸崟椤圭洰锛堥粯璁<E7B2AF>ctive椤圭洰锛?
  • 鉂?涓嶆敮鎸佸瓧娈靛悕涓<E68295>枃鏄犲皠
  • 鉂?涓嶆敮鎸佸<E98EB8>鏉傝繃婊ゆ潯浠?

*3. 涓婁笅鏂囪<E98F82>蹇?

  • 鉂?浠呬繚瀛樻渶杩?杞<><E69D9E>璇?
  • 鉂?鍩轰簬鍐呭瓨锛屾湇鍔¢噸鍚<E599B8>涪澶?
  • 鉂?涓嶆敮鎸佽法浼氳瘽璁板繂

馃殌 鍚庣画鏀硅繘鏂瑰悜

<EFBFBD>湡浼樺寲

  1. 鎵╁睍鎰忓浘璇嗗埆: 鏀<>寔鏇村<E98F87>鏌ヨ<E98F8C>妯″紡
  2. 瀛楁<EFBFBD>鏄犲皠: 涓<>枃瀛楁<E7809B>鍚?鈫?REDCap瀛楁<E7809B>鍚?
  3. 閿欒<EFBFBD>浼樺寲: 鏇村弸濂界殑閿欒<E996BF>鎻愮ず
  4. **澶氶」鐩<E3808D>敮鎸?*: 鐢ㄦ埛閫夋嫨鏌ヨ<E98F8C><EFBFBD>釜椤圭洰

<EFBFBD>湡鍗囩骇 (Phase 2)

  1. Function Calling: 鍗囩骇涓篖LM鑷<4D>富鍐崇瓥璋冪敤宸ュ叿
  2. Redis缂撳瓨: 缂撳瓨鏌ヨ<E98F8C>缁撴灉锛屽噺灏慉PI璋冪敤
  3. 鏉冮檺鎺у埗: 鍩轰簬鐢ㄦ埛瑙掕壊杩囨护鏁版嵁
  4. 鎬ц兘鐩戞帶: 璁板綍鏌ヨ<E98F8C>鑰楁椂銆侀敊璇<E6958A>

闀挎湡瑙勫垝

  1. **Dify鐭ヨ瘑搴?*: 鏌ヨ<E98F8C>鐮旂┒鏂规<E98F82>銆佷鸡鐞嗘枃浠?
  2. 鏅鸿兘璐ㄦ帶: AI鍒嗘瀽鏁版嵁璐ㄩ噺闂<E599BA><E99782>
  3. H5鍓嶇<EFBFBD>: 鏇翠赴瀵岀殑浜や簰浣撻獙
  4. **澶氭ā鎬?*: 鏀<>寔鍥剧墖銆佹枃妗笂浼?

馃摑 鎶€鏈<EFBFBD>€哄姟

1. 涓存椂鎺<E6A482>

  • 鈿狅笍 浣跨敤鍏抽敭璇嶅尮閰嶏紙搴斿崌绾т负Function Calling锛?
  • 鈿狅笍 SessionMemory鍩轰簬鍐呭瓨锛堝簲鏀逛负Redis锛?
  • 鈿狅笍 榛樿<E6A69B>鏌ヨ<E98F8C><EFBFBD>竴涓猘ctive椤圭洰锛堝簲鏀<E7B0B2>寔椤圭洰閫夋嫨锛?

*2. 寰呭疄鐜板姛鑳?

  • 瀛楁<EFBFBD>鍚嶄腑鏂囨槧灏?
  • 澶嶆潅鏌ヨ<EFBFBD>
  • 鏁版嵁缂撳瓨鏈哄埗
  • 鏉冮檺鎺у埗

馃幆 *閲岀▼纰戞剰涔?

*鎶€鏈<EFBFBD>獊鐮?

  1. 鉁?喅LLM骞昏<EFBFBD>: AI涓嶅啀缂栭€犳暟鎹?
  2. 鉁?鏁版嵁闂<EFBFBD>: 鏁版嵁搴?鈫?REDCap 鈫?AI 鈫?鐢ㄦ埛
  3. 鉁?鏋舵瀯楠岃瘉: 浠庢暟鎹<E69A9F>簱璇诲彇閰嶇疆鐨勬柟妗堝彲琛?

*涓氬姟浠峰€?

  1. 鉁?鎻愬崌鏁堢巼: PI鏃犻渶鐧诲綍REDCap鍗冲彲鏌ヨ<E98F8C>鏁版嵁
  2. 鉁?澧炲己淇′换: AI鍩轰簬浜嬪疄鍥炵瓟锛屽彲淇¤禆
  3. 鉁?鏀瑰杽浣撻獙: 浼佷笟寰<E7AC9F>俊鐩存帴瀵硅瘽锛屼究鎹?

鍥㈤槦鎴愰暱

  1. 鉁?鏋舵瀯鑳藉姏: 鐞嗚В鍒嗗眰鏋舵瀯鐨勯噸瑕佹€?
  2. 鉁?<EFBFBD><EFBFBD>: 浠庣幆澧冨彉閲忓埌鏁版嵁搴撻厤缃<E58EA4>殑婕旇繘
  3. 鉁?娴嬭瘯椹卞姩: 鍏堟祴璇昍EDCap API锛屽啀闆嗘垚AI

馃檹 鑷磋阿

鎰熻阿鍥㈤槦鎴愬憳鐨勮緵鍕や粯鍑猴細

  • **闇€姹傚垎鏋?*: 鏄庣AI瀵硅瘽鐨勬牳蹇冧环鍊?
  • 鏋舵瀯璁捐<EFBFBD>: 閫夋嫨浠庢暟鎹<E69A9F>簱璇诲彇閰嶇疆鐨勬柟妗?
  • 浠g爜瀹炵幇: 楂樿川閲忕殑浠g爜鍜屾竻鏅扮殑娉ㄩ噴
  • 娴嬭瘯楠岃瘉: 瀹屾暣鐨勬祴璇曠敤渚嬪拰鐪熷疄鍦烘櫙楠岃瘉

馃摎 鐩稿叧鏂囨。

  • [Phase 1.5寮€鍙戣<EFBFBD>鍒抅(../04-寮€鍙戣<E98D99>鍒?Phase1.5-AI瀵硅瘽鑳藉姏寮€鍙戣<E98D99>鍒?md)
  • MVP浠诲姟娓呭崟
  • [妯″潡褰撳墠鐘舵€乚(../00-妯″潡褰撳墠鐘舵€佷笌寮€鍙戞寚鍗?md)
  • [Day 3寮€鍙戣<E98D99>褰昡(./Day3-浼佷笟寰<E7AC9F>俊闆嗘垚涓庣<E6B693>鍒扮<E98D92>娴嬭瘯瀹屾垚璁板綍.md)

鏂囨。缁存姢: 寮€鍙戝洟闃? **鏈€鍚庢洿鏂?: 2026-01-03
**涓嬩竴姝?
: Phase 2 - Function Calling + Dify鐭ヨ瘑搴?