2. 金融知识库基础

在动手搭建金融RAG系统之前,必须先理解“喂给系统的原料”和“系统的工作方式”。金融领域对准确性、时效性和可追溯性的要求远高于通用场景,如果直接套用通用RAG方案,往往会在数字、日期、口径上翻车。本节从金融数据特点出发,梳理知识库类型,讲清RAG的基本概念,并与传统检索做系统对比。

一、金融数据的四大特点

金融数据不是普通的自然语言文本,它带有强烈的结构化与语义约束。理解这些特点,决定了后续切分、向量化、检索策略的设计方向。

  • 强时效性:股价、利率、汇率、财报数据随时间快速变化。同一问题在不同日期答案不同,检索时必须携带时间维度,否则会召回过期信息。
  • 高精度要求:“营收增长3.5%”与“3.05%”在金融语境下是完全不同的结论。数字、单位、币种、百分比基数都不能被模糊化处理。
  • 多源异构:数据来源包括PDF财报、公告、新闻、研报、数据库表、API接口等,格式从纯文本到表格、图表混杂,解析难度大。
  • 强专业术语与口径:“净利润”有归母、扣非之分,“不良率”有不同监管口径。术语相近但含义不同,检索时容易混淆。
金融RAG的第一原则:数字与日期不可被语义近似替代。向量检索擅长语义匹配,但对精确数字匹配天然弱势,需要结合关键词或结构化过滤来补足。

二、金融知识库的常见类型

不同知识库类型对应不同的检索与更新策略。实际项目中往往是多种类型混合使用。

知识库类型典型内容更新频率检索要点
文档型知识库财报、招股书、研报、公告PDF低频(季度/事件驱动)按章节切分,保留表格结构
结构化知识库行情数据、财务指标、数据库表高频(实时/每日)精确查询,SQL或API直取
资讯型知识库新闻、快讯、舆情高频(分钟级)时间过滤+语义检索
规则型知识库监管条文、合规规则、产品条款低频但需版本管理条款级切分,保留生效日期

三、RAG基本概念与工作流程

RAG(Retrieval-Augmented Generation,检索增强生成)的核心思想是:先检索、再生成。让大模型在回答前先拿到相关知识片段,从而减少幻觉、提升事实准确性。其基本流程如下:

  1. 索引阶段:将金融文档解析、切分为片段(chunk),通过嵌入模型转为向量,存入向量数据库。
  2. 检索阶段:用户提问转为查询向量,在向量库中做相似度检索,召回Top-K相关片段。
  3. 增强阶段:将召回片段与原始问题拼接为提示词(prompt),注入上下文。
  4. 生成阶段:大模型基于上下文生成答案,并可附带引用来源。
用户问题: "2023年某公司归母净利润是多少?"
  ↓ 查询向量化
向量库检索 Top-K 片段
  ↓ 召回: 财报"主要会计数据"章节片段
Prompt 拼接:
  [上下文] ...归母净利润为 XX 亿元...
  [问题] 2023年某公司归母净利润是多少?
  ↓ LLM 生成
答案: 根据2023年年报,归母净利润为 XX 亿元(来源:年报第X页)

下面用一张图展示金融RAG的整体数据流与关键控制点:

金融RAG数据流与关键控制点 多源金融数据 PDF/公告/行情/新闻 解析与切分 保留表格/日期/口径 向量化索引 嵌入模型+向量库 检索召回 语义+关键词+时间过滤 Prompt增强 上下文+问题拼接 大模型生成 带引用来源 答案输出 数字+日期+出处 关键控制点 时间过滤 · 数字精确匹配 · 口径校验 · 来源可追溯 · 版本管理

四、RAG与传统检索的对比

传统检索(如关键词搜索、SQL查询)与RAG并非替代关系,而是互补关系。理解差异有助于在金融场景中做正确的技术选型。

维度传统检索RAG检索增强生成
匹配方式关键词/布尔/精确匹配语义向量相似度匹配
输出形式文档列表或数据行自然语言答案+引用
数字精度高(精确匹配)依赖上下文,需额外校验
语义理解弱,依赖同义词配置强,可理解近义表达
时效处理需手动加时间条件可结合元数据过滤
可解释性高,结果直接可见中,需追溯召回片段
在金融场景中,最佳实践通常是混合检索:用向量检索解决语义召回,用关键词/BM25解决精确数字与术语匹配,再用结构化过滤处理时间和口径,最后交给大模型生成带引用的答案。

五、常见误区与复盘

  • 误区一:把RAG当成万能问答。对于“当前股价是多少”这类实时结构化问题,直接查API比RAG更准更快。
  • 误区二:切分时不保留表格和日期。财报中的数字往往在表格里,切碎后语义丢失,导致召回片段无法支撑答案。
  • 误区三:只做向量检索。“3.5%”和“3.05%”在向量空间可能非常接近,必须引入精确匹配或重排序。
  • 误区四:忽略版本与生效日期。监管条文和财报口径会更新,检索时必须按时间过滤,避免用旧规则回答新问题。
复盘建议:在金融RAG项目中,先明确“哪些问题必须精确、哪些可以语义近似”,再设计检索链路。把数字、日期、口径作为一等公民对待,是避免系统性错误的关键。