feat(asl): Complete Deep Research V2.0 core development
Backend: - Add SSE streaming client (unifuncsSseClient) replacing async polling - Add paragraph-based reasoning parser with mergeConsecutiveThinking - Add requirement expansion service (DeepSeek-V3 PICOS+MeSH) - Add Word export service with Pandoc, inline hyperlinks, reference link expansion - Add deep research V2 worker with 2s log flush and Chinese source prompt - Add 5 curated data sources config (PubMed/ClinicalTrials/Cochrane/CNKI/MedJournals) - Add 4 API endpoints (generate-requirement/tasks/task-status/export-word) - Update Prisma schema with 6 new V2.0 fields on AslResearchTask - Add DB migration for V2.0 fields - Simplify ASL_DEEP_RESEARCH_EXPANSION prompt (remove strategy section) Frontend: - Add waterfall-flow DeepResearchPage (phase 0-4 progressive reveal) - Add LandingView, SetupPanel, StrategyConfirm, AgentTerminal, ResultsView - Add react-markdown + remark-gfm for report rendering - Add custom link component showing visible URLs after references - Add useDeepResearchTask polling hook - Add deep research TypeScript types Tests: - Add E2E test, smoke test, and Chinese data source test scripts Docs: - Update ASL module status (v2.0 - core features complete) - Update system status (v6.1 - ASL V2.0 milestone) - Update Unifuncs DeepSearch API guide (v2.0 - SSE mode + Chinese source results) - Update module auth specification (test script guidelines) - Update V2.0 development plan Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,12 +1,13 @@
|
||||
# AI智能文献模块 - 当前状态与开发指南
|
||||
|
||||
> **文档版本:** v1.6
|
||||
> **文档版本:** v2.0
|
||||
> **创建日期:** 2025-11-21
|
||||
> **维护者:** AI智能文献开发团队
|
||||
> **最后更新:** 2026-02-22 🆕 **Deep Research V2.0 开发计划确认 + Unifuncs API 网站覆盖测试完成**
|
||||
> **最后更新:** 2026-02-23 🆕 **Deep Research V2.0 核心功能开发完成!SSE 实时流 + 瀑布流 UI + 中文数据源 + Word 导出**
|
||||
> **重大进展:**
|
||||
> - 🆕 2026-02-22:V2.0 开发计划确认!四步瀑布流 + 异步模式 + HITL 需求确认 + 务实结果展示
|
||||
> - 🆕 2026-02-22:Unifuncs API 网站覆盖测试完成!18 站点实测,9 个一级可用,ClinicalTrials.gov 专项验证通过
|
||||
> - 🆕 2026-02-23:V2.0 核心功能完成!SSE 流式架构 + 段落化思考日志 + 引用链接可见化
|
||||
> - 🆕 2026-02-22:V2.0 前后端联调完成!瀑布流 UI + Markdown 渲染 + Word 导出 + 中文数据源测试
|
||||
> - 🆕 2026-02-22:V2.0 开发计划确认 + Unifuncs API 网站覆盖测试完成
|
||||
> - 2026-01-18:智能文献检索(DeepSearch)MVP完成 - unifuncs API 集成
|
||||
> **文档目的:** 反映模块真实状态,帮助新开发人员快速上手
|
||||
|
||||
@@ -30,46 +31,96 @@
|
||||
AI智能文献模块是一个基于大语言模型(LLM)的文献筛选系统,用于帮助研究人员根据PICOS标准自动筛选文献。
|
||||
|
||||
### 当前状态
|
||||
- **开发阶段**:🚧 V1.x 完成,V2.0 Deep Research 开发计划已确认,即将启动
|
||||
- **开发阶段**:🎉 V2.0 Deep Research 核心功能开发完成
|
||||
- **已完成功能**:
|
||||
- ✅ 标题摘要初筛(Title & Abstract Screening)- 完整流程
|
||||
- ✅ 全文复筛后端(Day 2-5)- LLM服务 + API + Excel导出
|
||||
- ✅ **智能文献检索(DeepSearch)V1.x MVP** - unifuncs API 集成,SSE 实时流式
|
||||
- ✅ **智能文献检索(DeepSearch)V1.x MVP** - unifuncs API 集成
|
||||
- ✅ **Unifuncs API 网站覆盖测试** - 18 站点实测,9 个一级可用
|
||||
- ✅ **Deep Research V2.0 开发计划** - 完整技术方案、API 契约、5 天分阶段计划
|
||||
- **V2.0 开发中**:
|
||||
- 🚧 Deep Research V2.0 — 四步瀑布流(Landing→配置→HITL→终端→结果)
|
||||
- 🚧 异步模式改造(SSE → Unifuncs create_task/query_task)
|
||||
- 🚧 需求扩写 + HITL 确认 + Agent 终端 + 简洁结果展示 + Word 导出
|
||||
- **模型支持**:DeepSeek-V3(需求扩写) + unifuncs s2(深度搜索) + Qwen-Max(筛选)
|
||||
- ✅ **🎉 Deep Research V2.0 核心功能** — SSE 流式架构 + 瀑布流 UI + HITL + Word 导出
|
||||
- **V2.0 已完成**:
|
||||
- ✅ **SSE 流式架构**:从 create_task/query_task 轮询改为 OpenAI Compatible SSE 流,实时推送 AI 思考过程
|
||||
- ✅ **LLM 需求扩写**:DeepSeek-V3 将粗略输入扩写为结构化检索指令书(PICOS + MeSH)
|
||||
- ✅ **HITL 策略确认**:用户可编辑、保存、确认 AI 生成的检索指令
|
||||
- ✅ **瀑布流 UI**:Landing → 配置 → HITL → Agent 终端 → 结果,已完成步骤折叠为摘要卡片
|
||||
- ✅ **段落化思考日志**:reasoning_content 按段落聚合,连续思考合并为一段(非逐行碎片)
|
||||
- ✅ **Markdown 渲染**:react-markdown + remark-gfm 正确渲染报告中的标题、链接、列表
|
||||
- ✅ **引用链接可见化**:报告中 `[6]` 引用后显示完整 URL,方便复制分享
|
||||
- ✅ **Word 导出**:Pandoc 微服务,文献标题内嵌超链接,引用展开为可见 URL
|
||||
- ✅ **中文数据源支持**:CNKI/中华医学期刊网动态 prompt 增强 + 专项测试验证
|
||||
- ✅ **5 个精选数据源**:PubMed(默认)、ClinicalTrials.gov、Cochrane Library、CNKI、中华医学期刊网
|
||||
- **模型支持**:DeepSeek-V3(需求扩写) + unifuncs s2(深度搜索,SSE 流式) + Qwen-Max(筛选)
|
||||
- **部署状态**:✅ 本地开发环境运行正常
|
||||
|
||||
### 🆕 Deep Research V2.0(2026-02-22 开发计划确认)
|
||||
### 🎉 Deep Research V2.0(2026-02-23 核心功能完成)
|
||||
|
||||
**V2.0 核心升级:**
|
||||
- 四步瀑布流:Landing → 配置 → HITL 策略确认 → Agent 终端 → 结果展示
|
||||
- LLM 需求扩写(DeepSeek-V3):粗略输入 → 结构化自然语言检索指令书
|
||||
- Human-in-the-Loop:用户可编辑修改 AI 生成的检索需求
|
||||
- **异步模式**:SSE → Unifuncs create_task/query_task + pg-boss 队列(离开页面不中断)
|
||||
- Agent 终端:暗色主题 + 分类结构化日志(每 3-5s 弹出一条)
|
||||
- 简洁结果展示:AI 综合报告(Markdown)+ 文献清单表格 + Word 导出
|
||||
- **多站点搜索**:9 个一级可用站点,用户可在前端选择数据源
|
||||
**V2.0 架构与功能:**
|
||||
|
||||
**V2.0 确认可用数据源(2026-02-22 实测):**
|
||||
| 层级 | 组件 | 说明 | 状态 |
|
||||
|------|------|------|------|
|
||||
| 前端 | 瀑布流页面 | Landing→配置→HITL→终端→结果,折叠式摘要 | ✅ |
|
||||
| 前端 | react-markdown | 综合报告 Markdown 正确渲染 + 引用链接可见化 | ✅ |
|
||||
| 后端 | SSE 流式客户端 | OpenAI Compatible SSE,实时推送 reasoning_content | ✅ |
|
||||
| 后端 | 段落化解析器 | 连续思考行合并为段落,搜索/阅读/分析独立成条 | ✅ |
|
||||
| 后端 | 需求扩写服务 | DeepSeek-V3 PICOS+MeSH 结构化扩写 | ✅ |
|
||||
| 后端 | Word 导出 | Pandoc 微服务,内嵌超链接 + 引用展开 | ✅ |
|
||||
| 后端 | pg-boss 队列 | 异步任务,离开页面不中断 | ✅ |
|
||||
| 数据库 | 6 个新字段 | targetSources/confirmedRequirement/aiIntentSummary/executionLogs/synthesisReport/resultList | ✅ |
|
||||
|
||||
| 站点 | 站内链接数 | 说明 |
|
||||
|------|-----------|------|
|
||||
| PubMed | 28 | 核心数据源,效果最佳 |
|
||||
| ClinicalTrials.gov | 38 | 必须英文查询,max_depth≥10 |
|
||||
| NCBI/PMC | 18 | 含 PMC 全文链接 |
|
||||
| Google Scholar | 10 | 跨库聚合 |
|
||||
| CBM/SinoMed | 9 | 中文生物医学 |
|
||||
| CNKI | 7 | 中文核心期刊 |
|
||||
| GeenMedical | 5 | 医学搜索引擎 |
|
||||
| Cochrane Library | 4 | 系统综述金标准 |
|
||||
| 维普 | 1 | 中文库 |
|
||||
**V2.0 核心技术决策:**
|
||||
1. **SSE 流式替代轮询**:从 create_task/query_task 轮询改为 OpenAI Compatible SSE 流。解决了"等很久才一股脑显示思考过程"的体验问题,reasoning_content 实时推送、每 2 秒刷写 DB。
|
||||
2. **段落化思考日志**:reasoning_content 按 `\n\n` 段落拆分,同段落内连续思考行用空格合并为一条,搜索/阅读/分析动作独立。Worker 每 200+ 字符批量解析,写入前再合并连续同类条目。
|
||||
3. **引用链接可见化**:Web 端通过 react-markdown 自定义 `<a>` 组件在链接后追加灰色 URL;Word 端通过 `expandReferenceLinks()` 将 `[[N]](url)` 展开为 `[N](url) (url)`。
|
||||
4. **中文数据源策略**:纯中文源(CNKI/中华医学期刊网)单独搜索效果好;混合中英文源时 PubMed 主导,建议分批搜索。
|
||||
|
||||
**开发计划**:5 天分阶段交付,详见 `04-开发计划/07-Deep Research V2.0 开发计划.md`
|
||||
**V2.0 选定数据源(5 个精选):**
|
||||
|
||||
| 数据源 | 类型 | 默认选中 | 说明 |
|
||||
|--------|------|----------|------|
|
||||
| PubMed | 英文 | ✅ | 核心数据源,效果最佳 |
|
||||
| ClinicalTrials.gov | 英文 | - | 临床试验注册库 |
|
||||
| Cochrane Library | 英文 | - | 系统综述金标准 |
|
||||
| 中国知网 CNKI | 中文 | - | 中文核心期刊 |
|
||||
| 中华医学期刊网 | 中文 | - | 中华医学会官方期刊 |
|
||||
|
||||
**V2.0 API 端点:**
|
||||
```http
|
||||
POST /api/v1/asl/deep-research/generate-requirement # LLM 需求扩写
|
||||
POST /api/v1/asl/deep-research/tasks # 创建任务(pg-boss)
|
||||
GET /api/v1/asl/deep-research/tasks/:taskId # 查询任务状态+日志+结果
|
||||
GET /api/v1/asl/deep-research/tasks/:taskId/export-word # Word 导出
|
||||
```
|
||||
|
||||
**V2.0 关键文件:**
|
||||
```
|
||||
backend/src/modules/asl/
|
||||
├── services/unifuncsSseClient.ts # SSE 流式客户端(AsyncGenerator)
|
||||
├── services/requirementExpansionService.ts # LLM 需求扩写
|
||||
├── services/wordExportService.ts # Word 导出(Pandoc + 引用展开)
|
||||
├── workers/deepResearchV2Worker.ts # SSE Worker(段落解析 + 2s 刷写)
|
||||
├── utils/reasoningParser.ts # 段落化解析器 + mergeConsecutiveThinking
|
||||
├── utils/resultParser.ts # content 解析(报告 + JSON 文献列表)
|
||||
├── controllers/deepResearchController.ts # 4 个 API 端点
|
||||
├── config/dataSources.ts # 5 个精选数据源配置
|
||||
└── __tests__/
|
||||
├── deep-research-v2-e2e.ts # 端到端测试
|
||||
├── deep-research-v2-smoke.ts # 冒烟测试
|
||||
└── deep-research-chinese-sources.ts # 中文数据源专项测试
|
||||
|
||||
frontend-v2/src/modules/asl/
|
||||
├── pages/DeepResearchPage.tsx # 瀑布流主页面(phase 0-4)
|
||||
├── components/deep-research/
|
||||
│ ├── LandingView.tsx # 搜索入口
|
||||
│ ├── SetupPanel.tsx # 数据源+过滤器配置(可折叠)
|
||||
│ ├── StrategyConfirm.tsx # HITL 策略确认(可折叠)
|
||||
│ ├── AgentTerminal.tsx # 暗色终端日志展示
|
||||
│ └── ResultsView.tsx # Markdown 报告 + 文献表格 + Word 导出
|
||||
├── hooks/useDeepResearchTask.ts # React Query 轮询 Hook
|
||||
├── types/deepResearch.ts # TypeScript 类型
|
||||
└── api/index.ts # 4 个 V2.0 API 函数
|
||||
```
|
||||
|
||||
**开发计划**:详见 `04-开发计划/07-Deep Research V2.0 开发计划.md`
|
||||
|
||||
**通用能力指南**:`docs/02-通用能力层/04-DeepResearch引擎/01-Unifuncs DeepSearch API 使用指南.md`
|
||||
|
||||
@@ -1319,28 +1370,28 @@ Drawer打开: <50ms
|
||||
|
||||
## 🎯 下一步开发计划
|
||||
|
||||
### 当前Sprint(全文复筛MVP)
|
||||
1. 🚧 **全文复筛 Day 4**:批处理任务服务(进行中)
|
||||
2. ⏳ **全文复筛 Day 5**:前端UI开发(待开始)
|
||||
3. ⏳ **全文复筛 Day 6**:API集成与联调(待开始)
|
||||
### 当前(Deep Research V2.0 优化)
|
||||
1. ⏳ **端到端回归测试**:完整流程测试(创建→扩写→确认→执行→结果→导出)
|
||||
2. ⏳ **用户体验打磨**:加载动画、错误提示、边界情况处理
|
||||
3. ⏳ **中文检索优化**:中英文混合检索策略调优(建议分批搜索)
|
||||
4. ⏳ **导出格式完善**:Word 模板美化、更多导出格式
|
||||
|
||||
### 短期优化(标题摘要初筛)
|
||||
1. ⏳ Prompt优化(提升准确率到85%+)
|
||||
2. ⏳ 添加任务暂停/取消功能
|
||||
3. ⏳ 实现并发处理(3-5个并发)
|
||||
4. ⏳ 添加估计剩余时间显示
|
||||
### 短期优化
|
||||
1. ⏳ Prompt 优化(需求扩写质量提升)
|
||||
2. ⏳ 搜索历史管理(历史任务列表、重新搜索)
|
||||
3. ⏳ 全文复筛前端 UI 开发
|
||||
4. ⏳ 标题摘要初筛 Prompt 优化(准确率 60% → 85%+)
|
||||
|
||||
### 中期(Month 2)
|
||||
1. 🚧 全文复筛功能(开发中)
|
||||
2. ⏳ 全文数据提取功能
|
||||
3. ⏳ 用户自定义边界情况
|
||||
4. ⏳ WebSocket实时推送
|
||||
1. ⏳ 全文复筛功能完善
|
||||
2. ⏳ 证据图谱可视化
|
||||
3. ⏳ 用户自定义数据源
|
||||
4. ⏳ 生产环境部署
|
||||
|
||||
### 长期(Month 3+)
|
||||
1. ⏳ 多用户支持(真实认证)
|
||||
2. ⏳ 消息队列(Bull/RabbitMQ)
|
||||
3. ⏳ 分布式处理
|
||||
4. ⏳ 成本控制和监控
|
||||
1. ⏳ 多语言检索策略自动优化
|
||||
2. ⏳ 批量文献检索
|
||||
3. ⏳ 成本控制和监控
|
||||
|
||||
---
|
||||
|
||||
@@ -1350,15 +1401,14 @@ Drawer打开: <50ms
|
||||
|
||||
---
|
||||
|
||||
**最后更新**:2025-11-22(全文复筛 Day 2-3完成)
|
||||
**最后更新**:2026-02-23(Deep Research V2.0 核心功能完成)
|
||||
**文档状态**:✅ 反映真实状态
|
||||
**下次更新时机**:全文复筛MVP完成 或 标题摘要Prompt优化完成
|
||||
**下次更新时机**:V2.0 端到端回归测试完成 或 全文复筛前端开发启动
|
||||
|
||||
**本次更新内容**(v1.1):
|
||||
- ✅ 更新当前状态(新增全文复筛开发进度)
|
||||
- ✅ 更新关键里程碑(Day 2-3完成)
|
||||
- ✅ 新增后端代码结构(common层 + fulltext-screening层)
|
||||
- ✅ 新增开发记录链接(Day 2-3工作总结)
|
||||
- ✅ 更新下一步开发计划(当前Sprint)
|
||||
**本次更新内容**(v2.0):
|
||||
- ✅ 更新当前状态:V2.0 核心功能开发完成(SSE 流式 + 瀑布流 UI + Word 导出)
|
||||
- ✅ 新增 V2.0 完整架构表、技术决策、API 端点、关键文件列表
|
||||
- ✅ 新增 5 个精选数据源配置(替代 9 站全量展示)
|
||||
- ✅ 更新下一步开发计划(V2.0 优化 + 短期/中期/长期)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user