第 1 章 · 开篇:30 分钟跑通一个能用的财报问答
这是整门课的第一块地基。
学完本章,你会亲手把一堆 PDF 年报,变成一个能问、能答、答案还能翻回原文第几页的问答系统。
痛点
打开 DeepSeek,问它一句财报数据:「贵州茅台 2024 年的营业总收入和归母净利润分别是多少?」
它大概率给你一个看起来很专业、却不敢直接用的数字。
可能源自训练记忆,也可能是模型臆造(幻觉)。
你无从核对。
本章要把它变成这样:
根据上下文,贵州茅台2024年营业总收入为 1,741.44 亿元,
归属于上市公司股东的净利润为 862.28 亿元。(贵州茅台·2024年报·P8)
数字有出处、能翻页核对、查不到就说查不到。
这正是 RAG(检索增强生成)要解决的事。
也是金融场景能不能落地的生死线。
实战数据
先把结论摆上桌——本章不停在概念,而是真把一条「PDF → 带页码答案」的链路跑通了。
| 指标 | 结果 |
|---|---|
| 端到端问答 | 一条命令从提问到带页码答案,可复跑 |
| 答案准确性 | 茅台 2024 营业总收入 1,741.44 亿、归母净利润 862.28 亿<br>翻年报 P8 核对完全一致 |
| 溯源与防串味 | 命中来源清一色 茅台 · 2024(score 0.707~0.751)<br>无跨公司 / 跨年混入 |
npm run query 的真实回显(原样贴,可在本机复现):
=== 检索过滤 ===
公司=贵州茅台 报告期=2024
=== 回答 ===
根据上下文,贵州茅台2024年营业总收入为 1,741.44 亿元,
归属于上市公司股东的净利润为 862.28 亿元。(贵州茅台·2024年报·P8)
=== 命中来源 ===
- 贵州茅台·2024·P1 (score 0.751)
- 贵州茅台·2024·P56 (score 0.735)
- 贵州茅台·2024·P55 (score 0.717)
- 贵州茅台·2024·P14 (score 0.710)
- 贵州茅台·2024·P14 (score 0.709)
- 贵州茅台·2024·P8 (score 0.707)
答案标了页码、能翻回原文核对。
命中来源全是茅台 2024,没串味。
这就是金融 RAG 的及格线:数字正确 + 可溯源。
小节地图
本章拆 4 节,每节聚焦一个知识块,可独立读、独立练:
| 小节 | 主题 | 你会得到 |
|---|---|---|
| 1.1 | RAG 全貌 | 一张讲清「为什么需要 RAG」的心智地图<br>一条记得住的「六步流水线」 |
| 1.2 | 实验台 | 跑得起来的环境:向量库 (Supabase) + 主程序 + 解析服务<br>一条命令验证全链路连通 |
| 1.3 | 最小问答 | 一条从 PDF 到带页码答案的完整链路<br>可运行的核心代码,逐段对照 |
| 1.4 | 看见裂缝 | 看懂最小系统的 5 道裂缝<br>知道后面每一章各补哪一道 |
建议按顺序读:1.1 是直觉,1.2 是准备,1.3 是动手,1.4 是承上启下。
成果与收益
学完本章,你能交付、并讲清这三件事:
1、用一句话讲清 RAG 是什么、为什么需要它
不是背定义,而是能用「闭卷 → 开卷」的直觉,向任何人解释清楚。
2、在本地把一份真实年报跑成带页码的答案
从 PDF 解析、入库,到问出标了 (公司·年份·页码) 的回答,全链路一条命令复跑。
3、说清这套最小系统的能力边界
知道它在哪些题上靠谱、哪些题会塌方,以及后面每一章分别补哪块短板。
贯穿项目
整门课只做一个真实项目:上市公司财报分析问答系统。
- 数据:巨潮资讯网 (cninfo.com.cn) 的公开年报,法定披露、免费、合规;
- 样本:白酒双雄 贵州茅台 vs 五粮液,各取近三年年报(同行业可比、跨年、表格丰富);
- 主栈:TypeScript / Mastra,只有「文档解析」这一环用 Python 服务兜底。
为什么选财报?
因为它把 RAG 的所有难点一次性全占了——表格、多公司多年度、数值准确、必须溯源。
这也是后面每一个面试高频考点的来源。
技术栈速览
细节在 1.1 末尾展开,这里先扫一眼全貌:
| 环节 | 选型 | 一句话理由 |
|---|---|---|
| 框架 | Mastra (TS) | RAG / 评估 / Agent 都是一等公民<br>面向 TS 受众 |
| 文档解析 | MinerU(Python 微服务) | 中文 + 表格最强<br>做成 HTTP 服务边界 |
| 嵌入 | BGE-large-zh(经 API) | 中文年报必须用中文强嵌入 |
| 向量库 | Supabase(Postgres + pgvector)·主库 | 一套库兼做向量 + 元数据过滤<br>本课唯一主库,托管免装、跨平台 |
| 大模型 | DeepSeek | 中文好、便宜<br>经 Mastra 统一接入 |
📎 配套代码仓 · fin-rag ——讲稿里每段核心代码都能在仓库找到对应文件,文中会标出路径(如 src/lib/chunk.ts)。