你上传的 PDF,AI 是怎么"读懂"的?
前面几篇文章,我们聊了 RAG 的流程、向量数据库、Embedding。这些概念放在一起,其实就是在回答一个问题:你上传一份 PDF,AI 怎么把它变成能回答问题的知识?
今天我们就来把这个过程从头到尾串一遍。
一个完整的流程
假设你手头有一本 300 页的 PDF,内容是公司内部的产品手册。你把它上传到一个 RAG 知识库系统里,然后问:"这个产品的保修期是多久?"
从你上传 PDF 到 AI 回答你的问题,背后发生了三件事:提取文字、切成小块、变成向量存入数据库。下面我们一步步来看。
第一步:把 PDF 变成纯文本
PDF 文件是什么?它本质上是一个"排版好的版面"。里面有文字、有图片、有表格,但这些内容在 PDF 里是以"打印出来好看"的方式存储的,而不是以"方便计算机读取"的方式存储的。
所以第一步,需要把 PDF 里的文字"提取"出来。
这个过程叫"文档解析"。有一套专门的工具来处理这件事,它支持各种格式:PDF、Word、PPT、Excel、Markdown,甚至图片里的文字也能通过 OCR 技术识别出来。
提取出来的结果就是纯文本,没有任何格式,没有任何排版,就是一行一行的文字。
第二步:把长文章切成小块
提取出来的纯文本,可能是一整本 300 页的书,几十万字。
能不能直接把一整本书扔给 AI?不行。
原因有两个:
第一,AI 一次"看"不了那么多。 大模型处理文本的时候,有一个"上下文窗口"的限制。你可以把它理解为 AI 的"短期记忆"——它一次只能记住几千到几万字的内容。超过这个范围,前面的内容就"忘"了。
第二,小块检索更精准。 你想一个问题,通常只跟书中某几页相关,不需要整本书的内容。如果每次都把整本书扔给 AI,它不仅速度慢,而且容易被大量无关信息干扰,找不到重点。
所以第二步,需要把长文本"切成小块"。这个过程叫"分片",英文叫 Chunking。
怎么切呢?打个比方,就像你做读书笔记的时候,不会把整本书抄一遍,而是按章节来总结,每一章记一个要点。分片也是类似的思路:把长文本按一定规则切成一小段一小段的内容。
而且,相邻的小段之间会有一点"重叠"。比如第 1 段是从第 1 句到第 50 句,第 2 段是从第 40 句到第 90 句。为什么要重叠?因为有时候一个完整的意思刚好跨在两个分片之间,如果不重叠,这个意思就被切断了。
第三步:把每个小块变成向量
切好之后,每一小段内容都要变成向量。这就是我们之前聊过的 Embedding。
还记得 Embedding 是什么吗?就是把一段文字转换成一串数字。这串数字代表了这段文字在"语义地图"上的位置。
比如有一段文字是:"该产品的保修期为两年,自购买之日起计算。"
经过 Embedding 之后,它就变成了一个 768 位的数字列表。这个数字列表就是这段文字的"语义坐标"。
然后,这段文字和它的向量坐标一起,被存进向量数据库。
第四步:提问时,检索相关内容
现在,知识库已经准备好了。你问了一个问题:"这个产品的保修期是多久?"
系统会做以下事情:
把你的问题也变成向量(用同样的 Embedding 方法)。 在向量数据库里搜索,找到跟你的问题向量"距离最近"的那几个文档片段。 因为"保修期"和"保修期为两年"在语义地图上离得很近,系统就能精准地找到那条"该产品的保修期为两年,自购买之日起计算"。
全流程回顾
让我们从头串一遍:
你上传 PDF 系统提取 PDF 中的文字,变成纯文本 系统把长文本切成一小段一小段(每段几百字,段与段之间有一点重叠) 每一段都通过 Embedding 变成一串数字(向量) 这些向量和对应的原文一起存入向量数据库 你提问时,问题也被变成向量 在向量数据库里找到最相似的几个片段 把这些片段和你的问题一起发给 AI AI 基于这些片段生成回答
整个过程,对你来说只是在聊天的对话框里输入了一句话。但背后,AI 已经帮你做了这么多事情。
小结
今天我们串起了 RAG 知识库的完整工作流程,核心就是三步:
- 提取
:把 PDF 变成纯文本 - 分片
:把长文本切成小块,块与块之间有一点重叠 - 向量化
:把每个小块变成向量,存入向量数据库
这三步完成之后,你的知识库就建好了。以后不管你问什么问题,AI 都能先查资料再回答,而不是凭空编造。
最后一篇文章,我们来聊聊一个更实际的话题:作为一个大一新生,在 AI 时代应该学什么?
下一篇预告:AI 时代,大一新生应该学什么?
夜雨聆风