Skip to content

Feat: 支持异步深度精读、图表派生资产管理及用户确认入库 #982

Description

@limin2199

背景

Yuxi 当前可以通过 MinerU 等解析器提取文档正文、图片、表格和 Markdown,并形成基础分块用于检索。

但对于科研文献,仅检索原始分块仍存在以下不足:

  1. 图片和复杂表格缺少可用于语义检索的准确描述。
  2. 用户难以快速获得研究方法、关键结果、局限性和结论之间的结构化关系。
  3. 深度精读产生的 Paper Card、图表解释、结构化表格等内容缺少统一的资产管理与来源回链。
  4. 深度精读可能消耗较长时间,不适合阻塞当前对话。
  5. 精读结果不应自动进入共享知识库,需要由用户确认保存位置和可见范围。

希望在 Yuxi 中增加一套由 Skill 触发、异步执行、结果可预览、用户确认后入库的深度精读能力。

目标

支持用户通过对话发起“深度精读这篇文献”。系统异步完成全文精读、图表解释和结构化结果生成,并在任务完成后通知用户选择:

  • 查看精读结果
  • 保存到个人知识库
  • 保存到有权限的共享知识库
  • 放弃本次结果

建议工作流

用户在对话中选择文献
  -> 调用 Deep Reading Skill
  -> 校验用户对原文的读取权限
  -> 创建 DeepReadingRun 异步任务
  -> 获取原始 PDF、MinerU Markdown、分块及图表资产
  -> 执行深度精读
  -> 生成 Paper Card、图表描述和结构化结果
  -> 结果以 DRAFT 状态暂存
  -> 向用户发送完成通知
  -> 用户预览并选择保存位置
  -> 校验目标知识库写入权限
  -> 建立索引并发布

任务状态建议:

REQUESTED -> QUEUED -> RUNNING -> READY_FOR_REVIEW
READY_FOR_REVIEW -> PUBLISHED | DISCARDED
RUNNING -> FAILED_RETRYABLE | FAILED_MANUAL

原始资产与派生资产

建议明确区分两类资产。

原始文档资产

由 MinerU 等解析器产生:原始图片、表格、公式、Markdown、结构化 JSON、页码、坐标、标题、原始文档分块和稳定的 asset_ref。原始资产是证据回溯的权威来源。

深度精读派生资产

由 Deep Reading Skill 或多模态模型产生:

  • 图片语义描述和科研解读
  • 表格结构化、翻译和字段标准化结果
  • 图片局部裁剪或重点标注
  • Paper Card
  • 方法、结果、局限性和结论摘要
  • 跨图表或跨文献比较结果

派生资产必须保存来源关系,不能替代原始资产。

DerivedAsset
  id
  document_id
  document_version_id
  derived_from_asset_ref
  supporting_segment_ids
  artifact_type
  content
  storage_ref
  generated_by
  model_version
  skill_version
  review_status
  visibility_scope
  created_by
  created_at

建议支持 DESCRIBESDERIVED_FROMCAPTION_OFINTERPRETSSUMMARIZESREFERENCES 等关系。

相同资产应通过 SHA-256 或稳定 asset_ref 去重。只有裁剪图、翻译表、标注图等发生内容变化的结果,才保存为新的派生资产。

检索设计

MinerU 分块和深度精读结果不建议写入同一个无差别索引,建议抽象为两个独立的信息源:

DocumentSource
  原始分块、页码、图片、表格和 asset_ref

DeepReadingSource
  Paper Card、图表描述、方法、结果和局限性

统一检索入口可以根据查询意图路由:

  • 查询原文、数值、页码或具体图表:优先检索 DocumentSource
  • 查询论文结论、方法、局限性或图表含义:优先检索 DeepReadingSource
  • 精读结果被召回后:必须通过 segment_idasset_ref 回链原文

推荐返回结构:

{
  "content": "图表或精读内容",
  "source_type": "deep_reading",
  "document_id": "doc_xxx",
  "supporting_segment_ids": ["seg_xxx"],
  "supporting_asset_refs": ["asset://.../figure-3"],
  "page_numbers": [7],
  "review_status": "DRAFT"
}

如果 Agent 支持多模态输入,可以根据 asset_ref 获取短时授权链接,将原始图片与检索到的文字描述共同交给模型。

Skill 与后端职责

共享 Skill 负责识别用户选择的知识库和文档、发起精读任务、查询任务状态、展示结果并引导用户选择保存位置。

后端服务负责权限校验、异步任务调度、文件和解析资产读取、草稿暂存、幂等控制、发布、索引和审计日志。Skill 不应直接写 PostgreSQL、Milvus、MinIO 或 Neo4j。

建议提供受控工具或 API:

start_deep_reading
get_deep_reading_status
preview_deep_reading_result
publish_reading_artifacts
discard_deep_reading_result

幂等与缓存

建议用 document_version_id + reading_profile + skill_version + model_version + language 生成幂等键。同一版本文献使用相同配置重复精读时可以复用已有结果;用户明确要求重新生成时,再创建新的 DeepReadingRun

权限要求

  1. 用户必须拥有原文读取权限,才能发起精读。
  2. 精读草稿默认只对任务发起人可见。
  3. 保存到共享知识库前,必须校验用户的写入权限。
  4. 派生资产继承原文档的访问边界,不能通过发布精读结果扩大原文权限。
  5. 短时图片链接必须校验用户、知识库和有效期。
  6. 任务、模型调用、预览和发布行为需要保留审计记录。
  7. 删除或撤销原文权限后,相关精读内容也应停止提供原文回链。

MVP 建议范围

  1. 从 Yuxi 知识库选择一篇已解析文档。
  2. Skill 创建异步精读任务。
  3. 读取原始 PDF、Markdown、分块和图表资产。
  4. 生成 Paper Card、图表描述及来源映射。
  5. 结果以 DRAFT 状态暂存。
  6. 完成后通知用户预览。
  7. 用户确认后保存到个人或共享知识库。
  8. 检索结果能够回链至原始页码、分块和图表。

跨文献比较、知识图谱构建和正式知识发布可以放到后续阶段。

验收标准

  • 用户可以通过对话对指定文献发起深度精读
  • 对话不会被长时间任务阻塞
  • 任务具有明确状态、进度和失败原因
  • 精读结果在用户确认前不会进入共享检索
  • 用户可以预览、发布或放弃结果
  • 发布操作校验个人或共享知识库写入权限
  • 图表描述可以被语义检索召回
  • 每个图表解释能够回链到原始 asset_ref
  • 每项精读结论能够回链到原始分块或页码
  • 原始资产与派生资产不会被重复存储
  • 重复任务支持幂等复用
  • 全部生成、预览和发布行为具有审计记录

非目标

本 Feature 暂不要求:

  • 自动把精读内容作为已验证事实发布
  • 用派生图表替代原始图表
  • 将所有历史文献自动执行高成本深度精读
  • 强制绑定某一种 Deep Reading 工具
  • 将原始分块与精读结果混入同一个无状态索引

相关设计

该功能可以作为 Yuxi InformationSource 抽象的扩展:原始文档与深度精读结果分别作为独立信息源,由 Agent 统一路由和编排。

Related:

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions