Files
AIclinicalresearch/docs/03-业务模块/DC-数据清洗整理/01-需求分析/PRD:智能数据清洗工作台 (The Data Cleaning Portal).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

81 lines
4.4 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# **PRD:智能数æ<C2B0>®æ¸…洗工作å<C593>° (The Data Cleaning Portal)**
| 文档版本 | V1.0 (基于原型 V2) |
| :---- | :---- |
| **产å“<C3A5>å½¢æ€?* | Web 端综å<C2BC>ˆä»ªè¡¨ç˜ (Dashboard) |
| **核心价å€?* | 作为数æ<C2B0>®æ¸…洗模å<C2A1>—的统一入å<C2A5>£ï¼Œæ<C592><C3A6>ä¾å·¥å…·å<C2B7>¯åЍã€<C3A3>弿­¥ä»»åŠ¡çæŽ§ã€<C3A3>æ•°æ<C2B0>®èµ„产管ç<C2A1>†å<E280A0>Šè·¨å·¥å…·æµ<C3A6>转能åŠã€?|
| **目标用户** | 临床医生ã€<C3A3>ç§ç ”助ç<C2A9>?|
## **一ã€?产å“<C3A5>æž¶æž„å?(Product Architecture)**
工作å<EFBFBD>°å¤„于系统的二级导航ä½<EFBFBD>置,å<EFBFBD>ä¸è¿žæŽ¥ä¸‰ä¸ªå…·ä½“工具,横å<EFBFBD>连接任务与数æ<EFBFBD>®ã€?
全局导航 \-\> **工作å<C593>?(本PRD)** \-\> (工具 A, 工具 B, 工具 C)
## **二�核心功能需�(Functional Requirements)**
### **1\. å…¨å±€å¯¼èˆªé†æˆ<C3A6> (Global Navigation)**
* **P0:** 必须无ç¼<C3A7>嵌入现有系统顶部导航æ <C3A6>ã€?
* **ä½<C3A4>ç½®ï¼?* ä½<C3A4>于 知识åº?ä¸?智能数æ<C2B0>®åˆ†æž<C3A6> 之间ã€?
* **状æ€<C3A6>:** ç¹å‡»å<C2BB>Žé«˜äº®æ˜¾ç¤ºâ€œæ™ºèƒ½æ•°æ<C2B0>®æ¸…æ´—â€<C3A2>ã€?
### **2\. 工具å<C2B7>¯åЍåŒ?(The Launcher)**
* **P0:** **三å<E280B0>¡ç‰‡å…¥å<C2A5>£ï¼š** é†ç®å±•示三个核心工具的入å<C2A5>£å<C2A3>¡ç‰‡ã€?
* **工具 A (超级å<C2A7>ˆå¹¶å™?:** 强调“多æº<C3A6>æ•°æ<C2B0>®å<C2AE>ˆå¹¶ã€<C3A3>ID对é½<C3A9>â€<C3A2>ã€?
* **工具 B (病历结构化机器人):** 强调“AI æ<><C3A6>å<EFBFBD>ã€<C3A3>é<EFBFBD>žç»“æž„åŒè½¬ç»“æž„åŒâ€<C3A2>ã€?
* **工具 C (ç§ç ”æ•°æ<C2B0>®ç¼è¾å™?:** 强调“在线清洗ã€<C3A3>缺失值处ç<E2809E>†â€<C3A2>ã€?
* **交互ï¼?* ç¹å‡»å<C2BB>¡ç‰‡ï¼Œä»¥**å…¨å±<C3A5>模æ€<C3A6>框**æˆ?*æ°é¡µé<C2B5>?*å½¢å¼<C3A5>打开对应工具ã€?
### **3\. 任务æµ<C3A6>转中心 (Task Flow Hub) —â€?核心交互**
* **P0:** **最近任务列表:** 展示用户最è¿å<E28098>èµ·çš„ 10 æ<>¡ä»»åŠ¡ã€?
* **字段定义ï¼?* 任务å<C2A1><C3A5>ç§° | 所属工å…?A/B/C) | 状æ€?处ç<E2809E>†ä¸?完æˆ<C3A6>/失败) | è¿åº¦æ<C2A6>?| æ“<C3A6>作ã€?
* **P0:** **状æ€<C3A6>å®žæ—¶æ´æ°ï¼š**
* **处ç<E2809E>†ä¸­ï¼š** 显示动æ€<C3A6>è¿åº¦æ<C2A6>¡ï¼ˆå¦ 45%)ã€?
* **失败ï¼?* 显示红色警åŠï¼Œæ”¯æŒ<C3A6>查çœé”™è¯¯æ—¥å¿—ã€?
* **P0:** **智能æµ<C3A6>转æ“<C3A6>作 (Smart Action)ï¼?*
* 基于任务类åžï¼ŒåЍæ€<C3A6>推è<C2A8><C3A8>ä¸ä¸€æ­¥æ“<C3A6>作:
* **工具 A 完æˆ<C3A6>å<EFBFBD>Žï¼š** 显示按钮 \[下载\] å’?\[åŽ?AI æ<><C3A6>å<EFBFBD>\] (跳转工具 B)ã€?
* **工具 B 完æˆ<C3A6>å<EFBFBD>Žï¼š** 显示按钮 \[下载\] å’?\[去清洗\] (跳转工具 C)ã€?
* **工具 C 完æˆ<C3A6>å<EFBFBD>Žï¼š** 显示按钮 \[下载\]ã€?
### **4\. æ•°æ<C2B0>®èµ„产åº?(Data Asset Library) —â€?V2 核心å<C692>‡çº§**
* **P0:** **Tab 分æ <C3A6>视å¾ï¼?*
* **\[全部\]**
* **\[处ç<E2809E>†ç»“æžœ\] (Outputs):** 存放工具 A/B/C 生æˆ<C3A6>的最终æ‡ä»¶ã€å¾æ ‡ä½¿ç”¨ç»¿è‰?è“<C3A8>色区分ã€?
* **\[原始上传\] (Inputs):** å­˜æ”¾ç”¨æˆ·ç´æŽ¥ä¸Šä¼ çš„åº•è¡¨ã€å¾æ ‡ä½¿ç”¨ç<C2A8>°è‰²åŒºåˆ†ã€?
* **P0:** **资产å<C2A7>¡ç‰‡ä¿¡æ<C2A1>¯ï¼?*
* æ‡ä»¶å<C2B6><C3A5>ã€<C3A3>标签(å¦â€œå·²æ¸…æ´—â€<C3A2>ã€<C3A3>“已脱æ•<C3A6>â€<C3A2>)ã€<C3A3>行数ã€<C3A3>修改时间ã€?
* **P0:** **å¿«æ<C2AB>·æ“<C3A6>作 (Hover Actions):**
* é¼ æ ‡æ¬å<C2AC>œåœ¨å<C2A8>¡ç‰‡ä¸Šæ—¶ï¼Œæ˜¾ç¤ºæ“<C3A6>作按é®ï¼?
* \[下载\]: 下载到本地�
* \[去处ç<E2809E>†\]: 如果是原始文件,点击跳转到工具选择页(或默认工å…?A)ã€?
* \[分æž<C3A6>\]: 妿žœæ˜¯å¤„ç<E2809E>†ç»“果,ç¹å‡»è·³è½¬åˆ°â€œæ™ºèƒ½æ•°æ<C2B0>®åˆ†æž<C3A6>â€<C3A2>模å<C2A1>—(未æ<C2AA>¥è§„åˆï¼‰ã€?
* **P0:** **åŽŸå§æ‡ä»¶ä¸Šä¼ å…¥å<C2A5>£ï¼?*
* 底部固定按钮 \[+ 上传原始文件到库\],å…<C3A5>许用户将本地 Excel 存入云端备用ã€?
## **三ã€?界é<C592>¢åŽŸåžå<E280B9>è€?(UI Reference)**
请严格å<EFBFBD>è€?智能数æ<C2B0>®æ¸…洗工作å<C593>°\_åŽŸåžæ¼”示\_V2.htmlã€?
* **布局ï¼?* 顶部ä¸?Launcherï¼Œä¸æ¹åˆ†ä¸ºå·¦å<C2A6>³ä¸¤æ <C3A6>(å·?2/3 为任务,å<C592>?1/3 为资产)ã€?
* **视觉风格�*
* 工具 A:è“<C3A8>色系 (Blue)
* 工具 B:紫色系 (Purple)
* 工具 C:翠绿色�(Emerald)
* 状æ€<C3A6>色:处ç<E2809E>†ä¸­(è“?ã€<C3A3>æˆ<C3A6>åŠ?ç»?ã€<C3A3>失è´?çº?ã€<C3A3>è­¦å?æ©?ã€?
## **å››ã€?æ•°æ<C2B0>®äº¤äºé€»è¾ (Data Logic)**
1. **任务轮询 (Polling):**
* 工作å<C593>°åŠ è½½æ—¶ï¼Œè°ƒç”?GET /api/tasks/recentã€?
* è¥åˆ—表中有状æ€<C3A6>为 processing 的任务,æ¯<C3A6>éš” 5 ç§è½®è¯¢ä¸€æ¬¡çжæ€<C3A6>æ´æ°ï¼Œç´åˆ°å®Œæˆ<C3A6>ã€?
2. **跨工具æµ<C3A6>è½?(Handoff):**
* 当用户点å‡?\[åŽ?AI æ<><C3A6>å<EFBFBD>\] 时:
* å‰<C3A5>端获å<C2B7>该任务的 resultFileIdã€?
* 跳转路由�/tools/b?sourceFileId={resultFileId}�
* 工具 B åˆ<C3A5>å§åŒæ—¶ï¼Œè‡ªåŠ¨åŠ è½½è¯¥æ‡ä»¶ï¼Œæ— éœ€ç”¨æˆ·é‡<C3A9>æ°ä¸Šä¼ ã€?
3. **资产管ç<C2A1>†:**
* 工具 A/B/C 产生的最终结果,需自动注册�DataAsset 表中,并标记 type='output'�
* 用户手动上传的文件,注册�type='input'�
## **五�埋点与统计需�*
* **UV/PV:** 工作å<C593>°è®¿é—®é‡<C3A9>ã€?
* **CTR:** 三个工具å<C2B7>¡ç‰‡çš„ç¹å‡»çŽ‡ï¼ˆåˆ¤æ­å“ªä¸ªå·¥å…·æœ€å¸¸ç”¨ï¼‰ã€?
* **æµ<C3A6>转çŽ?** 用户点击“去 AI æ<><C3A6>å<EFBFBD>â€<C3A2>ç­‰æµ<C3A6>转按é®çš„æ¯”ä¾ï¼ˆåˆ¤æ­å·¥ä½œæµ<C3A6>是å<C2AF>¦é¡ºç•…)ã€