# AI 辅助功能规划

> 最后更新：2026-07-12

## 一、定位与分级

### 核心理念

按**用户投入度**分级——用得越深，价值越大，付费意愿越强。

| 层级 | 本质 | 用户投入 | 付费天花板 |
|---|---|---|---|
| Tier 1 AI 解读 | 一次性信息压缩 | 零（进来就看） | 免费/专业版 |
| Tier 2 知识库 + RAG | 持续积累的结构化资产 | 收藏/上传即建库 | 专业版/团队版 |
| Tier 3 个性化 AI | 主动助手，按需配置 | 设定研究方向/模板 | 团队版 |

### 与现有功能的关系

文献 `ai_summary` JSON 列已存在，但管道导入不生成，**全部 1.4M 基线文献 `ai_summary` 均为 NULL**。Tier 1 的核心是：有缓存直接展示，无缓存显示"生成 AI 解读"按钮，用户点击后调用 DeepSeek 并持久化到数据库。Tier 2 和 3 是全新功能，需要新建数据模型和服务。

### 与评分系统的协同

评分系统解决**"哪篇值得读"**，AI 辅助解决**"读完后得到了什么"**。评分在前端排序层，AI 在内容展示层，互不依赖但互补——高分文献自动获得更深入的 AI 解读。

---

## 二、Tier 1：AI 文献解读

### 定位

**不改变用户习惯，进来就看。** 核心价值是省时间，降低文献阅读的认知负担。

### 功能

| 功能 | 数据来源 | 当前状态 |
|---|---|---|
| 一句话总结（one-liner） | `ai_summary.summary` | 空（需按需生成） |
| 结构化解读（背景/方法/结果/结论） | `ai_summary.sections` | 空（需按需生成） |
| 中文翻译 | `ai_summary.translation` | 空（需按需生成） |
| PICO 抽取 | `pico` 字段（population/intervention/comparison/outcome） | Meta 分析已有，前端未展示 |
| 关键数据提取 | `ai_summary.tables`（样本量、HR、PFS/OS 等） | 后端无此格式，需新增输出模板 |

### 前端展示

在文献详情页新增「AI 解读」标签页，与「摘要」「全文」并列：

```
┌──────────────────────────────────────────────┐
│ 摘要 │ AI 解读 │ 全文     ← 标签页切换         │
├──────────────────────────────────────────────┤
│                                              │
│ 一句话总结                                    │
│ 这项 III 期研究显示 Amivantamab 联合化疗比化  │
│ 疗显著改善 PFS（9.2 vs 5.8 月），可能改变     │
│ EGFR Exon20ins 一线标准。                     │
│                                              │
│ ── 研究背景 ──                                │
│ EGFR Exon20ins 对传统 TKI 不敏感...           │
│                                              │
│ ── 关键数据 ──                                │
│ │ 指标      │ 试验组 │ 对照组 │ HR   │       │
│ │ mPFS     │ 9.2mo  │ 5.8mo  │ 0.58 │       │
│ │ 客观缓解率 │ 53%    │ 29%    │      │       │
│ │ 3级AE    │ 42%    │ 36%    │      │       │
│                                              │
│ ── 临床意义 ──                                │
│ 首个针对 EGFR Exon20ins 一线 III 期数据，     │
│ 已纳入 NCCN 指南推荐。                         │
└──────────────────────────────────────────────┘
```

### 免费 vs 付费差异

| 功能 | 免费 | 专业版 | 团队版 |
|---|---|---|---|
| 一句话总结 | ✅ 每日前 5 篇 | ✅ 无限 | ✅ 无限 |
| 结构化解读 | ❌ | ✅ | ✅ |
| 关键数据表格 | ❌ | ✅ | ✅ |
| 中文翻译 | ❌ | ✅ | ✅ |

### 执行

前端工作 + 调用已有后端 API。

- **有 `ai_summary` 的文献**（新管道导入后可能有）→ 直接渲染展示
- **无 `ai_summary` 的文献**（全部基线 1.4M 篇 + 管道未触发生成的）→ 显示「生成 AI 解读」按钮
- 用户点击 → 调 `POST /ai/generate/{pmid}` → DeepSeek 生成 → 写入 `ai_summary` JSON 列 → 返回前端展示
- 后续任何用户打开同篇文献 → 直接命中数据库
- **不做批量预生成、无定时任务、不改变管道导入逻辑**

这个按需生成用现有 `AiProviderConfig` 配置即可，**不依赖 embedding/ES**，只取 title+abstract → DeepSeek → 入库。


---

## 三、Tier 2：知识库 + RAG

### 定位

**从"收藏夹"升级为"用户的第二个大脑"。** 用户收藏的文献、上传的文件、写的笔记，混合成一个可检索、可问答的个人知识库。

### 3.1 核心原则：收藏即建库

用户不需要做任何额外操作。收藏一篇文章，自动进入知识库。知识库不是另一个页面，而是收藏功能的自然延伸。

```
用户点击收藏
    ↓
写入 user_favorite（已有表）
    ↓
新增一条 knowledge_entry
    ↓
异步 embedding（ARQ 任务）
    ↓
写入 ES 向量索引
```

### 3.2 多源融合

知识库不只装文献，而是三类数据的混合：

| 来源 | 进入方式 | 存储 |
|---|---|---|
| 平台文献 | 用户收藏/评分（自动） | 已有 DB + ES |
| 用户笔记 | 在文献详情页写笔记（自动关联） | 已有 notes 表 |
| 用户上传文件 | 手动上传 PDF/Word/PPT/Markdown | 对象存储 MinIO/COS |
| 第三方文档 | 乐享集成/本地同步（预留接口） | 适配器模式 |

所有来源统一进入 `knowledge_entries` 表，统一 embedding，统一检索。

### 3.3 RAG 问答

用户在知识库页面提问，基于自己的知识库回答：

```
用户提问：EGFR 20ins 耐药机制有哪些？
    ↓
1. query embedding（调 embedding 服务转为向量）
    ↓
2. 向量检索（ES knn，过滤 tenant + user，top_k=8）
    ↓
3. 召回结果 + metadata 拼入 prompt
    ↓
4. DeepSeek 生成回答 + 标注引用来源
```

引用来源标注：

```
回答：
目前针对 EGFR Exon20ins 的耐药机制主要包括...

参考文献：
[1] Amivantamab in EGFR Exon20ins NSCLC... (PMID: 38712345)
[2] Mobocertinib 耐药机制分析... (您收藏的文献)
[3] 您整理的耐药机制笔记.docx (您上传的文件)
```

### 3.4 知识图谱（分步实施）

#### 设计说明

知识图谱不是 RAG 的前置依赖，而是在 RAG 有了用户和内容之后**自然长出**的增值特性。RAG 擅长"找相似文本"，图谱擅长"看关系路径"——两者互补。

不存在时先不产生价值，与其急着做不如等用户有数据积累后再做。

#### Phase 1：共现关系图谱（最简单，有收藏数据即可跑）

```
用户收藏了 100 篇文献
    ↓
后台 NER 提取药物、基因、疾病、研究类型等实体
    ↓
同一篇文献中出现的实体自动建立共现关系
    ↓
前端展示为"探索"视图：实体节点 + 关联线
```

用户看到的是：
```
[奥希替尼] ─── 出现在 12 篇收藏中 ─── [EGFR Exon19del]
     │                                        │
     │ 出现在 5 篇收藏中                       │ 出现在 8 篇收藏中
     │                                        │
[Amivantamab] ─── 出现在 3 篇收藏中 ─── [EGFR Exon20ins]
```

对用户的价值：**"我收藏的文献里，哪些概念是关联的？"**——帮助用户发现自己的知识盲区或研究热点。

#### Phase 2：外部知识融合（需要对接外部数据源）

将 PubChem、DrugBank、ClinicalTrials.gov 的结构化关系导入，叠加在用户图谱之上：

```
[奥希替尼] ── 靶向 ──→ [EGFR T790M]     ← 权威层 (DrugBank)
[奥希替尼] ── 获批适应症 ──→ [NSCLC]     ← 权威层
[奥希替尼] ── 用户标注 ──→ [耐药机制笔记]  ← 用户层
```

两层叠加：用户看到的不只是"哪些文献提到了奥希替尼"，还包括"奥希替尼的靶点是什么、获批了哪些适应症"。

#### Phase 3：图谱问答（融合 RAG + Graph）

用户问"奥希替尼耐药后有哪些方案"，系统先查图谱关系链：

```
[奥希替尼] ── 耐药后方案 ──→ [Amivantamab, 化疗, MET抑制剂...]
    ↓
找到关联文献（每篇文献可能对应多个方案）
    ↓
RAG 检索具体数据（HR、PFS、OS）
    ↓
回答："奥希替尼耐药后可选方案包括：1) Amivantamab + 化疗（mPFS 9.2mo）..."
```

**这本质是 GraphRAG，但对当前阶段太远了。** Phase 1-2 足够先用起来。

### 3.5 数据模型

```python
class KnowledgeEntry(Base):
    """知识库条目——收藏/上传/笔记的统一入口"""
    __tablename__ = "knowledge_entries"

    id: Mapped[uuid.UUID] = mapped_column(primary_key=True)
    tenant_id: Mapped[uuid.UUID] = mapped_column(ForeignKey("tenants.id"))
    user_id: Mapped[uuid.UUID] = mapped_column(ForeignKey("users.id"))

    entry_type: Mapped[str]     # literature | note | file
    source_type: Mapped[str | None]  # global_literature | user_note | upload
    source_id: Mapped[str | None]    # pmid | note_id | upload_id

    chunk_text: Mapped[str]     # 分块后的文本
    chunk_index: Mapped[int]    # 第几块（一篇文献可多块）
    metadata: Mapped[dict | None]   # JSON，来源/页码/标签

    embedding_id: Mapped[str | None] # ES doc id
    is_embedded: Mapped[bool] = mapped_column(default=False)
    created_at: Mapped[datetime] = mapped_column(server_default=func.now())
```

### 3.6 前端展示

知识库页面布局：

```
┌──────────────────────────────────────────────────┐
│  🔍 搜索知识库...                         视图切换 │
├──────────────────────────────────────────────────┤
│  筛选: 全部 | 文献 | 笔记 | 上传文件              │
├──────────────────────────────────────────────────┤
│ ┌────────────────────┐  ┌────────────────────┐   │
│ │ 📄 肺癌新辅助免疫   │  │ 📎 耐药机制笔记    │   │
│ │ 治疗III期研究...    │  │ 上传 2026-07-11   │   │
│ │ 收藏 2026-07-10    │  │ 2页 · docx        │   │
│ │ EGFR, 免疫治疗     │  │                   │   │
│ └────────────────────┘  └────────────────────┘   │
│ ┌────────────────────────────────────────┐        │
│ │ 💬 问你的知识库...              [发送]   │        │
│ └────────────────────────────────────────┘        │
└──────────────────────────────────────────────────┘
```

同时保留现有 LibraryView（收藏夹管理），在其上加一个入口："探索知识库"。

---

## 四、Tier 3：个性化 AI

### 定位

**从"被动应答"到"主动理解"。** 用户告诉 AI 自己的研究方向，AI 据此调整所有解读的角度。

### 4.1 研究方向配置

用户设定：

```json
{
  "direction": "肺癌靶向治疗和耐药机制",
  "focus": ["EGFR突变", "耐药机制", "双抗"],
  "patient_population": "EGFR突变NSCLC患者",
  "preferred_therapy": ["靶向治疗", "ADC"],
  "avoid": ["基础研究", "cell line实验"]
}
```

设定后，Tier 1 和 Tier 2 的所有输出自动适配：

| 场景 | 无研究方向时 | 有研究方向时 |
|---|---|---|
| AI 解读 | 标准结构化摘要 | 重点突出 EGFR 相关数据、耐药机制讨论 |
| RAG 问答 | 泛泛回答 | 优先引用靶向治疗相关的收藏文献 |
| 每日 Feed | 按评分排序 | 研究方向相关文献自动提升优先级 |

### 4.2 自定义 Prompt 模板（高阶）

用户可编写自己的 AI 解读模板：

```
用户预设模板（免疫方向）：
"请重点分析：1) 肿瘤微环境相关数据（TIL、PD-L1、TMB）
2) 免疫相关不良事件（irAE）的发生率和处理
3) 生物标志物分析（如适用）"

→ 之后每次 AI 解读都按此模板执行
```

实现方式：prompt 模板不涉及后端改动，在 `AiProviderConfig` 的 prompt 字段中附加用户模板。每次调用 DeepSeek 时拼接。

### 4.3 多模型选择

| 模型 | 用途 | 成本 | 适用层级 |
|---|---|---|---|
| DeepSeek（默认） | 日常解读、RAG 问答 | 低 | Tier 1+2 |
| GPT-4o | 深度分析、复杂推理 | 高 | Tier 3 |
| 本地模型（Ollama） | 敏感数据不经过外网 | 零 API 费用 | 团队版私有部署 |

用户可在设置中选择默认模型。不同模型走不同的 API Key 配置（`AiProviderConfig` 已有此设计）。

### 4.4 免费 vs 付费差异

| 功能 | 免费 | 专业版 | 团队版 |
|---|---|---|---|
| 研究方向配置 | ❌ | ✅ 1 个方向 | ✅ 不限 |
| AI 解读按方向适配 | ❌ | ✅ | ✅ |
| 自定义 prompt 模板 | ❌ | ❌ | ✅（管理员设） |
| 多模型选择 | ❌ | ❌ | ✅ |
| 模型调用量配额 | 5 次/天 | 50 次/天 | 按需 |

---

## 五、执行顺序

```
Phase 1  Tier 1 AI 解读前端 + 按需生成（合并原 Phase 1 + Phase 5）
         读写：LiteratureDetailView.vue 新增 AI 解读标签页 + "生成"按钮
         依赖：`ai_summary` JSON 列 + POST /ai/generate/{pmid} API（均有）
         说明：无批量预生成，全部用户触发。不依赖 embedding/ES。

Phase 2  Tier 2 基础——收藏即入知识库
         读写：knowledge_entries 表 + 收藏时自动插入
         依赖：无（新增模型 + 简单逻辑）
         注意：此阶段不上 embedding 和 RAG，只做"浏览我的知识库"

Phase 3  Tier 2 增强——embedding + 全文搜索
         读写：embedding 服务 + ES 向量索引 + ARQ 任务
         依赖：需要部署 embedding 模型（bge-m3）
         注意：此阶段仍不上 RAG Q&A，知识库可搜索即可

Phase 4  Tier 2 完成——RAG 问答
         读写：POST /kb/ask API + 前端对话界面
         依赖：Phase 3 完成后才可检索

Phase 5  知识图谱 Phase 1——共现关系图谱
         读写：NER 抽取 + 实体-关系存储 + 前端探索视图
         依赖：用户收藏达到一定量级（建议 500+ 条/租户）

Phase 6  Tier 3 个性化 AI
         读写：研究方向配置 UI + prompt 模板 + 模型选择
         依赖：Tier 1+2 稳定运行，有活跃用户

Phase 7  Tier 2 用户上传文件
         读写：文件上传 API + 解析（PDF/Word） + 入知识库
         依赖：对象存储基础设施已就绪

Phase 8  知识图谱 Phase 2——外部知识融合
...
```

### 分阶段原则

- **Phase 1 可独立上线**——前端 + 调用已有 API，无外部依赖。基线文献全部无 AI 摘要，默认展示"生成"按钮
- **Phase 2-4 是 Tier 2 的三步走**——先不 embed 先可浏览，再可搜索，再可问答。**每一步都能独立上线，每一步都比上一步更有价值**
- **Phase 5 不急于做**——等用户收藏量上来再做，不然图谱是空的
- **Phase 6+ 依赖活跃用户基础**

---

## 六、基础设施依赖

**Tier 1（AI 解读）无需新基础设施**——复用现有 DeepSeek API（`AiProviderConfig`）、`ai_summary` 字段、`POST /ai/generate/{pmid}` 端点。不依赖 embedding/ES。

以下为 Tier 2/3 及图谱所需的新组件：

| 新组件 | 用途 | 用于 Tier | 可复用现有 |
|---|---|---|---|
| `knowledge_entries` 表 | 知识库条目 | Tier 2 | ❌ 新表 |
| embedding 服务 | 文本→向量 | Tier 2+3 | ❌ 新部署 |
| ES dense_vector 索引 | 向量存储 | Tier 2 | ✅ ES 已有 |
| NER 抽取服务 | 实体识别 | 图谱 | ❌ 新服务 |
| 对象存储（文件上传） | PDF/Word 存储 | Tier 2 | ✅ MinIO/COS 已有 |
| 文件解析服务 | PDF→文本 | Tier 2 | ❌ 新模块 |

**embedding 服务部署建议：**

用 `sentence-transformers` + `bge-m3` 模型，FastAPI 包装。单容器 2GB 内存，CPU 推理足够（每日 ~50 个收藏动作）。先部署一个最小实例，不够再加 GPU。

```python
# embedding_service.py（示意）
from sentence_transformers import SentenceTransformer

model = SentenceTransformer("BAAI/bge-m3")

@app.post("/embed")
async def embed(texts: list[str]):
    embeddings = model.encode(texts, normalize_embeddings=True)
    return {"embeddings": embeddings.tolist()}
```

---

## 七、AI 辅助科研（未来方向）

### 7.1 定位与前提

> 从"帮医生省时间读文献"升级到"帮医生发现研究机会"。
> 
> 前三个 Tier 解决的是**信息过载**（Tier 1 → 省时间、Tier 2 → 建知识库、Tier 3 → 个性化），AI 辅助科研解决的是**知识到洞察的跨越**。

**关键判断：** AI 辅助科研不是独立产品，而是现有 73 万篇肿瘤文献数据库 + AI 能力之上的一层分析应用。不做垂直的"科研 AI 平台"，而是让用户在看完文献后，自然产生下一步研究思路。

**前提条件（当前阶段不实现）：**
- 基线导入完成，数据库稳定在 100 万+ 篇文献
- ClinicalTrials.gov 集成完成（[数据源计划](docs/05-数据源丰富计划.md)）
- PubChem 或 DrugBank 集成完成
- 有活跃的付费用户基础（专业版/团队版）

### 7.2 功能矩阵

| 功能 | 核心能力 | 数据依赖 | 价值 | 复杂度 |
|---|---|---|---|---|
| 趋势扫描 | MeSH 标签时间序列分析 | 仅需现有数据库 | 发现热点/冷点 | 低 |
| 空白分析 | 研究设计 × 癌种 × 药物交叉 | 现有 DB + ClinicalTrials | 发现未被充分研究的领域 | 中 |
| 证据综合 | 系统性综述辅助（PRISMA 流程） | 现有 DB + 搜索 | 加速综述写作 | 中 |
| 假设生成 | 跨领域关联推理 | 现有 DB + 外部知识库 | 新研究思路 | 高 |
| 写作辅助 | 引用推荐 + 文献综述段落生成 | 现有 DB + RAG | 提高论文写作效率 | 中 |

### 7.3 功能详解

#### 7.3.1 趋势扫描（Research Trend Scout）

**本质：** 把 MeSH 标签当成时间序列，看什么在增长、什么在衰退。

**数据基础：** 我们的数据库按年组织，每条文献有 MeSH 标签。统计每年每个标签下的文献数量，就能画出趋势线。

```
标签：双特异性抗体（Bispecific Antibodies）

2021:  12 篇  ████████
2022:  28 篇  ██████████████████
2023:  45 篇  ██████████████████████████████
2024:  89 篇  ██████████████████████████████████████████████████████
2025: 142 篇  ████████████████████████████████████████████████████████████████████████████████

增长率: 2024→2025 = +59.6%
相关标签: ADC, CD3, DLL3, 血液肿瘤, 实体瘤
```

**用户价值：**
- 肿瘤科主任了解领域全貌："今年肺癌免疫治疗还有哪些新方向？"
- 研究生选题："有什么快速增长但还不太卷的方向？"
- MDT 团队规划："我们科室应该关注哪些新技术？"

**实现路径：**
- 不需要新数据源，只用现有 `global_literature` + `global_literature_tags`
- 按年统计每个标签的文献数 → 计算增长率（YoY, 3-year CAGR）
- 标签间相关性分析（哪些标签经常同篇出现 → 发现研究热点群组）
- 前端：趋势线图 + 热力图 + 标签关联网络

**复杂度评估：低。** 纯 SQL 聚合 + 前端图表。后端 100 行代码，前端可复用现有图表组件。

#### 7.3.2 空白分析（Research Gap Analyzer）

**本质：** 已知某药物在某癌种有效，但同一机制在其他癌种是否被研究过？

**典型场景：**
- "免疫治疗在胰腺癌中为什么失败率高？有多少研究涉及？"
- "ADC 药物在 HER2-low 乳腺癌之外，哪些癌种也有 HER2 低表达？"
- "哪个癌种在 2026 年还没有 III 期 RCT 更新？"

**数据基础：**
- 现有数据库：文献总量 + 研究设计分类 + PICO
- ClinicalTrials.gov（需集成）：临床试验全景
- PubChem/DrugBank：药物-靶点关系

**分析维度交叉：**

```
                  NSCLC  SCLC  Breast  Pancreatic  CRC  Gastric
免疫治疗           ████    ██    ███     ██        ██    ██
ADC                ███    █     ████     █         █     █
CAR-T              █      ███   ██       █         ██    █
双抗               ██     █     ██       █         █     ██
T cell engager     █      █     █        █         ██    █

色阶: █=1-10篇  ██=11-50  ███=51-200  ████=200+
空白 = 该领域几乎没有研究 = 潜在的研究方向
```

**用户价值：**
- 帮助研究者找到真正的研究空白（不是"没人做过"而是"有理论基础但没人做过"）
- 基金申请时用来论证"本研究填补了XX空白"
- 科室科研规划时明确投入方向

**复杂度评估：中。** 主要是 ClinicalTrials.gov 的集成工作量。数据集成本身已在规划中（参考数据源丰富计划），分析逻辑本身不复杂。

#### 7.3.3 证据综合（Evidence Synthesis / AI Systematic Review）

**本质：** 系统性综述是肿瘤学研究的核心方法。AI 不是替代研究者，而是把最机械的部分自动化。

**用户旅程：**

```
研究者提出 PICOS 问题:
"在 EGFR 20ins NSCLC 中，Amivantamab 对比化疗的疗效和安全性？"

Step 1: AI 生成搜索策略
  └→ 自动构造 PubMed 查询语句
  └→ 推荐 MeSH 词 + 自由词组合
  └→ 输出 PRISMA 流程图可用的搜索策略

Step 2: 检索 + 去重
  └→ 在我们的数据库中搜索 + 可扩展到 PubMed
  └→ 自动去重（基于 PMID）

Step 3: AI 筛选（Title/Abstract）
  └→ 对每篇文献判断是否符合纳入标准
  └→ 输出："纳入 12 篇 / 排除 48 篇 / 存疑 5 篇（需人工判断）"

Step 4: 数据提取
  └→ 从纳入文献提取：样本量、人群、干预、对照、结局
  └→ 输出结构化证据表格

Step 5: 辅助合成
  └→ 森林图草稿
  └→ 异质性分析提示
  └→ 证据质量评价（GRADE 辅助）
```

**与现有功能的关系：**
- 搜索策略生成 → 复用现有搜索 API（`search_engine.py`）
- 筛选 → 需要新的 AI 判断 pipeline
- 数据提取 → 复用现有 PICO 抽取（`pico` 字段）
- 导出 → 复用现有批量导出

**价值判断：** 这是 AI 辅助科研中**用户需求最强烈**的功能。每个肿瘤科研究生/年轻医生在写综述时都经历过"筛 3000 篇文献"的痛苦。但工程复杂度也最高。

**复杂度评估：中高。** 影响范围大（搜索 + 筛选 + 提取 + 合成），需要独立模块。建议从 Step 1-3（搜索策略 + 自动筛选）开始 MVP，确认用户买单再做 Step 4-5。

#### 7.3.4 假设生成（Hypothesis Generator）

**本质：** 跨文献、跨癌种、跨药物的模式匹配——发现"这个药在那个癌种有效，同样的机制在另一个癌种可能也有效"。

**数据驱动 vs 模型驱动：**
- **数据驱动（可行）：** 找相同靶点的药在不同癌种的疗效差异。如果 Drug X 靶向靶点 T，在 Cancer A 有阳性 III 期数据，但在 Cancer B 只有病例报告，则 Cancer B 可能是研究空白
- **模型驱动（远期）：** 让 AI 阅读大量文献后，"猜测"某个新组合可能有效。这需要更强大的推理能力和已知的知识图谱，当前阶段不建议做

**数据驱动的实现思路：**

```
1. 从 PubChem/DrugBank 获取药物-靶点关系
2. 从文献中提取药物-癌种疗效数据
3. 交叉匹配：
   药物 X → 靶点 T → 在 Cancer A 有效
   药物 Y → 靶点 T → 在 Cancer B 有数据吗？
4. 输出假设：
   "Drug X 在 Cancer A 中显示 ORR 60%，机制是靶向 T。
    Cancer C 也高度表达 T（来自文献 PMID: 12345），
    但尚无 Drug X 在 Cancer C 的研究。
    建议探索 Drug X 在 Cancer C 中的疗效。"
```

**复杂度评估：高。** 需要 PubChem 完整集成、药物-靶点命名标准化、实体对齐。这是最远离当前产品的能力。

#### 7.3.5 写作辅助（Writing Assistant）

**本质：** 利用文献数据库 + AI，在用户写作时提供引用推荐和背景段落。

**功能：**
- **智能引用推荐：** 用户在写"EGFR 突变在亚洲 NSCLC 患者中的发生率"时，AI 自动推荐最相关、最高引的 3-5 篇参考文献
- **文献综述段落生成：** "写一段关于 Amivantamab 临床开发历程的综述，引用关键研究"
- **格式自动匹配：** 引文格式自动转为目标期刊格式

**实现方式：**
- 引用推荐 → 基于搜索 API（已有）+ 评分排序（即将有）
- 段落生成 → 基于 RAG（Tier 2 完成后的自然延伸）
- 格式转换 → 已有导出模块

**复杂度评估：中。** Tier 2 的 RAG 完成后，写作辅助是上层应用。引用推荐最实用、最轻量，可以独立先行。

### 7.4 与现有产品的关系

```
现有产品核心：
帮用户"发现"值得读的文献
    │
Tier 1-3 AI 辅助：
帮用户"理解"已发现的文献
    │
AI 辅助科研（本节）：
帮用户"创造"新的知识
```

三者串起来，用户在每个环节都有价值：

```
发现 → 已有能力（标签匹配 + Feed + 搜索 + 评分排序）
  ↓
理解 → Tier 1-3（AI 解读 + 知识库 + 个性化）
  ↓
创造 → AI 辅助科研（趋势 + 空白 + 综合 + 假设 + 写作）
```

**不冲突的地方：**
- AI 辅助科研不改变 Feed/搜索/收藏等核心链路
- 是对"高级用户"（研究人员、研究生、PI）的增值功能
- 可作为独立的付费附加模块（按需付费或更高的订阅层级）

### 7.5 执行顺序与条件

```
┌─────────────────────────────────────────────────────┐
│  条件：基线导入完成 + ClinicalTrials.gov 集成就绪   │
└─────────────────────────────────────────────────────┘
                            │
                            ▼
Phase A  趋势扫描（低复杂度，独立可用）
         读写：后端趋势分析 API + 前端趋势图
         数据：仅需现有数据库
         工期：~1 周（后端 2 天 + 前端 3 天）

Phase B  证据综合 MVP（搜索策略 + AI 筛选）
         读写：AI 筛选 pipeline + PRISMA 流程管理
         数据：现有 DB + DeepSeek
         工期：~2 周
         注意：验证用户是否愿意为"自动筛选"付费

            ←─ 在此验证用户需求，再决定是否继续 ─→

Phase C  空白分析
         读写：ClinicaTrials 集成 + 交叉分析
         数据：ClinicalTrials.gov 完整导入后
         工期：依赖数据集成进度

Phase D  写作辅助
         读写：引用推荐 API + 段落生成
         数据：Tier 2 RAG 完成后
         工期：依赖 Tier 2 进度

Phase E  假设生成
         读写：PubChem 集成 + 实体对齐 + 关联推理
         数据：PubChem/DrugBank 完整导入后
         工期：远期
```

**核心判断：不做则已，要做就做 Phase A 先。** 趋势扫描基于现有数据，无外部依赖，是证明"AI 辅助科研"这个方向是否有用户买单的最小闭环。

### 7.6 风险与取舍

| 风险 | 说明 | 缓解措施 |
|---|---|---|
| 用户不需要"科研辅助" | 可能目标用户（临床医生）只想看文献，不想做研究 | Phase A 先验证，不做大规模开发 |
| 趋势扫描价值不够深 | 只是"统计图"，用户看一眼就完了 | 结合空白分析才有深度，但走得太快可能做无用功 |
| 证据综合做成了"学术不端"工具 | AI 写综述可能被滥用绕过真正的文献阅读 | 定位为"辅助"不是"替代"，要求人工确认每一步 |
| 数据量不够支撑有意义的趋势分析 | 73 万篇肿瘤文献对一个癌种细分后可能太少 | 先做粗粒度趋势（癌种级），细粒度（突变级）等基线完成后 |
| 合规风险（AI 辅助科研的学术诚信） | 期刊可能不允许 AI 生成内容 | 所有 AI 输出标注"AI generated"，引文必须人工验证 |

---

## 八、不做的改动

- **知识库不替代收藏夹**——收藏夹仍是"快速保存到列表"，知识库是"自动积累可检索"。两者共存，收藏夹入口保留在 LibraryView
- **不上 GraphRAG（当前阶段）**——Phase 1-2 的共现图谱已经足够提供"探索"体验，GraphRAG 的工程复杂度远高于收益，等用户量和数据量足够再说
- **不上 agents/workflow 编排**——Tier 3 的个性化只是 prompt 模板 + 模型选择，不做多 agent 编排
- **不重建文件预览**——上传的 PDF/Word 用对象存储的预览 URL 或用 iframe 嵌入，不做自建文档阅读器
- **不改变现有 Feed 引擎**——研究方向配置影响的是 AI 解读角度，不是 Feed 匹配逻辑
- **不做用户级 embedding 模型微调**——方向配置通过 prompt 工程实现，不训练模型
