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