Skip to content

02 — 研报获取层 (Research Report Ingestion)

投研报告从哪来、怎么入库、怎么给 Agent 用

目标 (Goal)

让 Agent 能够基于真实的卖方研报内容做投研推理,不是只看价格和财报。这层要解决:

  • 研报从合法、可持续的来源拿到
  • 入库后能做全文检索 + 语义检索
  • 能与个股、行业、时间维度关联

待研究的 Repos

每个 repo 评审时回答:

  1. Source:从哪些站点拿数据?(东方财富 / 慧博 / 新浪财经 / Wind / 其他)
  2. 抓取方式:API / 爬虫 / RSS?反爬怎么处理?
  3. 格式处理:PDF / HTML / 图文混排?OCR?表格抽取?
  4. 法律/合规风险:商业 redistribution 的边界

关键决策点 (Open Questions)

Q1. 研报来源的"层级"

研报本身有不同的获取难度和质量:

  • 公开免费:上交所/深交所披露文件、上市公司公告 (PDF) — 最干净、最权威
  • 半公开:东方财富、新浪财经研报频道 (要爬)
  • 付费墙:慧博、Wind、Choice — 商业 license
  • 券商直发:通过分仓席位拿到的 PDF — 灰色地带

→ 一期建议:公开 + 半公开,付费墙后续再说。

Q2. PDF 解析方案

研报 80%+ 是 PDF,质量差异巨大:

  • A) 结构化抽取:pdfplumber / PyMuPDF + 规则
  • B) LLM 视觉解析:Claude / GPT-4V 直接喂 PDF 页面图片
  • C) 混合:先用 A 出文本,表格/图表用 B

→ 建议方案 C。研报里表格和图表是关键,纯文本抽取丢信息。

Q3. 入库形态

  • 原始 PDF:对象存储 (S3 / MinIO)
  • 解析后文本 + 元数据:Postgres
  • 向量化 embedding:pgvector / Qdrant / Lance
  • 结构化数据抽取 (目标价、评级、EPS 预测) → 关系表,能与一致预期数据关联

Q4. 与一致预期数据的桥梁

研报里的 EPS 预测、目标价 → 应该 NER + 抽取 进结构化表,这样:

  • 可以与 Tushare 的一致预期做交叉验证
  • 可以追溯"某券商在某天给了多少目标价"
  • Agent 可以做 "卖方观点变化分析"

这是研报层与数据层 (01) 的关键耦合点

Q5. 时效性

研报是 append-only 的时间序列。Agent 在做推理时必须知道:

  • "as of date" 是什么 — 不能用未来研报回答历史问题
  • 研报的发布时间戳精度(日 / 时分秒)

与上层接口

search_reports(query, code=?, industry=?, date_range=?, top_k=10)
get_report_extracts(report_id)  # 结构化抽取的目标价、评级等
get_consensus_from_reports(code, as_of)  # 自下而上聚合

下一步

  1. Fetch 两个 repo,看它们覆盖哪些源、解析方案怎么选
  2. 决定 Q1 的来源层级(一期是否包含付费墙)
  3. 决定 Q2 PDF 解析栈
  4. 设计研报 → 结构化抽取的 schema

Internal documentation