news 2026/1/25 23:10:15

金融RAG系统全链路实战:从数据解析到智能检索的深度拆解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
金融RAG系统全链路实战:从数据解析到智能检索的深度拆解

这篇文章详细拆解了金融领域RAG系统的构建全流程,包括离线解析(数据入库)和在线问答(实时检索)两大核心链路。文章重点讲解了PDF深度解析、智能文本分块、层级结构重建,以及Query优化、混合检索、领域微调和重排序等策略。强调了解析质量决定系统上限,提供了具体实现方法,帮助读者构建高效精准的金融RAG系统。


开篇

在AI产品的落地中,RAG是知识库的标配,且是Agent应用中的核心组件。尤其是在金融、保险等专业领域,多栏排版、扫描件模糊、跨页表格,以及用户模糊的提问意图,这些非结构化数据带来的挑战,是每一个AI产品经理和技术团队必须攻克的深水区。

这篇文章,是复盘自一套真实的金融RAG实战项目。跳出代码细节,从「离线解析(数据入库)」与「在线问答(实时检索)」这两条核心链路出发,拆解构建RAG系统的底层逻辑。

对于AI产品经理而言,拥有系统性的优化思维至关重要:知道了数据在管道中是如何流动的,才能在产品出现Bad Case时,精准定位是解析出了问题呢,还是检索走了神。

希望这份关于RAG流程的实战梳理,能给正在探索真实项目的你带来一些启发~☺️


全链路架构

做一个RAG产品,首先要建立上帝视角,不能只停留在前端的对话框,还要看透后端的「双流」架构。

RAG系统本质上由两条异步的流水线组成:

1、离线处理流程(数据入库)

👉 这是系统的消化系统。

  • 提取:从PDF、PPT、TXT等异构数据源中提取内容。
  • 向量化:通过Embedding模型将文本转化为向量。
  • 存储:将文本和向量存入向量数据库(如Milvus/ElasticSearch)和关系型数据库(如PostgreSQL)。

2、在线查询流程(实时问答)

👉 这是系统的大脑。

  • 查询处理:对用户Query进行编码、重写和意图识别。
  • 检索:通过语义检索和关键词检索获取相关片段。
  • 生成:LLM基于增强的上下文生成最终回答。

🌟 注意一下~

离线阶段是提前做好知识库的解析;当用户来问问题的时候,就是第二阶段,在线检索。通过这两步操作,最终将用户的问题扩充为:检索回来的精确文本块+用户的原始问题,再一起送给LLM作为user prompt。


离线解析:精细化治理

RAG领域的名言Garbage In, Garbage Out,在金融研报这种专业领域体现的淋漓尽致,解析质量直接决定了系统的上限。

可以从「解析、分块、层级结构」这三个维度进行优化:

1、深度解析:从「看到」到「看懂」

在金融RAG中,PDF解析不能是单纯的文字提取,需要对文档结构进行逆向工程,集成OCR、深度学习布局识别和机器学习文本合并的复杂流水线。👇

(1)视觉化与OCR(让机器“看”到)

金融研报中大量存在扫描件或图片格式的图表。解析的第一步是将PDF页面转化为高分辨率图像。

👉 使用 pdfplumber 将页面转为图像,同时提取原始字符坐标。

如果检测到是扫描件(非电子原生PDF),系统会启动OCR引擎(如Tesseract),识别图像中的文字并生成新的文本框,与原始信息融合。

(2)布局识别(让机器“分类”)

系统需要知道哪块是正文,哪块是页眉,哪块是图表。

👉 调用 LayoutRecognizer(基于深度学习的目标检测模型),对页面进行区域划分。

如上图所示,模型会给不同区域打上标签(Title, Text, Table, Figure等),这解决了多栏排版读乱序的问题:因为这里是按区域读取,而不是按行读取。

(3)表格结构还原

金融数据都在表格里。因此不仅要提取表格里的字,还要还原行列关系。

👉 TableStructureRecognizer会裁剪出表格区域,识别单元格边界,将图片中的表格重构为HTML或结构化数据,确保「表头-数值」对应关系不丢失。

(4)智能文本合并(让机器“连贯”)

这是最体现技术深度的环节。OCR出来的往往是破碎的单字或单行,需要把它们拼成完整的段落。👇

  • 横向合并:将同一行内距离极近的文本框拼接。
  • 纵向合并:基于行距和对齐方式,将同一自然段的多行文本拼接。
  • 基于XGBoost的上下文合并:这是一个高级特性。可以训练一个XGBoost模型,根据文本特征(如是否以句号结尾、行间距、字体大小变化)来预测“下一行是否属于当前段落”。这比写死的规则要准确得多。

2、智能切块:数据入库前的精修

切分不是简单的「每500字切一刀」。错误的切分会斩断语义,导致检索失效。并且在RAG系统中,文档切块是最容易被忽视的,但它却是直接决定检索效果的环节。

切得太碎,模型看不懂上下文;😵

切得太长,检索噪音大且浪费Token。🤯

需要一种从宏观到微观再回归宏观的处理策略。如下图所示,原始文档变成机器可读的向量,需要经历三个关键阶段:

第一步:格式识别与初步解析

系统首先充当一个分拣员🤏,根据文件后缀(.pdf, .docx, .txt等)调用不同的解析器(如PdfParser,DocxParser)。

这一步将文档拆解为自然的段落 (图片中的Sections)。比如一个Word文档中的一个自然段,或者表格中的一个单元格区域。

第二步:碎片化拆分

为了保证后续合并的灵活性,不能直接用段落当Chunk(因为有的段落长达几千字,有的只有几个字)。 因此,我们需要先打碎。利用分隔符(如换行符\n、句号。、感叹号!等)将Section进一步拆解为更小的文本碎片。

这一步的产物是一堆细粒度的句子或短语(如上图绿色部分的“句子1”、“句子2”)。

第三步:基于Token预算的动态合并

这是最核心的一步。我们像装箱子一样,设定一个标准箱子大小(例如 128 Tokens),然后将刚才打碎的句子一个个装进去。

👇 这时就涉及到了一个核心算法:naive_merge。

它的目标是在保持语义连贯性(不把一句话切断)的前提下,最大化利用每个Chunk的容量。

(1)初始化:创建一个空的Chunk容器,设定阈值(例如chunk_token_num = 128)。

(2)循环填装:遍历文本碎片列表,依次拿出碎片。

计算当前Chunk已有的Token数+新碎片的Token数。

  • If ≤ 阈值:装入。将新碎片拼接到当前Chunk中。
  • Else (> 阈值):封箱。当前Chunk已满,将其保存。然后创建一个新Chunk,将这个新碎片作为新Chunk的第一个元素放入。

(3)最终输出:生成最终的Chunks列表。

💡 举个例子:

假设阈值是128。当前Chunk里已经装了120个Token的内容。下一个句子有15个Token。 120 + 15 = 135 > 128。 于是,系统会把这120个Token打包成 Chunk A,然后开启 Chunk B,把这15个Token的句子放进去。

👇 最终交付物

经过上述处理,我们得到的不仅仅是一段段文本字符串,而是一个结构化的对象列表。每个最终的 Chunk 都包含以下关键信息,为后续环节服务:

  • Content:文本块的字符串内容(用于给大模型阅读)。
  • Tokens:分词后的Token列表(用于计算成本和上下文窗口)。
  • Metadata:位置信息(如页码、在原文中的偏移量)。这对于产品界面上展示引用来源至关重要。

❓这时可能会有疑惑:“为什么不直接按字符数切分?或者直接按段落切分呢?”

直接切字符:可能会把「人工智能」切成「人工」和「智能」在两个Chunk里,导致语义崩坏。

直接切段落:有的段落极短,导致生成的向量过于稀疏,检索匹配不到;有的段落极长,超过了Embedding模型的窗口限制。

👉 naive_merge的方案是一种动态平衡:它先利用标点符号保护了句子级的语义完整性,再利用Token计数控制了Chunk的大小颗粒度。这是在工程落地中高性价比的一种方案。

3、重建层级结构与元数据 单纯的文本切片是孤立的,我们需要为每个切片找回它的坐标。 比如,当模型检索到“第3条:赔付金额为50万”这个切片时,如果丢失了它所属的“一级标题:重大疾病险”,模型可能会张冠李戴,把它当成意外险的条款。👇 解决方案:元数据(Metadata)增强。 在解析时维护一个层级栈,给每一个Chunk打上标签:code-snippet__js { "source": "理赔手册.pdf", "page": 5, "section_path": "总则/第二章/第三条", "type": "text" }那么在线问答检索时,就可以让LLM利用这些元数据进行精准过滤(例如:“只看第二章的内容”),或者在回答时准确引用出处。

在线检索:组合优化

有了高质量的数据,下一步是让系统「听懂人话」,并精准找到答案。这需要一套复杂的检索与优化策略。

1、Query理解与优化

用户的问题往往是模糊的(如:“怎么报销?”)。直接检索效果会比较差。

意图识别:判断用户是在查流程、查数据还是闲聊。可通过规则匹配(关键词)或BERT分类模型实现。

Query重写:将口语化的“怎么报销保险费用?”改写为规范的“保险费用报销流程是什么?”,去除冗余词,补全上下文。

Query扩写:引入同义词。比如用户搜“理赔”,系统自动扩展搜索“索赔”、“赔付”,扩大召回范围。

HyDE(假设文档嵌入):对于复杂问题,先让LLM生成一个“假设答案”,再用这个假设答案去检索真实文档,这能显著提升长尾问题的召回率。

2、混合检索

单一的检索方式在金融场景下往往捉襟见肘。😕

向量检索:擅长语义匹配(如“推销”匹配“销售”),但对专有名词(如“A款产品”)不够敏感。

关键词检索(BM25):擅长精确匹配,但无法理解语义。

👉 解决方案:BM25 + 向量检索并行。将两者的得分进行归一化和加权融合(例如:0.6 * 向量分 + 0.4 * BM25分),取长补短。

3、领域微调

通用的Embedding模型(如BGE)可能不懂“保单现金价值”是什么。

策略:使用金融领域的私有数据(问答对、专业术语)对Embedding模型进行微调,拉近专业术语在向量空间中的距离,显著提升召回准确率。

4、重排序(Reranking):精度的最后一道防线

初步检索为了不漏掉信息,通常会召回Top 50甚至Top 100个片段,但这其中包含大量噪声。

Cross-Encoder重排:引入一个更精细的模型,将“用户Query”和“候选文档”拼在一起进行深度打分。

👉 它能识别细微的语义差异。例如查询“最新车险流程”,初步检索可能混入了“2020年旧流程”,重排模型能精准识别出“2023年修订版”更相关,将其排在第一位。

总结来看,检索是一个漏斗模型:

Query优化(扩充漏斗口)-> 混合检索(粗筛)-> 重排序(精选)-> LLM生成。

需要关注每个环节的转化率。通过建立评估指标(如MRR、NDCG、Precision@K),就可以量化出:“引入重排后,Top 3召回率提升了15%”。


​最后

我在一线科技企业深耕十二载,见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事,早已在效率与薪资上形成代际优势,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。

我整理出这套 AI 大模型突围资料包:

  • ✅AI大模型学习路线图
  • ✅Agent行业报告
  • ✅100集大模型视频教程
  • ✅大模型书籍PDF
  • ✅DeepSeek教程
  • ✅AI产品经理入门资料

完整的大模型学习和面试资料已经上传带到CSDN的官方了,有需要的朋友可以扫描下方二维码免费领取【保证100%免费】👇👇
​​

为什么说现在普通人就业/升职加薪的首选是AI大模型?

人工智能技术的爆发式增长,正以不可逆转之势重塑就业市场版图。从DeepSeek等国产大模型引发的科技圈热议,到全国两会关于AI产业发展的政策聚焦,再到招聘会上排起的长队,AI的热度已从技术领域渗透到就业市场的每一个角落。


智联招聘的最新数据给出了最直观的印证:2025年2月,AI领域求职人数同比增幅突破200%,远超其他行业平均水平;整个人工智能行业的求职增速达到33.4%,位居各行业榜首,其中人工智能工程师岗位的求职热度更是飙升69.6%。

AI产业的快速扩张,也让人才供需矛盾愈发突出。麦肯锡报告明确预测,到2030年中国AI专业人才需求将达600万人,人才缺口可能高达400万人,这一缺口不仅存在于核心技术领域,更蔓延至产业应用的各个环节。

​​

资料包有什么?

①从入门到精通的全套视频教程⑤⑥

包含提示词工程、RAG、Agent等技术点

② AI大模型学习路线图(还有视频解说)

全过程AI大模型学习路线

③学习电子书籍和技术文档

市面上的大模型书籍确实太多了,这些是我精选出来的

④各大厂大模型面试题目详解

⑤ 这些资料真的有用吗?

这份资料由我和鲁为民博士共同整理,鲁为民博士先后获得了北京清华大学学士和美国加州理工学院博士学位,在包括IEEE Transactions等学术期刊和诸多国际会议上发表了超过50篇学术论文、取得了多项美国和中国发明专利,同时还斩获了吴文俊人工智能科学技术奖。目前我正在和鲁博士共同进行人工智能的研究。

所有的视频教程由智泊AI老师录制,且资料与智泊AI共享,相互补充。这份学习大礼包应该算是现在最全面的大模型学习资料了。

资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。


智泊AI始终秉持着“让每个人平等享受到优质教育资源”的育人理念‌,通过动态追踪大模型开发、数据标注伦理等前沿技术趋势‌,构建起"前沿课程+智能实训+精准就业"的高效培养体系。

课堂上不光教理论,还带着学员做了十多个真实项目。学员要亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事‌!

​​​​

如果说你是以下人群中的其中一类,都可以来智泊AI学习人工智能,找到高薪工作,一次小小的“投资”换来的是终身受益!

应届毕业生‌:无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。

零基础转型‌:非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界‌。

业务赋能 ‌突破瓶颈:传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型‌。

👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓**

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/18 12:10:08

Kotaemon与TensorRT集成:NVIDIA GPU极致优化

Kotaemon与TensorRT集成:NVIDIA GPU极致优化 在企业级智能服务日益依赖大语言模型的今天,一个核心矛盾愈发突出:用户期待的是秒级响应、精准可追溯的答案,而现实中的RAG系统却常常卡在推理延迟和资源浪费上。尤其是在金融客服、医…

作者头像 李华
网站建设 2026/1/18 22:20:03

基于springboot + vue二手家电管理系统(源码+数据库+文档)

二手家电管理 目录 基于springboot vue畅游游戏销售系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取: 基于springboot vue二手家电管理系统 一、前言 博主介绍&…

作者头像 李华
网站建设 2026/1/25 5:08:30

Kotaemon能否用于政府信息公开查询?便民服务设想

Kotaemon能否用于政府信息公开查询?便民服务设想 在政务服务日益数字化的今天,一个常见的现实是:尽管各级政府网站上公开了海量政策文件,普通市民却常常“看得见、查不到、看不懂”。面对动辄上百页的法规条文和层层嵌套的网页导航…

作者头像 李华
网站建设 2026/1/24 4:00:56

ytDownloader终极教程:一键下载全网视频的完整指南

想要轻松下载在线视频平台、Bilibili等数百个网站的视频内容吗?ytDownloader正是你需要的跨平台视频下载神器!这款基于Electron开发的现代化GUI应用集成了yt-dlp和ffmpeg核心技术,提供免费无广告的完美下载体验。无论你是视频爱好者、内容创作…

作者头像 李华