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%)
This commit is contained in:
@@ -4,16 +4,15 @@
|
||||
| :---- | :---- |
|
||||
| **撖孵<E69296> PRD** | **PRD\_<>颱<EFBFBD>\_<>餌<EFBFBD>蝘𤑳<E89D98><F0A491B3>箄<EFBFBD><E7AE84>唳旿皜<E697BF><E79A9C>撟喳蝱.md** |
|
||||
| **<EFBFBD><EFBFBD>𧋦** | **V1.0** |
|
||||
| **状态** | Final Draft |
|
||||
| **核心目标** | 确立平台的统一技术标准,梳理通用模块与专用模块的技术边界,指导多团队并行开发。 |
|
||||
| **<EFBFBD>嗆<EFBFBD>?* | Final Draft |
|
||||
| **<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>?|
|
||||
|
||||
## **1\. 总体系统架构图 (System Architecture)**
|
||||
|
||||
平台采用 **“微服务化单体 (Modular Monolith)”** 或 **“BFF \+ Worker”** 架构。前端统一入口,后端按功能拆分服务或模块。
|
||||
## **1\. <EFBFBD>颱<EFBFBD>蝟餌<EFBFBD><EFBFBD>嗆<EFBFBD><EFBFBD>?(System Architecture)**
|
||||
|
||||
撟喳蝱<EFBFBD><EFBFBD>鍂 **<EFBFBD>𨅯凝<EFBFBD>滚𦛚<EFBFBD>硋<EFBFBD>雿?(Modular Monolith)<29>?* <20>?**<2A>輶FF \+ Worker<65>?* <20>嗆<EFBFBD><E59786><EFBFBD><EFBFBD>蝡舐<E89DA1>銝<EFBFBD><E98A9D>亙藁嚗<E89781><E59A97>蝡舀<E89DA1><E88880>蠘<EFBFBD><E8A098><EFBFBD><EFBFBD><EFBFBD>滚𦛚<E6BB9A>𡝗芋<F0A19D97>𨰜<EFBFBD>?
|
||||
graph TD
|
||||
subgraph Client\_Layer \[前端交互层 (Browser)\]
|
||||
Portal\[工作台 (Portal)\]
|
||||
subgraph Client\_Layer \[<EFBFBD>滨垢鈭支<EFBFBD>撅?(Browser)\]
|
||||
Portal\[撌乩<EFBFBD><EFBFBD>?(Portal)\]
|
||||
ToolA\_UI\[撌亙<E6928C>A: 頞<>漣<EFBFBD><E6BCA3>僎<EFBFBD>沔]
|
||||
ToolB\_UI\[撌亙<E6928C>B: 蝏𤘪<E89D8F><F0A498AA>𡝗㦤<F0A19D97>其犖\]
|
||||
ToolC\_UI\[撌亙<E6928C>C: 蝘𤑳<E89D98>蝻𤥁<E89DBB><F0A4A581>沔]
|
||||
@@ -48,93 +47,89 @@ graph TD
|
||||
ToolC\_UI \--Local First--\> IndexedDB\[(Browser DB)\]
|
||||
ToolC\_UI \--敹怎<E695B9><E6808E>峕郊--\> BFF
|
||||
|
||||
## **2\. 通用技术基座 (The Common Foundation)**
|
||||
## **2\. <EFBFBD>𡁶鍂<EFBFBD><EFBFBD><EFBFBD>臬抅摨?(The Common Foundation)**
|
||||
|
||||
这部分技术栈贯穿所有模块,是团队必须统一遵循的标准。
|
||||
|
||||
### **2.1 前端通用栈 (Frontend Core)**
|
||||
餈䠷<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>舀<EFBFBD>韐舐忽<EFBFBD><EFBFBD><EFBFBD>㗇芋<EFBFBD>梹<EFBFBD><EFBFBD>臬𣪧<EFBFBD>笔<EFBFBD>憿餌<EFBFBD>銝<EFBFBD><EFBFBD>萄儐<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
|
||||
### **2.1 <20>滨垢<E6BBA8>𡁶鍂<F0A181B6>?(Frontend Core)**
|
||||
|
||||
| 蝏<>辣 | <20>匧<EFBFBD> | 霂湔<E99C82> |
|
||||
| :---- | :---- | :---- |
|
||||
| **框架** | **React 19** | 利用最新的 Hooks 和并发特性。 |
|
||||
| **构建工具** | **Vite 5.x** | 极速构建,支持 HMR。 |
|
||||
| **语言** | **TypeScript 5.x** | 强制强类型,前后端共享类型定义 (shared-types)。 |
|
||||
| **样式库** | **Tailwind CSS** | 统一 UI 风格,快速开发。 |
|
||||
| **图标库** | **Lucide React** | 风格统一的轻量级 SVG 图标。 |
|
||||
| **路由** | **React Router v6** | 管理 Portal 与各个 Tool 之间的路由嵌套。 |
|
||||
| **数据请求** | **SWR** 或 **TanStack Query** | 处理 API 请求、缓存、以及任务状态的**轮询 (Polling)**。 |
|
||||
| **獢<EFBFBD>沲** | **React 19** | <EFBFBD>拍鍂<EFBFBD><EFBFBD><EFBFBD>啁<EFBFBD> Hooks <20><>僎<EFBFBD>𤑳鸌<F0A491B3>扼<EFBFBD>?|
|
||||
| **<EFBFBD><EFBFBD>遣撌亙<EFBFBD>** | **Vite 5.x** | <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>撱綽<EFBFBD><EFBFBD>舀<EFBFBD> HMR<EFBFBD>?|
|
||||
| **霂剛<EFBFBD>** | **TypeScript 5.x** | 撘箏<EFBFBD>撘箇掩<EFBFBD>页<EFBFBD><EFBFBD>滚<EFBFBD>蝡臬<EFBFBD>鈭怎掩<EFBFBD>见<EFBFBD>銋?(shared-types)<EFBFBD>?|
|
||||
| **<EFBFBD>瑕<EFBFBD>摨?* | **Tailwind CSS** | 蝏煺<EFBFBD> UI 憌擧聢嚗<EFBFBD>翰<EFBFBD>笔<EFBFBD><EFBFBD>㻫<EFBFBD>?|
|
||||
| **<EFBFBD>暹<EFBFBD>摨?* | **Lucide React** | 憌擧聢蝏煺<EFBFBD><EFBFBD><EFBFBD>蝠<EFBFBD>讐漣 SVG <20>暹<EFBFBD><E69AB9>?|
|
||||
| **頝舐眏** | **React Router v6** | 蝞∠<EFBFBD> Portal 銝𤾸<EFBFBD>銝?Tool 銋钅𡢿<E99285><F0A1A2BF>楝<EFBFBD>勗<EFBFBD>憟𨰜<E6869F>?|
|
||||
| **<EFBFBD>唳旿霂瑟<EFBFBD>** | **SWR** <EFBFBD>?**TanStack Query** | 憭<EFBFBD><EFBFBD> API 霂瑟<EFBFBD><EFBFBD><EFBFBD><EFBFBD>摮塩<EFBFBD><EFBFBD>誑<EFBFBD>𠹺遙<EFBFBD>∠𠶖<EFBFBD><EFBFBD><EFBFBD>**頧株砭 (Polling)**<EFBFBD>?|
|
||||
|
||||
### **2.2 后端通用栈 (Backend Core)**
|
||||
### **2.2 <EFBFBD>𡒊垢<EFBFBD>𡁶鍂<EFBFBD>?(Backend Core)**
|
||||
|
||||
| 蝏<>辣 | <20>匧<EFBFBD> | 霂湔<E99C82> |
|
||||
| :---- | :---- | :---- |
|
||||
| **运行时** | **Node.js 22 (LTS)** | 保持最新 LTS 版本。 |
|
||||
| **Web 框架** | **Fastify 5.x** | 高性能,低开销,Schema 校验友好。 |
|
||||
| **ORM** | **Prisma 6** | 类型安全的数据库操作,支持 Schema Migration。 |
|
||||
| **参数校验** | **Zod** | 运行时 Schema 校验,可生成 TypeScript 类型。 |
|
||||
| **日志** | **Winston / Pino** | 结构化 JSON 日志。 |
|
||||
| **餈鞱<EFBFBD><EFBFBD>?* | **Node.js 22 (LTS)** | 靽脲<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?LTS <20><>𧋦<EFBFBD>?|
|
||||
| **Web 獢<EFBFBD>沲** | **Fastify 5.x** | 擃䀹<EFBFBD>扯<EFBFBD>嚗䔶<EFBFBD>撘<EFBFBD><EFBFBD><EFBFBD>嚗玺chema <20>⊿<EFBFBD><E28ABF>见末<E8A781>?|
|
||||
| **ORM** | **Prisma 6** | 蝐餃<EFBFBD>摰匧<EFBFBD><EFBFBD><EFBFBD>㺭<EFBFBD>桀<EFBFBD><EFBFBD>滢<EFBFBD>嚗峕𣈲<EFBFBD>?Schema Migration<EFBFBD>?|
|
||||
| **<EFBFBD><EFBFBD>㺭<EFBFBD>⊿<EFBFBD>** | **Zod** | 餈鞱<EFBFBD><EFBFBD>?Schema <EFBFBD>⊿<EFBFBD>嚗<EFBFBD>虾<EFBFBD><EFBFBD><EFBFBD> TypeScript 蝐餃<EFBFBD><EFBFBD>?|
|
||||
| **<EFBFBD>亙<EFBFBD>** | **Winston / Pino** | 蝏𤘪<EFBFBD><EFBFBD>?JSON <20>亙<EFBFBD><E4BA99>?|
|
||||
|
||||
### **2.3 基础设施栈 (Infrastructure)**
|
||||
### **2.3 <EFBFBD>箇<EFBFBD>霈暹鴌<EFBFBD>?(Infrastructure)**
|
||||
|
||||
| 蝏<>辣 | <20>匧<EFBFBD> | 霂湔<E99C82> |
|
||||
| :---- | :---- | :---- |
|
||||
| **数据库** | **PostgreSQL 15** | 存储用户、任务、资产元数据、结构化结果 (JSONB)。 |
|
||||
| **缓存/队列** | **Redis 7** | 这里的 Redis 既做缓存,也是 **BullMQ** 的后端。 |
|
||||
| **文件存储** | **MinIO / AWS S3** | 存储用户上传的 Excel、PDF 以及生成的中间文件。 |
|
||||
| **<EFBFBD>唳旿摨?* | **PostgreSQL 15** | 摮睃<EFBFBD><EFBFBD>冽<EFBFBD><EFBFBD><EFBFBD>遙<EFBFBD>~<EFBFBD><EFBFBD><EFBFBD>鈭批<EFBFBD><EFBFBD>唳旿<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝏𤘪<EFBFBD> (JSONB)<EFBFBD>?|
|
||||
| **蝻枏<EFBFBD>/<2F>笔<EFBFBD>** | **Redis 7** | 餈䠷<EFBFBD><EFBFBD>?Redis <EFBFBD>W<EFBFBD>蝻枏<EFBFBD>嚗䔶<EFBFBD><EFBFBD>?**BullMQ** <20><><EFBFBD>蝡胯<E89DA1>?|
|
||||
| **<EFBFBD><EFBFBD>辣摮睃<EFBFBD>** | **MinIO / AWS S3** | 摮睃<EFBFBD><EFBFBD>冽<EFBFBD>銝𠹺<EFBFBD><EFBFBD>?Excel<EFBFBD><EFBFBD>DF 隞亙<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>葉<EFBFBD>湔<EFBFBD>隞嗚<EFBFBD>?|
|
||||
|
||||
## **3\. 璅∪<E79285>銝梶鍂<E6A2B6><E98D82><EFBFBD>舀<EFBFBD> (Module-Specific Stack)**
|
||||
|
||||
针对不同场景的特殊需求,各工具引入了特定的技术组件。
|
||||
<EFBFBD><EFBFBD>笆銝滚<EFBFBD><EFBFBD>箸艶<EFBFBD><EFBFBD>鸌畾𢠃<EFBFBD>瘙<EFBFBD><EFBFBD><EFBFBD><EFBFBD>極<EFBFBD>瑕<EFBFBD><EFBFBD>乩<EFBFBD><EFBFBD>孵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>舐<EFBFBD>隞嗚<EFBFBD>?
|
||||
### **3.1 撌亙<E6928C> A嚗朞<E59A97>蝥批<E89DA5>撟嗅膥 (IO 撖<><E69296><EFBFBD>?**
|
||||
|
||||
### **3.1 工具 A:超级合并器 (IO 密集型)**
|
||||
|
||||
*核心挑战:大文件流式处理、日期解析、哈希匹配。*
|
||||
*<2A>詨<EFBFBD><E8A9A8>烐<EFBFBD>嚗𡁜之<F0A1819C><E4B98B>辣瘚<E8BEA3><E7989A>憭<EFBFBD><E686AD><EFBFBD><EFBFBD>𠯫<EFBFBD>蠘圾<E8A098>僐<EFBFBD><E58390><EFBFBD>撣<EFBFBD>龪<EFBFBD>溻<EFBFBD>?
|
||||
|
||||
| 憸<><E686B8> | 銝梶鍂蝏<E98D82>辣 | <20>匧<EFBFBD><E58CA7><EFBFBD>眏 |
|
||||
| :---- | :---- | :---- |
|
||||
| **后端 (Excel)** | **ExcelJS** | 相比 SheetJS,它对 **Stream (流)** 的支持更好,能处理超过内存限制的大文件。 |
|
||||
| **后端 (Date)** | **Day.js \+ CustomParseFormat** | 解决 Excel 杂乱的日期格式 (44927, 2023/1/1),轻量且强大。 |
|
||||
| **异步队列** | **BullMQ** | 处理耗时合并任务,支持进度汇报。 |
|
||||
| **前端组件** | **Ant Design Steps / Upload** | 快速实现向导式 UI。 |
|
||||
| **<EFBFBD>𡒊垢 (Excel)** | **ExcelJS** | <EFBFBD>豢<EFBFBD> SheetJS嚗<EFBFBD><EFBFBD>撖?**Stream (瘚?** <20><>𣈲<EFBFBD><F0A388B2>凒憟踝<E6869F><E8B89D>賢<EFBFBD><E8B3A2><EFBFBD><EFBFBD>餈<EFBFBD><E9A488>摮㗛<E691AE><E3979B>嗥<EFBFBD>憭扳<E686AD>隞嗚<E99A9E>?|
|
||||
| **<EFBFBD>𡒊垢 (Date)** | **Day.js \+ CustomParseFormat** | 閫<EFBFBD><EFBFBD> Excel <EFBFBD><EFBFBD>僚<EFBFBD><EFBFBD>𠯫<EFBFBD><EFBFBD>聢撘?(44927, 2023/1/1)嚗諹蝠<EFBFBD>譍<EFBFBD>撘箏之<EFBFBD>?|
|
||||
| **撘<EFBFBD>郊<EFBFBD>笔<EFBFBD>** | **BullMQ** | 憭<EFBFBD><EFBFBD><EFBFBD>埈𧒄<EFBFBD><EFBFBD>僎隞餃𦛚嚗峕𣈲<EFBFBD><EFBFBD><EFBFBD>摨行<EFBFBD><EFBFBD>乓<EFBFBD>?|
|
||||
| **<EFBFBD>滨垢蝏<EFBFBD>辣** | **Ant Design Steps / Upload** | 敹恍<EFBFBD>笔<EFBFBD><EFBFBD>啣<EFBFBD>撖澆<EFBFBD> UI<EFBFBD>?|
|
||||
|
||||
### **3.2 工具 B:病历结构化机器人 (API/计算密集型)**
|
||||
### **3.2 撌亙<EFBFBD> B嚗𡁶<E59A97><F0A181B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>箏膥鈭?(API/霈∠<E99C88>撖<EFBFBD><E69296><EFBFBD>?**
|
||||
|
||||
*核心挑战:LLM 编排、双模型并发、文本比对。*
|
||||
*<2A>詨<EFBFBD><E8A9A8>烐<EFBFBD>嚗匁LM 蝻𡝗<E89DBB><F0A19D97><EFBFBD><EFBFBD>璅∪<E79285>撟嗅<E6929F><E59785><EFBFBD><EFBFBD><EFBFBD>祆<EFBFBD>撖嫘<E69296>?
|
||||
|
||||
| 憸<><E686B8> | 銝梶鍂蝏<E98D82>辣 | <20>匧<EFBFBD><E58CA7><EFBFBD>眏 |
|
||||
| :---- | :---- | :---- |
|
||||
| **后端 (AI)** | **LangChain.js** | 统一 DeepSeek 和 Qwen 的调用接口,管理 Prompt Template。 |
|
||||
| **后端 (Diff)** | **diff-match-patch** (Google) | 计算两个模型输出的文本差异,或者原文的高亮位置。 |
|
||||
| **后端 (比对)** | **Lodash / Dice Coefficient** | 用于 JSON 对象的深层比对和字符串相似度计算。 |
|
||||
| **前端 (Grid)** | **TanStack Table** (Headless) | 因为需要高度定制“冲突单元格”的 UI (左右并排按钮),Headless 库比 AntD Table 更灵活。 |
|
||||
| **<EFBFBD>𡒊垢 (AI)** | **LangChain.js** | 蝏煺<EFBFBD> DeepSeek <EFBFBD>?Qwen <EFBFBD><EFBFBD><EFBFBD><EFBFBD>冽𦻖<EFBFBD><EFBFBD><EFBFBD>蝞∠<EFBFBD> Prompt Template<EFBFBD>?|
|
||||
| **<EFBFBD>𡒊垢 (Diff)** | **diff-match-patch** (Google) | 霈∠<EFBFBD>銝支葵璅∪<EFBFBD>颲枏枂<EFBFBD><EFBFBD><EFBFBD><EFBFBD>砍榆撘<EFBFBD><EFBFBD><EFBFBD>𤥁<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>擃䀝漁雿滨蔭<EFBFBD>?|
|
||||
| **<EFBFBD>𡒊垢 (瘥𥪜笆)** | **Lodash / Dice Coefficient** | <EFBFBD>其<EFBFBD> JSON 撖寡情<EFBFBD><EFBFBD>楛撅<EFBFBD><EFBFBD>撖孵<EFBFBD>摮㛖泵銝脩㮾隡澆漲霈∠<EFBFBD><EFBFBD>?|
|
||||
| **<EFBFBD>滨垢 (Grid)** | **TanStack Table** (Headless) | <EFBFBD>牐蛹<EFBFBD><EFBFBD>閬<EFBFBD><EFBFBD>摨血<EFBFBD><EFBFBD>嗯<EFBFBD>𨅯<EFBFBD>蝒<EFBFBD><EFBFBD><EFBFBD><EFBFBD>聢<EFBFBD>萘<EFBFBD> UI (撌血𢰧撟嗆<E6929F><E59786>厰僼)嚗峵eadless 摨𤘪<EFBFBD> AntD Table <EFBFBD>渡<EFBFBD>瘣颯<EFBFBD>?|
|
||||
|
||||
### **3.3 工具 C:科研数据编辑器 (交互密集型)**
|
||||
### **3.3 撌亙<EFBFBD> C嚗𡁶<E59A97><F0A181B6>娍㺭<E5A88D>桃<EFBFBD>颲穃膥 (鈭支<E988AD>撖<EFBFBD><E69296><EFBFBD>?**
|
||||
|
||||
*核心挑战:前端高性能渲染、本地计算、撤销重做。*
|
||||
*<2A>詨<EFBFBD><E8A9A8>烐<EFBFBD>嚗𡁜<E59A97>蝡舫<E89DA1><E888AB>扯<EFBFBD>皜脫<E79A9C><E884AB><EFBFBD>𧋦<EFBFBD>啗恣蝞𨰜<E89D9E><F0A8B09C>伃<EFBFBD><E4BC83><EFBFBD>滚<EFBFBD><E6BB9A>?
|
||||
|
||||
| 憸<><E686B8> | 銝梶鍂蝏<E98D82>辣 | <20>匧<EFBFBD><E58CA7><EFBFBD>眏 |
|
||||
| :---- | :---- | :---- |
|
||||
| **前端 (Grid)** | **AG Grid Community** | **核心组件**。唯一能免费支持虚拟滚动、列拖拽、Excel 级交互的库。 |
|
||||
| **前端 (Storage)** | **Dexie.js (IndexedDB)** | **Local-First 架构核心**。在浏览器端存储 5-10 万行数据,避免频繁网络请求。 |
|
||||
| **前端 (State)** | **Zustand \+ Immer** | 利用 Immer 的 Patches 功能实现 **Undo/Redo (撤销重做)** 栈。 |
|
||||
| **前端 (Calc)** | **Math.js** | 解决 JS 浮点数精度问题,解析用户输入的医学公式 (ln, pow)。 |
|
||||
| **前端 (Chart)** | **Ant Design Charts (G2)** | 在智能侧边栏中绘制直方图和频次图。 |
|
||||
| **<EFBFBD>滨垢 (Grid)** | **AG Grid Community** | **<EFBFBD>詨<EFBFBD>蝏<EFBFBD>辣**<2A><>𣈲銝<F0A388B2><E98A9D>賢<EFBFBD>韐寞𣈲<E5AF9E><F0A388B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>具<EFBFBD><E585B7><EFBFBD><EFBFBD>𡝗嗻<F0A19D97><E597BB>xcel 蝥找漱鈭垍<E988AD>摨瓐<E691A8>?|
|
||||
| **<EFBFBD>滨垢 (Storage)** | **Dexie.js (IndexedDB)** | **Local-First <EFBFBD>嗆<EFBFBD><EFBFBD>詨<EFBFBD>**<EFBFBD><EFBFBD>銁瘚讛<EFBFBD><EFBFBD>函垢摮睃<EFBFBD> 5-10 銝<><E98A9D><EFBFBD>唳旿嚗屸<E59A97><E5B1B8>漤<EFBFBD>蝜<EFBFBD><E89D9C>蝏𡏭窈瘙<E7AA88><E79899>?|
|
||||
| **<EFBFBD>滨垢 (State)** | **Zustand \+ Immer** | <EFBFBD>拍鍂 Immer <EFBFBD>?Patches <EFBFBD>蠘<EFBFBD>摰䂿緵 **Undo/Redo (<EFBFBD>日<EFBFBD><EFBFBD>滚<EFBFBD>)** <EFBFBD><EFBFBD><EFBFBD>?|
|
||||
| **<EFBFBD>滨垢 (Calc)** | **Math.js** | 閫<EFBFBD><EFBFBD> JS 瘚桃<EFBFBD><EFBFBD>啁移摨阡䔮憸矋<EFBFBD>閫<EFBFBD><EFBFBD><EFBFBD>冽<EFBFBD>颲枏<EFBFBD><EFBFBD><EFBFBD>龫摮血<EFBFBD>撘?(ln, pow)<EFBFBD>?|
|
||||
| **<EFBFBD>滨垢 (Chart)** | **Ant Design Charts (G2)** | <EFBFBD>冽惣<EFBFBD>賭儒颲寞<EFBFBD>銝剔<EFBFBD><EFBFBD>嗥凒<EFBFBD>孵㦛<EFBFBD>屸<EFBFBD>甈∪㦛<EFBFBD>?|
|
||||
|
||||
## **4\. <20>唳旿鈭支<E988AD><E694AF><EFBFBD><EFBFBD> (Data Standards)**
|
||||
|
||||
为了打通 A \-\> B \-\> C 的流转,必须定义统一的数据交换格式。
|
||||
|
||||
銝箔<EFBFBD><EFBFBD>㯄<EFBFBD>?A \-\> B \-\> C <EFBFBD><EFBFBD><EFBFBD>頧穿<EFBFBD>敹<EFBFBD>◆摰帋<EFBFBD>蝏煺<EFBFBD><EFBFBD><EFBFBD>㺭<EFBFBD>桐漱<EFBFBD>X聢撘譌<EFBFBD>?
|
||||
### **4.1 <20><><EFBFBD>瘚<EFBFBD>蓮<EFBFBD>澆<EFBFBD>**
|
||||
|
||||
* **文件物理格式:** 统一使用 **CSV (UTF-8 with BOM)** 或 **JSON Lines (.jsonl)**。
|
||||
* *理由:* Stream 处理最快,且不依赖 Excel 复杂的 XML 结构。
|
||||
* **日期标准:** 所有工具产出的日期,必须归一化为 YYYY-MM-DD 字符串。
|
||||
* **空值标准:** 统一为 null (JSON) 或 "" (CSV),严禁使用 "NA", "-"。
|
||||
|
||||
* **<EFBFBD><EFBFBD>辣<EFBFBD>拍<EFBFBD><EFBFBD>澆<EFBFBD>嚗?* 蝏煺<E89D8F>雿輻鍂 **CSV (UTF-8 with BOM)** <EFBFBD>?**JSON Lines (.jsonl)**<2A>?
|
||||
* *<EFBFBD><EFBFBD>眏嚗? Stream 憭<EFBFBD><EFBFBD><EFBFBD><EFBFBD>敹恬<EFBFBD>銝𥪯<EFBFBD>靘肽<EFBFBD> Excel 憭齿<E686AD><E9BDBF>?XML 蝏𤘪<E89D8F><F0A498AA>?
|
||||
* **<EFBFBD>交<EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗?* <20><><EFBFBD>匧極<E58CA7>瑚漣<E7919A>箇<EFBFBD><E7AE87>交<EFBFBD>嚗<EFBFBD><E59A97>憿餃<E686BF>銝<EFBFBD><E98A9D>碶蛹 YYYY-MM-DD 摮㛖泵銝脯<EFBFBD>?
|
||||
* **蝛箏<EFBFBD>潭<EFBFBD><EFBFBD><EFBFBD><EFBFBD>** 蝏煺<E89D8F>銝?null (JSON) <EFBFBD>?"" (CSV)嚗䔶艇蝳<EFBFBD>蝙<EFBFBD>?"NA", "-"<EFBFBD>?
|
||||
### **4.2 API <20>滚<EFBFBD>蝏𤘪<E89D8F> (Standard Response)**
|
||||
|
||||
interface ApiResponse\<T\> {
|
||||
code: number; // 0: 成功, \>0: 错误码
|
||||
code: number; // 0: <EFBFBD>𣂼<EFBFBD>, \>0: <EFBFBD>躰秤<EFBFBD>?
|
||||
data: T; // 銝𡁜𦛚<F0A1819C>唳旿
|
||||
message?: string; // <20>躰秤<E8BAB0>鞟內
|
||||
meta?: { // <20><>△<EFBFBD>硋<EFBFBD><E7A18B>唳旿
|
||||
@@ -145,8 +140,8 @@ interface ApiResponse\<T\> {
|
||||
|
||||
## **5\. 撘<><E69298>𤑳㴓憓<E3B493><E68693><EFBFBD>函蔡 (DevOps)**
|
||||
|
||||
* **包管理:** **pnpm** (推荐,节省磁盘空间,安装快)。
|
||||
* **Monorepo (可选):** 建议使用 Turborepo 或 Nx 管理 frontend, backend-api, worker-merger, worker-ai 等包,共享类型定义。
|
||||
* **<EFBFBD><EFBFBD>恣<EFBFBD><EFBFBD><EFBFBD>** **pnpm** (<EFBFBD>刻<EFBFBD>嚗諹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>条征<EFBFBD>湛<EFBFBD>摰㕑<EFBFBD>敹?<3F>?
|
||||
* **Monorepo (<EFBFBD>舫<EFBFBD>?嚗?* 撱箄悅雿輻鍂 Turborepo <EFBFBD>?Nx 蝞∠<EFBFBD> frontend, backend-api, worker-merger, worker-ai 蝑匧<EFBFBD>嚗<EFBFBD><EFBFBD>鈭怎掩<EFBFBD>见<EFBFBD>銋剹<EFBFBD>?
|
||||
* **摰孵膥<E5ADB5>吔<EFBFBD>**
|
||||
* **API Service:** 无状态,可水平扩展。
|
||||
* **Worker Service:** 单独部署,根据 CPU/内存负载进行扩容(特别是 Worker A 处理大文件时内存消耗大)。
|
||||
* **API Service:** <EFBFBD>删𠶖<EFBFBD><EFBFBD><EFBFBD><EFBFBD>舀偌撟單<EFBFBD>撅𨰻<EFBFBD>?
|
||||
* **Worker Service:** <EFBFBD>閧𡠺<EFBFBD>函蔡嚗峕覔<EFBFBD>?CPU/<2F><><EFBFBD>韐蠘蝸餈𥡝<E9A488><F0A5A19D>拙捆嚗<E68D86>鸌<EFBFBD>急糓 Worker A 憭<><E686AD>憭扳<E686AD>隞嗆𧒄<E59786><F0A79284><EFBFBD>瘨<EFBFBD><E798A8>堒之嚗剹<E59A97>
|
||||
Reference in New Issue
Block a user