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%)
4.1 KiB
4.1 KiB
AI<EFBFBD>箄<EFBFBD><EFBFBD><EFBFBD>讃璅∪<EFBFBD> - <20>滨垢蝏<E59EA2>辣霈曇恣
*<EFBFBD><EFBFBD>﹝<EFBFBD><EFBFBD>𧋦嚗? v1.0
*<EFBFBD>𥕦遣<EFBFBD>交<EFBFBD>嚗? 2025-10-29
蝏湔擪<EFBFBD><EFBFBD><EFBFBD> AI<41>箄<EFBFBD><E7AE84><EFBFBD>讃撘<E8AE83><E69298>穃𣪧<E7A983>? <EFBFBD><EFBFBD><EFBFBD>擧凒<EFBFBD>堆<EFBFBD> 2025-10-29
<EFBFBD><EFBFBD> <20><>﹝霂湔<E99C82>
<EFBFBD>祆<EFBFBD>獢<EFBFBD><EFBFBD>餈蚊I<EFBFBD>箄<EFBFBD><EFBFBD><EFBFBD>讃璅∪<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝡舐<EFBFBD>隞嗉挽霈∴<EFBFBD><EFBFBD><EFBFBD>𡠺蝏<EFBFBD>辣蝏𤘪<EFBFBD><EFBFBD><EFBFBD><EFBFBD>隞嗆𦻖<EFBFBD><EFBFBD><EFBFBD><EFBFBD>漱鈭坿挽霈∠<EFBFBD><EFBFBD>?
<EFBFBD>妝 蝏<>辣<EFBFBD>嗆<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>䁅<EFBFBD><EFBFBD>萘<EFBFBD>璅∪<EFBFBD>蝏<EFBFBD>辣蝏𤘪<EFBFBD>
LiteratureScreeningModule/
<0A>鎿<EFBFBD><E98EBF><EFBFBD> TitleAbstractScreening/
<0A>? <20>鎿<EFBFBD><E98EBF><EFBFBD> SetupView/ # 霈曄蔭銝𤾸鍳<F0A4BEB8>刻<EFBFBD><E588BB>?
<0A>? <20>? <20>鎿<EFBFBD><E98EBF><EFBFBD> CriteriaReference.tsx # <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𢒰<EFBFBD>?
<0A>? <20>? <20>鎿<EFBFBD><E98EBF><EFBFBD> CriteriaAdjustment.tsx # 銝湔𧒄靚<F0A79284>㟲<EFBFBD><E39FB2><EFBFBD>
<0A>? <20>? <20>鎿<EFBFBD><E98EBF><EFBFBD> LiteratureImport.tsx # <20><>讃撖澆<E69296>蝏<EFBFBD>辣
<0A>? <20>? <20>婙<EFBFBD><E5A999><EFBFBD> StartScreeningButton.tsx # <20>臬𢆡蝑偦<E89D91>㗇<EFBFBD><E39787>?
<0A>? <20>?
<0A>? <20>鎿<EFBFBD><E98EBF><EFBFBD> ReviewTableView/ # 銵冽聢<E586BD>硋恣<E7A18B>詨極雿𨅯蝱 潃鞉瓲敹?
<0A>? <20>? <20>鎿<EFBFBD><E98EBF><EFBFBD> ScreeningTable.tsx # 銝餉”<E9A489>潛<EFBFBD>隞?
<0A>? <20>? <20>鎿<EFBFBD><E98EBF><EFBFBD> TableHeader.tsx # 銵典仍嚗<E4BB8D><E59A97>銵𣬚<E98AB5><F0A3AC9A><EFBFBD><EFBFBD>
<0A>? <20>? <20>鎿<EFBFBD><E98EBF><EFBFBD> TableRow.tsx # 銵冽聢銵?
<0A>? <20>? <20>鎿<EFBFBD><E98EBF><EFBFBD> ExpandableRow.tsx # <20>臬<EFBFBD>撘<EFBFBD>銵䕘<E98AB5>霂<EFBFBD>旿撅閧內嚗?
<0A>? <20>? <20>鎿<EFBFBD><E98EBF><EFBFBD> JudgmentCell.tsx # <20>斗鱏<E69697>訫<EFBFBD><E8A8AB>潘<EFBFBD><E6BD98>?<3F>??嚗?
<0A>? <20>? <20>鎿<EFBFBD><E98EBF><EFBFBD> ConflictIndicator.tsx # <20>脩<EFBFBD><E884A9>嗆<EFBFBD><E59786><EFBFBD>蝷箏膥
<0A>? <20>? <20>婙<EFBFBD><E5A999><EFBFBD> DecisionSelector.tsx # <20><>蝏<EFBFBD><E89D8F>蝑㚚<E89D91>㗇𥋘<E39787>?
<0A>? <20>?
<0A>? <20>鎿<EFBFBD><E98EBF><EFBFBD> EvidenceModal/ # <20>諹<EFBFBD><E8ABB9>曉<EFBFBD><E69B89><EFBFBD>恣<EFBFBD>交芋<E4BAA4><E88A8B><EFBFBD>
<0A>? <20>? <20>鎿<EFBFBD><E98EBF><EFBFBD> ModalContainer.tsx # 璅⊥<E79285><E28AA5><EFBFBD>摰孵膥
<0A>? <20>? <20>鎿<EFBFBD><E98EBF><EFBFBD> AbstractView.tsx # 撌虫儒嚗𡁏<E59A97>閬<EFBFBD><E996AC><EFBFBD>?
<0A>? <20>? <20>鎿<EFBFBD><E98EBF><EFBFBD> EvidenceView.tsx # <20>喃儒嚗朞<E59A97><E69C9E>株<EFBFBD><E6A0AA>?
<0A>? <20>? <20>婙<EFBFBD><E5A999><EFBFBD> HighlightedText.tsx # 擃䀝漁<E4809D><E6BC81>𧋦蝏<F0A78BA6>辣
<0A>? <20>?
<0A>? <20>鎿<EFBFBD><E98EBF><EFBFBD> ResultView/ # 蝏𤘪<E89D8F>撅閧內閫<E585A7>㦛
<0A>? <20>? <20>鎿<EFBFBD><E98EBF><EFBFBD> StatisticsCards.tsx # 蝏蠘恣<E8A098>∠<EFBFBD>
<0A>? <20>? <20>鎿<EFBFBD><E98EBF><EFBFBD> PrismaSummary.tsx # PRISMA撘𤩺<E69298><F0A4A9BA>斗<EFBFBD>餌<EFBFBD>
<0A>? <20>? <20>鎿<EFBFBD><E98EBF><EFBFBD> ResultTabs.tsx # 蝏𤘪<E89D8F>Tab憿?
<0A>? <20>? <20>婙<EFBFBD><E5A999><EFBFBD> ResultTable.tsx # 蝏𤘪<E89D8F>銵冽聢
<0A>? <20>?
<0A>? <20>婙<EFBFBD><E5A999><EFBFBD> shared/ # <20>曹澈蝏<E6BE88>辣
<0A>? <20>鎿<EFBFBD><E98EBF><EFBFBD> ProtocolOverview.tsx # <20>𠉛弦<F0A0899B>寞<EFBFBD>璁<EFBFBD><E79281><EFBFBD>X踎
<0A>? <20>鎿<EFBFBD><E98EBF><EFBFBD> BatchOperation.tsx # <20>寥<EFBFBD><E5AFA5>滢<EFBFBD>蝏<EFBFBD>辣
<0A>? <20>婙<EFBFBD><E5A999><EFBFBD> ExportButton.tsx # 撖澆枂<E6BE86>厰僼
<EFBFBD>綫 <20>詨<EFBFBD>蝏<EFBFBD>辣霈曇恣
1. ScreeningTable (銵冽聢<E586BD>硋恣<E7A18B>詨極雿𨅯蝱)
蝏<EFBFBD>辣<EFBFBD>諹提:
- 撅閧內<EFBFBD><EFBFBD>讃<EFBFBD>𡑒”<EFBFBD>𣬚<EFBFBD><EFBFBD>厩<EFBFBD><EFBFBD>?
- <EFBFBD>舀<EFBFBD>撅訫<EFBFBD>/<2F>嗉絲<E59789>亦<EFBFBD>霂<EFBFBD>旿
- <EFBFBD>舀<EFBFBD><EFBFBD>孵稬<EFBFBD>斗鱏<EFBFBD>亦<EFBFBD>霂行<EFBFBD>
- <EFBFBD>舀<EFBFBD><EFBFBD>寥<EFBFBD><EFBFBD>滢<EFBFBD>
Props<EFBFBD>亙藁:
interface ScreeningTableProps {
projectId: string;
items: LiteratureItem[];
results: ScreeningResult[];
onDecisionChange: (itemId: string, decision: string) => void;
onBatchUpdate: (itemIds: string[], decision: string) => void;
}
2. EvidenceModal (<28>諹<EFBFBD><E8ABB9>曉<EFBFBD><E69B89><EFBFBD>恣<EFBFBD>交芋<E4BAA4><E88A8B><EFBFBD>)
蝏<EFBFBD>辣<EFBFBD>諹提:
- 撌虫儒<EFBFBD>曄內<EFBFBD>䁅<EFBFBD>/<2F>冽<EFBFBD>
- <EFBFBD>喃儒<EFBFBD>曄內AI<EFBFBD>斗鱏<EFBFBD>諹<EFBFBD><EFBFBD>?
- <EFBFBD>舀<EFBFBD><EFBFBD><EFBFBD>𧋦擃䀝漁
- <EFBFBD>舀<EFBFBD><EFBFBD>亦<EFBFBD>撘閧鍂<EFBFBD>交<EFBFBD>
Props<EFBFBD>亙藁:
interface EvidenceModalProps {
visible: boolean;
itemId: string;
dimension: 'P' | 'I' | 'C' | 'S';
onClose: () => void;
}
3. ReviewTableView (摰⊥瓲撌乩<E6928C><E4B9A9>唬蜓閫<E89C93>㦛)
蝏<EFBFBD>辣<EFBFBD>諹提:
- <EFBFBD>游<EFBFBD>銵冽聢<EFBFBD>峕芋<EFBFBD><EFBFBD><EFBFBD>
- 蝞∠<EFBFBD>蝑偦<EFBFBD>厩𠶖<EFBFBD>?
- 憭<EFBFBD><EFBFBD><EFBFBD>冽<EFBFBD>鈭支<EFBFBD>
<EFBFBD><EFBFBD> <20>嗆<EFBFBD><E59786>恣<EFBFBD>?
雿輻鍂Zustand蝞∠<EFBFBD>蝑偦<EFBFBD>厩𠶖<EFBFBD>?
interface ScreeningStore {
currentProject: Project | null;
items: LiteratureItem[];
results: ScreeningResult[];
selectedItems: string[];
loading: boolean;
// Actions
loadProject: (projectId: string) => Promise<void>;
updateDecision: (itemId: string, decision: string) => Promise<void>;
batchUpdate: (itemIds: string[], decision: string) => Promise<void>;
}
<EFBFBD>𢲡 <20>滚<EFBFBD>撘讛挽霈?
銵冽聢撣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
- **獢屸𢒰蝡?*: 摰峕㟲銵冽聢<E586BD>曄內
- **撟單踎蝡?*: <20>舀赤<E88880>烐<EFBFBD><E78390>剁<EFBFBD><E58981>喲睸<E596B2>堒𤐄摰?
- **蝘餃𢆡蝡?*: <20>∠<EFBFBD>撘誩<E69298>撅<EFBFBD><E69285>蹂誨銵冽聢
<EFBFBD>?敺<><E695BA><EFBFBD><EFBFBD><EFBFBD>摰?
<EFBFBD>𡒊賒撠<EFBFBD>‘<EFBFBD><EFBFBD><EFBFBD>
- 霂衣<EFBFBD>蝏<EFBFBD>辣<EFBFBD>亙藁摰帋<EFBFBD>
- 蝏<EFBFBD>辣鈭支<EFBFBD>瘚<EFBFBD><EFBFBD><EFBFBD>?
- <EFBFBD>瑕<EFBFBD>霈曇恣閫<EFBFBD><EFBFBD>
- 蝏<EFBFBD>辣雿輻鍂蝷箔<EFBFBD>
*<EFBFBD><EFBFBD>﹝<EFBFBD><EFBFBD>𧋦嚗? v1.0
<EFBFBD><EFBFBD><EFBFBD>擧凒<EFBFBD>堆<EFBFBD> 2025-10-29