1. 课程导入

欢迎进入《金融研报与财报RAG问答系统实战》。在开始写第一行代码之前,我们需要先建立一张清晰的“作战地图”:这套系统到底要解决什么问题、它由哪些关键部件构成、我们会在30章里按什么顺序把它从零搭起来。金融文档问答与通用问答最大的区别在于——答案必须可溯源、数字必须准确、口径必须一致。一份年报动辄两三百页,一份深度研报包含大量图表与脚注,传统关键词检索只能返回整页PDF,而大模型直接回答又容易“编数字”。RAG(Retrieval-Augmented Generation,检索增强生成)正是为这类场景而生:先从文档中检索出真实证据,再让模型基于证据作答。

一、学习目标:从“能跑通”到“敢上线”

本课程的目标不是做一个玩具Demo,而是构建一个在真实金融场景中可评估、可迭代、可上线的问答系统。学完之后,你应当具备以下能力:

  • 文档解析能力:能处理PDF、HTML、Word等格式的研报与财报,正确抽取正文、表格、标题层级与页码信息。
  • 切分与索引能力:能针对财报的“章节—小节—段落—表格”结构设计切分策略,并建立向量索引与关键词索引的混合检索。
  • 检索优化能力:掌握查询改写、元数据过滤、重排序(Rerank)等手段,把“召回率”转化为“命中率”。
  • 生成与溯源能力:能设计带引用编号的提示词,让每个数字都能回指到原文页码与表格。
  • 评估与迭代能力:能搭建包含忠实度、答案相关性、上下文召回率的评估集,用数据驱动调优。
核心判断标准只有一条:当用户问“2023年这家公司毛利率是多少,同比变化如何”,系统给出的数字必须与财报原文完全一致,并且能点开引用看到出处。做不到这一点,系统在金融场景中就没有价值。

二、核心价值:为什么金融场景必须用RAG

金融问答有三条硬约束:准确性、时效性、可审计性。大模型的参数化知识存在训练截止时间,无法覆盖最新财报;同时模型对数字的“记忆”并不可靠,容易产生看似合理的错误。RAG通过外挂知识库解决时效问题,通过引用溯源解决审计问题,通过检索约束降低幻觉。下表对比了三种常见方案在金融场景下的表现:

方案 数字准确性 时效性 可溯源 适用场景
纯大模型直接回答 低,易编造 差,受训练截止限制 无 概念解释、通识问答
关键词/全文检索 高,返回原文 好,实时索引 强 定位原文、人工阅读
RAG问答系统 较高,基于证据生成 好,可增量更新 强,带引用 研报财报问答、投研助手

可以看到,RAG并不是要取代检索,而是把“检索到的证据”交给模型做归纳与表达。它的价值在于把投研人员从“翻PDF找数字”中解放出来,同时保留核对原文的通道。

三、整体架构:一条从文档到答案的数据流水线

本课程采用的系统架构分为离线索引与在线问答两条链路。离线链路负责把非结构化文档变成可检索的知识单元;在线链路负责把用户问题变成带引用的答案。下图展示了核心部件与数据流向:

金融研报与财报RAG系统整体架构 离线索引链路 PDF/HTML解析 表格与标题抽取 结构化切分 索引存储 向量索引 关键词索引 元数据(页码/公司/年份) 在线问答链路 查询改写 混合检索 + 重排序 提示词组装 生成与输出 大模型生成 引用编号 答案 + 出处 评估与反馈闭环 忠实度 · 答案相关性 · 上下文召回率 · 引用准确率 → 驱动切分、检索、提示词迭代 误区:只调模型不调检索 检索不到,生成再强也无用 关键:切分粒度与元数据 表格单独切分,保留表头与单位 目标:每个数字可回指原文 引用页码 + 表格编号

离线链路的关键在于“结构化”:财报的目录、章节标题、表格标题、脚注都是重要元数据,切分时不能简单按固定字数截断。在线链路的关键在于“混合检索”:向量检索擅长语义匹配,关键词检索擅长精确数字与专有名词,两者融合后再用重排序模型精选Top-K,才能兼顾召回与精度。

四、实战路线图:30章如何推进

课程按“数据—检索—生成—评估—工程化”五个阶段推进,每一阶段都有可运行的产出物:

  1. 数据准备阶段(第2–8章):搭建PDF解析流水线,处理表格、标题、页码,设计面向财报的切分策略,完成向量化与索引构建。
  2. 检索优化阶段(第9–15章):实现混合检索、查询改写、元数据过滤与重排序,解决“找不准”的问题。
  3. 生成与溯源阶段(第16–22章):设计提示词模板,约束模型基于证据作答,输出带引用编号的答案,处理多轮对话与上下文管理。
  4. 评估与调优阶段(第23–27章):构建金融问答评估集,度量忠实度与召回率,定位失败案例并迭代。
  5. 工程化与上线阶段(第28–30章):封装API、加入缓存与限流、监控检索与生成质量,完成可部署的系统。
建议在学习过程中同步准备一份真实财报(如某上市公司年报)和一份券商深度研报作为贯穿全课程的测试语料。每学完一个模块,就用同一组问题回归测试,观察指标变化。

五、常见误区与复盘思路

初学者最容易踩的坑有三个:第一,把RAG当成“向量数据库+大模型”的简单拼接,忽视文档解析质量,导致表格数字错位、标题丢失;第二,切分粒度过粗或过细,过粗导致检索噪声大,过细导致上下文断裂、数字失去单位;第三,只关注生成效果,不建立评估集,调优全凭感觉,无法判断改动是否真的有效。

金融场景中,一个错误数字的代价远高于“回答不出来”。因此系统设计应遵循“宁可拒答,不可编造”的原则:当检索证据不足或置信度低时,明确告知用户“未在文档中找到相关数据”,并给出可能的检索建议。

复盘时建议按“检索失败”和“生成失败”两类归因:检索失败表现为正确证据未出现在Top-K中,需要检查切分、索引与查询改写;生成失败表现为证据正确但答案错误,需要检查提示词约束、上下文长度与模型选择。把每次失败案例记录到评估集中,系统才能持续进化。

现在,你已经对这套系统的目标、价值、架构与路线有了整体认识。接下来,我们将从最基础也最关键的文档解析开始,把一份真实的PDF财报变成机器可检索的结构化知识。