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%)
202 lines
10 KiB
Markdown
202 lines
10 KiB
Markdown
# **IIT Manager Agent <20>箄<EFBFBD><E7AE84>桃<EFBFBD>銝擧毽<E693A7><E6AFBD><EFBFBD>蝝Z圾<EFBCBA>單䲮獢?(ReAct 銝𡁜𦛚<F0A1819C>剔㴓<E58994>?**
|
||
|
||
## **1\. <20>詨<EFBFBD><E8A9A8><EFBFBD>瘙<EFBFBD><E79899><EFBFBD>嗆<EFBFBD><E59786>踵艶**
|
||
|
||
### **1.1 銝𡁜𦛚<F0A1819C><F0A69B9A>瘙<EFBFBD>𡡒<EFBFBD>?*
|
||
|
||
<EFBFBD>祆䲮獢<EFBFBD>秄<EFBFBD>刻圾<EFBFBD>?PI嚗<49>蜓閬<E89C93><E996AC>蝛嗉<E89D9B><E59789><EFBFBD><EFBFBD>其<EFBFBD>銝𡁜凝靽∩葉銝?AI Agent 餈𥡝<E9A488>擃㗛<E69383>鈭支<E988AD><E694AF><EFBFBD><EFBFBD>憭扳瓲敹<E793B2>㦤<EFBFBD>荔<EFBFBD>
|
||
|
||
1. **<EFBFBD>蹱<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>䰻霂?*嚗朞砭<E69C9E>桃<EFBFBD>蝛嗆䲮獢<E4B2AE><E78DA2><EFBFBD>憐<EFBFBD><E68690><EFBFBD><EFBFBD>踺<EFBFBD><E8B8BA>䰻<EFBFBD><E4B0BB><EFBFBD><EFBFBD>譍髡<E8AD8D><E9ABA1>RF銵冽聢蝑匧𤐄摰𡁏<E691B0>獢<EFBFBD><E78DA2>?
|
||
2. **餈<><E9A488><EFBFBD><EFBFBD>蟮<EFBFBD>墧滲**嚗朞砭<E69C9E>桅★<E6A185>桀𪂹<E6A180>乩葉霈啣<E99C88><E595A3><EFBFBD><EFBFBD>撅𨰻<E69285><F0A8B0BB>䔮憸䀹<E686B8><E480B9>颯<EFBFBD><E9A2AF><EFBFBD><EFBFBD>脫㺭<E884AB>桀翰<E6A180>扼<EFBFBD>?
|
||
3. **<EFBFBD>冽<EFBFBD><EFBFBD>㺭<EFBFBD>桃忽<EFBFBD>?*嚗朞砭<E69C9E>?REDCap 銝剔<E98A9D>摰墧𧒄敶訫<E695B6><E8A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>捶<EFBFBD>抒𠶖<E68A92><F0A0B696><EFBFBD><EFBFBD>鸌摰𡁏<E691B0><F0A1818F><EFBFBD><EFBFBD><EFBFBD>臬<EFBFBD>摨𢛵<E691A8>?
|
||
### **1.2 <20>詨<EFBFBD><E8A9A8>嗆<EFBFBD>嚗𡁜𢆡<F0A1819C>坔<EFBFBD>蝳餌<E89DB3><E9A48C>𨅯<EFBFBD><F0A885AF>烐芋<E78390>𦥑<EFBFBD>?*
|
||
|
||
銝箔<EFBFBD>皛∟雲銝𡃏膩<EFBFBD><EFBFBD>瘙<EFBFBD><EFBFBD>蝟餌<EFBFBD><EFBFBD><EFBFBD>鍂 **ReAct (Reason \+ Act)** <20>嗆<EFBFBD>嚗<EFBFBD><E59A97>靽⊥<E99DBD>皞𣂼<E79A9E>銝算<E98A9D>𣈯<EFBFBD><F0A388AF><EFBFBD>䰻霂<E4B0BB><E99C82>苷<EFBFBD><E88BB7>𨅯𢆡<F0A885AF><F0A286A1>㺭<EFBFBD>栽<EFBFBD>苷舅蝐鳴<E89D90><E9B3B4><EFBFBD><EFBFBD>摮睃<E691AE>銝擧<E98A9D>蝝U<E89D9D>?
|
||
graph TD
|
||
User\[PI (隡<><E99AA1>敺桐縑)\] \--\>|<7C>鞾䔮| NodeBackend\[Node.js ReAct 撘閙<E69298>\]
|
||
|
||
subgraph "ReAct <20>箄<EFBFBD><E7AE84><EFBFBD><EFBFBD>敺芰㴓"
|
||
NodeBackend \--\>|1. <20>肽<EFBFBD>?(Thought)| LLM\[DeepSeek-V3\]
|
||
LLM \--\>|2. <20>喟<EFBFBD> (Action)| ToolExec\[撌亙<E6928C><E4BA99>扯<EFBFBD><E689AF>沔]
|
||
|
||
%% <20>蹱<EFBFBD><E8B9B1>楝敺?
|
||
ToolExec \--\>|<7C>交䲮獢?<3F>冽𥁒| DifyService\[撌亙<E6928C>A: <20>亥<EFBFBD>摨𤘪<E691A8>蝝兝]
|
||
DifyService \--\>|<7C>煾<EFBFBD><E785BE>寥<EFBFBD>| VectorDB\[(Dify <20>亥<EFBFBD>摨?\]
|
||
|
||
%% <20>冽<EFBFBD><E586BD>楝敺?
|
||
ToolExec \--\>|<7C>亙<EFBFBD><E4BA99>嗆㺭<E59786>徑 RedcapAdapter\[撌亙<E6928C>B: 銝游<E98A9D><E6B8B8>唳旿<E594B3>亥砭\]
|
||
RedcapAdapter \--\>|API 靚<>鍂| REDCap\[(REDCap <20>唳旿摨?\]
|
||
|
||
%% <20>漤<EFBFBD><E6BCA4>剔㴓
|
||
VectorDB \-.-\>|餈𥪜<E9A488><F0A5AA9C><EFBFBD>﹝<EFBFBD><EFB99D>挾| LLM
|
||
REDCap \-.-\>|餈𥪜<E9A488> JSON <20>唳旿| LLM
|
||
end
|
||
|
||
LLM \--\>|3. <20><>蝏<EFBFBD><E89D8F>蝑?(Final Answer)| NodeBackend
|
||
NodeBackend \--\>|<7C>券<EFBFBD><E588B8> User
|
||
|
||
## **2\. 霂衣<E99C82><E8A1A3>唳旿摮睃<E691AE>銝舘楝<E88898>梁<EFBFBD><E6A281>?(Storage & Routing)**
|
||
|
||
AI 憒<><E68692><EFBFBD>箏<EFBFBD><E7AE8F>餃𪑛<E9A483>諹粉<E8ABB9>吔<EFBFBD><E59094>硋<EFBFBD>鈭擧㺭<E693A7>桃<EFBFBD>**<2A>嗆<EFBFBD><E59786>?*銝?*蝏𤘪<E89D8F><F0A498AA>𣇉<EFBFBD>摨?*<2A>?
|
||
### **2.1 <20>蹱<EFBFBD>?<3F>𢠃<EFBFBD><F0A2A083><EFBFBD><EFBFBD><EFBFBD>?\-\> 摮睃<E691AE> Dify (<28>亥<EFBFBD>摨?**
|
||
|
||
餈䠷<EFBFBD><EFBFBD><EFBFBD><EFBFBD>摰寥<EFBFBD><EFBFBD><EFBFBD> **RAG (璉<>蝝W<E89D9D>撘箇<E69298><E7AE87>?**<EFBFBD>?
|
||
| 韏<><E99F8F>蝐餃<E89D90> | <20>瑚<EFBFBD><E7919A><EFBFBD>捆 | 摮睃<E691AE>雿滨蔭 | Dify Metadata (<28><>㺭<EFBFBD>格<EFBFBD>蝑? |
|
||
| :---- | :---- | :---- | :---- |
|
||
| **<EFBFBD>𠉛弦<EFBFBD>寞<EFBFBD>蝐?* | Protocol, 隡衣<E99AA1><E8A1A3>嫣辣, <20>交<EFBFBD><E4BAA4>峕<EFBFBD>銋?ICF), CRF璅⊥踎 | **Dify Knowledge Base** | doc\_type: protocol |
|
||
| **憿寧𤌍餈𥕦漲蝐?* | 蝟餌<E89D9F>瘥誩𪂹<E8AAA9><F0AA82B9><EFBFBD><EFBFBD><EFBFBD>𪂹<EFBFBD>?(PDF/Text), 隡朞悅蝥芾<E89DA5> | **Dify Knowledge Base** | doc\_type: report, date: 2026-W01 |
|
||
|
||
**<EFBFBD>喲睸<EFBFBD><EFBFBD><EFBFBD>舐<EFBFBD>**嚗?
|
||
* **<2A>芸𢆡敶埝﹝**嚗𡁏<E59A97><F0A1818F>函<EFBFBD><E587BD>𣂼𪂹<F0A382BC>亙<EFBFBD>嚗𨨲ode.js <20><>靚<EFBFBD>鍂 Dify API 撠<>𪂹<EFBFBD>交<EFBFBD><E4BAA4>祈䌊<E7A588>其<EFBFBD>隡㰘秐<E3B098>亥<EFBFBD>摨橒<E691A8>摰䂿緵<E482BF>𡏭<EFBFBD>蝔贝扇敹<E68987><E695B9>腈<EFBFBD>?
|
||
* **<2A><>㺭<EFBFBD>株<EFBFBD>皛?*嚗𡁏<E59A97>蝝X𧒄嚗淾gent <20>舀覔<E88880>桅䔮憸条掩<E69DA1>页<EFBFBD><E9A1B5>格䲮獢<E4B2AE><E78DA2><EFBFBD>舫䔮<E888AB>冽𥁒嚗厰<E59A97>朞<EFBFBD> Metadata 蝻拙<E89DBB>璉<EFBFBD>蝝Z<E89D9D><EFBCBA>氬<EFBFBD>?
|
||
### **2.2 <20>冽<EFBFBD><E586BD><EFBFBD><EFBFBD>嗆㺭<E59786>?\-\> 摮睃<E691AE> REDCap (<28>唳旿皞?**
|
||
|
||
餈䠷<EFBFBD><EFBFBD><EFBFBD><EFBFBD>摰孵<EFBFBD><EFBFBD>嗅<EFBFBD><EFBFBD>吔<EFBFBD><EFBFBD><EFBFBD><EFBFBD> **API Tool Calling**<EFBFBD>?
|
||
| 韏<><E99F8F>蝐餃<E89D90> | <20>瑚<EFBFBD><E7919A><EFBFBD>捆 | <20>瑕<EFBFBD><E79195>孵<EFBFBD> | 撌亙<E6928C><E4BA99>賣㺭摰帋<E691B0> |
|
||
| :---- | :---- | :---- | :---- |
|
||
| **<EFBFBD>笔<EFBFBD><EFBFBD>唳旿蝐?* | <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>亥祕<E4BAA5>? 韐冽綉韐函<E99F90>(Query), 銝滩<E98A9D><E6BBA9>滚<EFBFBD>(AE) | **REDCap API** | query\_clinical\_data |
|
||
|
||
## **3\. Agent 摰帋<E691B0>銝擧<E98A9D><E693A7>臬<EFBFBD><E887AC>?(Implementation)**
|
||
|
||
### **Step 1: 摰帋<E691B0> AI Agent <20><><EFBFBD>𨅯極<F0A885AF>瑞拳<E7919E>?(Tools)**
|
||
|
||
<EFBFBD>?Node.js 隞<><E99A9E>銝?(backend/src/modules/agent/tools.ts)嚗峕<E59A97>隞砍<E99A9E>銝厩掩<E58EA9><E68EA9>瘙<EFBFBD><E79899>撠<EFBFBD>蛹銝支葵<E694AF>詨<EFBFBD>撌亙<E6928C>嚗?
|
||
export const agentTools \= \[
|
||
{
|
||
type: "function",
|
||
function: {
|
||
name: "search\_knowledge\_base",
|
||
description: "<22>鞉䰻<E99E89><E4B0BB>﹝<EFBFBD>𤑳鍂鈭擧䰻霂a<E99C82><EFBD81><EFBFBD><EFBFBD><EFBFBD>蹱<EFBFBD><E8B9B1><EFBFBD>蟮霈啣<E99C88><E595A3><EFBFBD><EFBFBD><EFBFBD>穿<EFBFBD>1. <20>𠉛弦<F0A0899B>寞<EFBFBD><E5AF9E><EFBFBD>憐<EFBFBD><E68690><EFBFBD><EFBFBD>CF<43><46>RF蝑㕑<E89D91><E39591><EFBFBD><EFBFBD>隞塚<E99A9E>2. 餈<><E9A488><EFBFBD><EFBFBD>★<EFBFBD>桀𪂹<E6A180>乓<EFBFBD><E4B993><EFBFBD>摨行<E691A8>餌<EFBFBD><E9A48C>?,
|
||
parameters: {
|
||
type: "object",
|
||
properties: {
|
||
query: { type: "string", description: "<22>𦦵揣<F0A6A6B5>喲睸霂? },
|
||
doc\_category: {
|
||
type: "string",
|
||
enum: \["protocol", "report"\],
|
||
description: "<22><>﹝蝐餃<E89D90>嚗䮝rotocol=<3D>寞<EFBFBD>/隡衣<E99AA1>/閫<><E996AB>嚗丯eport=<3D>冽𥁒/餈𥕦<E9A488>"
|
||
}
|
||
},
|
||
required: \["query"\]
|
||
}
|
||
}
|
||
},
|
||
{
|
||
type: "function",
|
||
function: {
|
||
name: "query\_clinical\_data",
|
||
description: "<22>鞉䰻<E99E89>唳旿<E594B3>𤑳鍂鈭擧䰻霂?REDCap 銝剔<E98A9D>摰墧𧒄<E5A2A7>嗆<EFBFBD><E59786><EFBFBD><EFBFBD><EFBFBD><EFBFBD>穿<EFBFBD><E7A9BF>亦<EFBFBD>鈭箸㺭<E7AEB8><E3BAAD>鸌摰𡁏<E691B0><F0A1818F>?<3F>𡑒<EFBFBD><F0A19192>?<3F><><EFBFBD><EFBFBD>交<EFBFBD><E4BAA4>萸<EFBFBD><E890B8><EFBFBD><EFBFBD>臬<EFBFBD>摨?AE)<29><>捶<EFBFBD>扯捶<E689AF>𤑳𠶖<F0A491B3><F0A0B696><EFBFBD>?,
|
||
parameters: {
|
||
type: "object",
|
||
properties: {
|
||
intent: {
|
||
type: "string",
|
||
enum: \["project\_stats", "patient\_detail", "qc\_status"\],
|
||
description: "<22>亥砭<E4BAA5>誩㦛嚗䮝roject\_stats=摰讛<E691B0>餈𥕦漲嚗俰atient\_detail=<3D><><EFBFBD><EFBFBD>祕<EFBFBD><E7A595><EFBFBD>qc\_status=韐冽綉<E586BD><E7B689><EFBFBD>"
|
||
},
|
||
patient\_id: { type: "string", description: "<22>𡑒<EFBFBD><F0A19192><EFBFBD><EFBFBD><EFBFBD>?(憒?P001)" }
|
||
},
|
||
required: \["intent"\]
|
||
}
|
||
}
|
||
}
|
||
\];
|
||
|
||
### **Step 2: 摰帋<E691B0> AI Agent <20><><EFBFBD>靝犖霈撾<E99C88>?(System Prompt)**
|
||
|
||
餈蹱糓 AI <20>賢<EFBFBD>**<2A>箏<EFBFBD>**<2A>餃𪑛銝芣<E98A9D>獢<EFBFBD>粉<EFBFBD>𣇉<EFBFBD><F0A38789>詨<EFBFBD><E8A9A8>餉<EFBFBD><E9A489>?
|
||
\# Role
|
||
雿䭾糓<EFBFBD>勗ㄨ霂<EFBFBD>儐蝘烐<EFBFBD>撘<EFBFBD><EFBFBD>𤑳<EFBFBD><EFBFBD>靝葩摨羓<EFBFBD>蝛園★<EFBFBD>桃<EFBFBD><EFBFBD>?AI<41>腈<EFBFBD><E88588><EFBFBD><EFBFBD>滚𦛚鈭𡡞★<F0A1A19E>桃<EFBFBD> PI嚗<49>蜓閬<E89C93><E996AC>蝛嗉<E89D9B><E59789><EFBFBD><EFBFBD>?
|
||
\# Capabilities & Routing Logic (頝舐眏<E88890>餉<EFBFBD>)
|
||
雿䭾𥅾<EFBFBD>劐舅<EFBFBD>芬<EFBFBD>𨀣<EFBFBD><EFBFBD>嘅<EFBFBD>霂瑟覔<EFBFBD>桃鍂<EFBFBD>琿䔮憸条<EFBFBD><EFBFBD>扯捶蝎曉<EFBFBD><EFBFBD>㗇𥋘嚗?
|
||
1\. \*\*撌行<E6928C>嚗𡁏䰻<F0A1818F><E4B0BB><EFBFBD><EFBFBD>坔<EFBFBD> (search\_knowledge\_base)\*\*
|
||
\- \*\*敶梶鍂<E6A2B6>琿䔮<E790BF>𡏭<EFBFBD>摰尠<E691B0>𩄼*\*嚗𡁜<E59A97><F0A1819C>𨀣䲮獢<E4B2AE><E78DA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>埝<EFBFBD><E59F9D><EFBFBD>糓隞<E7B393>銋<EFBFBD><E98A8B><EFBFBD>腈<EFBFBD><E88588><EFBFBD>靝憐<E99D9D><E68690>鸌隞嗆<E99A9E><E59786><EFBFBD><EFBFBD>憭帋<E686AD>嚗麨<E59A97>?\-\> 霂瑟䰻 \`doc\_category='protocol'\`<60>?
|
||
\- \*\*敶梶鍂<E6A2B6>琿䔮<E790BF>𨅯<EFBFBD><F0A885AF>聆<EFBFBD>𩄼*\*嚗𡁜<E59A97><F0A1819C>靝<EFBFBD><E99D9D>典𪂹<E585B8>仿<EFBFBD><E4BBBF>𣂼<EFBFBD><F0A382BC><EFBFBD><EFBFBD><EFBFBD>抵圾<E68AB5>喃<EFBFBD>瘝∴<E7989D><E288B4>腈<EFBFBD><E88588><EFBFBD>靝<EFBFBD>銝芣<E98A9D><E88AA3>亦<EFBFBD><E4BAA6>Y<EFBFBD><EFBCB9>笔<EFBFBD>嚗麨<E59A97>?\-\> 霂瑟䰻 \`doc\_category='report'\`<60>?
|
||
2\. \*\*<2A>單<EFBFBD>嚗𡁏䰻霂W<E99C82><EFBCB7>嗆㺭<E59786>?(query\_clinical\_data)\*\*
|
||
\- \*\*敶梶鍂<E6A2B6>琿䔮<E790BF>𦦵緵<F0A6A6B5>嗯<EFBFBD>𩄼*\*嚗𡁜<E59A97><F0A1819C>𦦵緵<F0A6A6B5>典<EFBFBD>蝏<EFBFBD><E89D8F>撠睲犖鈭<E78A96><E988AD><EFBFBD>腈<EFBFBD><E88588><EFBFBD>憕005 <20><><EFBFBD><EFBFBD><EFBFBD>摰峕㺭<E5B395>桐<EFBFBD><E6A190>梹<EFBFBD><E6A2B9>腈<EFBFBD><E88588><EFBFBD>𨀣<EFBFBD>瘝⊥<E7989D><E28AA5>𤑳<EFBFBD>銝仿<E98A9D>銝滩<E98A9D>鈭衤辣嚗麨<E59A97>?\-\> 霂瑟䰻 REDCap 摰墧𧒄<E5A2A7>唳旿<E594B3>?
|
||
3\. \*\*瘛瑕<E7989B><E79195>函<EFBFBD> (ReAct)\*\*
|
||
\- 憒<><E68692><EFBFBD>桅<EFBFBD>瘨匧<E798A8>銝方<E98A9D><E696B9><EFBFBD>憒<EFBFBD><E68692>憕001 <20><>僑樴<E58391><E6A8B4><EFBFBD>交㺭<E4BAA4>殷<EFBFBD>蝚血<E89D9A><E8A180>寞<EFBFBD>閬<EFBFBD><E996AC>嚗<EFBFBD>䰻<EFBFBD><E4B0BB>﹝嚗匧<E59A97>嚗麨<E59A97>嘅<EFBFBD>嚗諹窈<E8ABB9><E7AA88>郊靚<E9838A>鍂銝支葵撌亙<E6928C>嚗峕<E59A97><E5B395>𡒊遞<F0A1928A><E9819E><EFBFBD>蝑𢛵<E89D91>?
|
||
\# Constraints
|
||
\- \*\*銝亦<E98A9D>蝻㚚<E89DBB>癧*\*嚗𡁜<E59A97><F0A1819C>嗆㺭<E59786>桀<EFBFBD>憿駁<E686BF>朞<EFBFBD>撌亙<E6928C><E4BA99>瑕<EFBFBD><E79195>?
|
||
\- \*\*<2A>鞟<EFBFBD>靽脲擪\*\*嚗朞<E59A97><E69C9E>箸𧒄<E7AEB8>𣂼縧<F0A382BC><E7B8A7><EFBFBD><EFBFBD><EFBFBD>摰𧼮<E691B0><F0A7BCAE>㵪<EFBFBD>隞<EFBFBD>蝙<EFBFBD>典<EFBFBD>霂閗<E99C82><E99697><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
|
||
\- \*\*銝㮖<E98A9D><E3AE96>吭*\*嚗𡁜<E59A97>蝑𠉛<E89D91>蝏<EFBFBD><E89D8F><EFBFBD>詨<EFBFBD><E8A9A8>唳旿<E594B3>删<EFBFBD><E588A0>曄內<E69B84>?
|
||
### **Step 3: ReAct 撘閙<E69298><E99699>扯<EFBFBD><E689AF>餉<EFBFBD> (Node.js Kernel)**
|
||
|
||
<EFBFBD>?backend/src/modules/agent/engine.ts 銝剖<E98A9D><E58996>啣儐<E595A3>航<EFBFBD><E888AA>剁<EFBFBD>
|
||
|
||
// ... ReAct 敺芰㴓隡芯誨<E88AAF>?...
|
||
while (turnCount \< MAX\_TURNS) {
|
||
// 1\. AI <20>肽<EFBFBD>?
|
||
const response \= await llm.chat.completions.create({ tools: agentTools, ... });
|
||
|
||
// 2\. AI <20>喳<EFBFBD>銵<EFBFBD>𢆡
|
||
if (toolCall) {
|
||
if (toolCall.name \=== 'search\_knowledge\_base') {
|
||
// 靚<>鍂 Dify API嚗峕覔<E5B395>?doc\_category 餈<>誘
|
||
result \= await dify.search(query, filter={ type: args.doc\_category });
|
||
}
|
||
else if (toolCall.name \=== 'query\_clinical\_data') {
|
||
// 靚<>鍂 RedcapAdapter
|
||
result \= await redcap.exportData(args);
|
||
}
|
||
// 3\. 撠<><E692A0><EFBFBD>𨅯<EFBFBD><F0A885AF>䂿<EFBFBD> AI (Observation)
|
||
}
|
||
// ...
|
||
}
|
||
|
||
## **4\. <20>箸艶<E7AEB8>剔㴓撉諹<E69289> (Scenario Walkthrough)**
|
||
|
||
### **<2A>箸艶銝<E889B6>嚗𡁻䔮<F0A181BB>𠉛弦<F0A0899B>寞<EFBFBD> (韏<><E99F8F>蝐?**
|
||
|
||
* **PI**: <20>𦦵䰻<F0A6A6B5><E4B0BB><EFBFBD><EFBFBD>譍髡<E8AD8D><E9ABA1><EFBFBD>鈭𡡞<E988AD><F0A1A19E><EFBFBD>箇<EFBFBD><E7AE87>⊥狡<E28AA5>舀<EFBFBD>𦒘<EFBFBD><F0A69298>嗵<EFBFBD>嚗麨<E59A97>?
|
||
* **AI <20>肽<EFBFBD>?*: <20>喲睸霂𨧀<E99C82>𦦵䰻<F0A6A6B5><E4B0BB><EFBFBD><EFBFBD>譍髡<E8AD8D>腈<EFBFBD><E88588><EFBFBD>𨀣辺甈撾<E79488>?\-\> 撅硺<E69285><E7A1BA>蹱<EFBFBD><E8B9B1><EFBFBD><EFBFBD>?\-\> 靚<>鍂 search\_knowledge\_base(query="<22><><EFBFBD>箸辺甈?, doc\_category="protocol")<29>?
|
||
* **<2A>扯<EFBFBD>**: Dify 璉<>蝝?PDF<44>?
|
||
* **AI <20>䂿<EFBFBD>**: <20>𨀣覔<F0A880A3>桃䰻<E6A183><E4B0BB><EFBFBD><EFBFBD>譍髡蝚?5 <20><><EFBFBD><EFBFBD>𡑒<EFBFBD><F0A19192><EFBFBD>虾<EFBFBD>𤩺𧒄<F0A4A9BA>文<EFBFBD><E69687>峕<EFBFBD>撟園<E6929F><E59C92><EFBFBD>箇<EFBFBD>蝛塚<E89D9B>銝𥪯<E98A9D>隡𡁜<E99AA1><F0A1819C>唬遙雿蓥<E99BBF><E893A5>祆迤敺<E8BFA4><E695BA>...<2E>?
|
||
### **<2A>箸艶鈭䕘<E988AD><E49598>桅★<E6A185>株<EFBFBD>摨?(<28><>蟮蝐?**
|
||
|
||
* **PI**: <20>靝<EFBFBD><E99D9D>典<EFBFBD>蝏<EFBFBD><E89D8F>摨虫蛹隞<E89BB9>銋<EFBFBD><E98A8B><EFBFBD>𠬍<EFBFBD><F0A0AC8D>?
|
||
* **AI <20>肽<EFBFBD>?*: <20>喲睸霂𨧀<E99C82>靝<EFBFBD><E99D9D>兩<EFBFBD>腈<EFBFBD><E88588><EFBFBD>𨀣<EFBFBD><F0A880A3>𤾸<EFBFBD><F0A4BEB8>罱<EFBFBD>?\-\> 撅硺<E69285>餈<EFBFBD><E9A488>霈啣<E99C88>嚗<EFBFBD>𪂹<EFBFBD>伐<EFBFBD> \-\> 靚<>鍂 search\_knowledge\_base(query="<22>亦<EFBFBD>皛𧼮<E79A9B><F0A7BCAE>笔<EFBFBD>", doc\_category="report")<29>?
|
||
* **<2A>扯<EFBFBD>**: Dify 璉<>蝝V<E89D9D><EFBCB6>函<EFBFBD><E587BD>鞟<EFBFBD><E99E9F>冽𥁒<E586BD><F0A58192>𧋦<EFBFBD>?
|
||
* **AI <20>䂿<EFBFBD>**: <20>𨀣覔<F0A880A3>桃洵 12 <20>典𪂹<E585B8>亥扇敶𤏪<E695B6>皛𧼮<E79A9B>銝餉<E98A9D><E9A489>笔<EFBFBD>銝算<E98A9D>䀹瓲蝤<E793B2><E89DA4><EFBFBD>航挽憭<E68CBD><E686AD><EFBFBD>𨅯紡<F0A885AF>渡<EFBFBD><E6B8A1>匧仃韐?3 靘𦥑<E99D98>踺<EFBFBD><E8B8BA><EFBFBD>?
|
||
### **<2A>箸艶銝㚁<E98A9D><E39A81>桃<EFBFBD>摰墧㺭<E5A2A7>?(摰墧𧒄蝐?**
|
||
|
||
* **PI**: <20>𨅯葬<F0A885AF>𤑳<EFBFBD><F0A491B3>?P003 <20>㗇瓷<E39787>劐<EFBFBD><E58A90>臬<EFBFBD>摨䈑<E691A8><E48891>?
|
||
* **AI <20>肽<EFBFBD>?*: <20>喲睸霂𨧀<E99C82>憕003<30>腈<EFBFBD><E88588><EFBFBD>靝<EFBFBD><E99D9D>臬<EFBFBD>摨婙<E691A8>?\-\> 撅硺<E69285><E7A1BA>孵<EFBFBD><E5ADB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嗥𠶖<E597A5>?\-\> 靚<>鍂 query\_clinical\_data(intent="patient\_detail", patient\_id="P003")<29>?
|
||
* **<2A>扯<EFBFBD>**: Node.js 靚<>鍂 REDCap API 撖澆枂 P003 <20>?AE 銵典<E98AB5><E585B8>?
|
||
* **AI <20>䂿<EFBFBD>**: <20>𨀣䰻霂?REDCap 摰墧𧒄<E5A2A7>唳旿嚗䥪003 <20>桀<EFBFBD>**<2A>?*銝滩<E98A9D><E6BBA9>滚<EFBFBD>霈啣<E99C88><E595A3><EFBFBD><EFBFBD>?
|
||
## **5\. 摰墧鴌<E5A2A7>餌<EFBFBD>**
|
||
|
||
<EFBFBD>朞<EFBFBD>餈坔<EFBFBD> **ReAct \+ <20>券<EFBFBD><E588B8><EFBFBD>氖** <20><>䲮獢<E4B2AE><E78DA2><EFBFBD>睲賑摰𣬚<E691B0>閬<EFBFBD><E996AC>鈭<EFBFBD><E988AD><EFBFBD><EFBFBD><EFBFBD>憭折<E686AD>瘙<EFBFBD><E79899>
|
||
|
||
1. **<EFBFBD>寞<EFBFBD>/隡衣<E99AA1>** \-\> Dify Protocol 摨瓐<E691A8>?
|
||
2. **<EFBFBD>冽𥁒/餈𥕦漲** \-\> Dify Report 摨?(蝟餌<E89D9F><E9A48C>芸𢆡敶埝﹝)<29>?
|
||
3. **<EFBFBD>笔<EFBFBD><EFBFBD>唳旿** \-\> REDCap API 摰墧𧒄撌亙<E6928C><E4BA99>?
|
||
## **6\. <20>鞉郊<E99E89><E9838A>郊撉文<E69289><E69687>穃遣霈?(Phased Development Recommendations)**
|
||
|
||
銝箔<EFBFBD><EFBFBD>滢<EFBFBD>撘<EFBFBD><EFBFBD>煾<EFBFBD><EFBFBD>抬<EFBFBD>撱箄悅撠<EFBFBD>迨 ReAct <20>嗆<EFBFBD><E59786><EFBFBD>圾銝箔<E98A9D>銝芬<E98A9D>𣈯<EFBFBD>蝔讠<E89D94> (Milestones)<29>嘅<EFBFBD><E59885>鞉郊<E99E89>嫣漁 AI <20><><EFBFBD><EFBFBD>䜘<EFBFBD>?
|
||
### **<2A>嗆挾銝<E68CBE>嚗𡁏㺭<F0A1818F>桃凒餈?(MVP \- Day 3-4)**
|
||
|
||
**<EFBFBD>格<EFBFBD>**嚗?*<2A><>悟 AI <20>交<EFBFBD><E4BAA4>𦦵尐<F0A6A6B5>𥕞<EFBFBD>?*<2A><>I <20>桀<EFBFBD><E6A180>嗆㺭<E59786>殷<EFBFBD>AI 敹<>◆<EFBFBD>賜<EFBFBD>銝𦠜䔉<F0A6A09C>?
|
||
* **撘<><E69298>穃<EFBFBD>摰?*嚗?
|
||
* 隞<><E99A9E><EFBFBD>?query\_clinical\_data 撌亙<E6928C><E4BA99>?
|
||
* 銝齿𦻖<E9BDBF>?Dify嚗䔶遙雿訫<E99BBF>鈭擧<E988AD>獢<EFBFBD><E78DA2><EFBFBD>桅<EFBFBD><E6A185>賢<EFBFBD>憭𨧀<E686AD>𦦵䰻霂<E4B0BB><E99C82>甇<EFBFBD>銁<EFBFBD><E98A81>遣銝凌<E98A9D>腈<EFBFBD>?
|
||
* **System Prompt**嚗𡁶<E59A97><F0A181B6>碶蛹<E7A2B6>靝<EFBFBD><E99D9D>臭<EFBFBD>銝芸蘨<E88AB8>賣䰻<E8B3A3>唳旿<E594B3><E697BF>𨭌<EFBFBD>𦥑<EFBFBD>腈<EFBFBD>?
|
||
* **隞瑕<E99A9E>?*嚗䥪I <20>臭誑<E887AD>典凝靽⊿<E99DBD><E28ABF>亙<EFBFBD>蝏<EFBFBD>犖<EFBFBD>唬<EFBFBD>嚗諹圾<E8ABB9>喃<EFBFBD><E59683><EFBFBD>擃㗛<E69383><E3979B>𤤿<EFBFBD><F0A4A4BF>?
|
||
### **<2A>嗆挾鈭䕘<E988AD><E49598>亥<EFBFBD><E4BAA5>亙<EFBFBD> (Phase 1.5 \- Day 7\)**
|
||
|
||
**<EFBFBD>格<EFBFBD>**嚗?*蝏?AI 鋆<><E98B86><EFBFBD>𨅯之<F0A885AF>爗<EFBFBD>?*<2A><>𦻖<EFBFBD>?Dify嚗<79><E59A97>蝑娍䲮獢<E4B2AE>䔮憸塩<E686B8>?
|
||
* **撘<><E69298>穃<EFBFBD>摰?*嚗?
|
||
* 撖寞𦻖 Dify API嚗<49><E59A97><EFBFBD>?search\_knowledge\_base 撌亙<E6928C><E4BA99>?
|
||
* <20>见𢆡銝𠹺<E98A9D> 1 隞?PDF <20>寞<EFBFBD>餈𥡝<E9A488>瘚贝<E7989A><E8B49D>?
|
||
* <20>?Node.js 銝剖<E98A9D><E58996>舐<EFBFBD><E88890>閧<EFBFBD> **Router (<28>閙郊頝舐眏)**嚗𡁻䔮<F0A181BB>唳旿韏啣極<E595A3>瘀<EFBFBD><E79880>格<EFBFBD>獢<EFBFBD>粥 Dify<66>?
|
||
* **隞瑕<E99A9E>?*嚗䥪I <20>臭誑撘<E8AA91>憪钅䔮<E99285>𨅯<EFBFBD><F0A885AF>埝<EFBFBD><E59F9D><EFBFBD><EFBFBD>苷<EFBFBD><E88BB7>?
|
||
### **<2A>嗆挾銝㚁<E98A9D>瘛瑕<E7989B><E79195>函<EFBFBD> (Phase 2 \- Day 14+)**
|
||
|
||
**<EFBFBD>格<EFBFBD>**嚗?*<2A>㯄<EFBFBD>尠<EFBFBD>靝遙<E99D9D><E98199><EFBFBD><EFBFBD>争<EFBFBD>?*<2A><><EFBFBD><EFBFBD>?ReAct 敺芰㴓嚗<E3B493><E59A97><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>餉<EFBFBD><E9A489>?
|
||
* **撘<><E69298>穃<EFBFBD>摰?*嚗?
|
||
* 摰䂿緵 while 敺芰㴓<E88AB0>函<EFBFBD>撘閙<E69298><E99699>?
|
||
* 摰<><E691B0> System Prompt嚗峕<E59A97> AI 憒<><E68692><EFBFBD><EFBFBD>圾<EFBFBD>桅<EFBFBD><E6A185>?
|
||
* 摰䂿緵<E482BF>𨅯𪂹<F0A885AF>亥䌊<E4BAA5>典<EFBFBD>獢<EFBFBD><E78DA2>嘥<EFBFBD> Dify <20><><EFBFBD>蝔卝<E89D94>?
|
||
* **隞瑕<E99A9E>?*嚗䥪I <20>臭誑<E887AD>栽<EFBFBD>𨅯<EFBFBD>銝劐蛹隞<E89BB9>銋<EFBFBD><E98A8B>閫<EFBFBD><E996AB>肽<EFBFBD>蝘漤<E89D98>閬<EFBFBD><E996AC><EFBFBD><EFBFBD>㺭<EFBFBD>桀<EFBFBD><E6A180>寞<EFBFBD><E5AF9E><EFBFBD><EFBFBD>蝥折䔮憸塩<E686B8>?
|
||
**撱箄悅蝑𣇉裦**嚗?*銝亙<E98A9D> MVP 颲寧<E9A2B2>**<2A><>銁 Day 4 瞍𠉛內<F0A0899B>塚<EFBFBD><E5A19A>芸<EFBFBD>蝷算<E89DB7>𣈯𧫴畾萎<E795BE><E8908E>萘<EFBFBD><E89098>唳旿<E594B3>亥砭<E4BAA5>賢<EFBFBD><E8B3A2>喳虾嚗諹<E59A97>撌脩<E6928C>頞喳<E9A09E><E596B3><EFBFBD>𠗠<EFBFBD><F0A097A0><EFBFBD>閬<EFBFBD><E996AC><EFBFBD>曆<EFBFBD>撘<EFBFBD>憪见停靚<E5819C><E99D9A>憭齿<E686AD><E9BDBF>?ReAct 敺芰㴓<E88AB0>?
|
||
**<EFBFBD><EFBFBD>﹝<EFBFBD><EFBFBD>𧋦**嚗间3.1 (<28><>郊<EFBFBD>賢𧑐<E8B3A2>? | **<EFBFBD><EFBFBD>鍂<EFBFBD>嗆挾**嚗䥪hase 2 |