构建一个生产级别的RAG系统远不止是简单地将向量数据库和LLM拼接起来,它涉及一个复杂的技术栈和众多需要考虑的细节。
下面我将从系统架构的视角,全面且详细地梳理RAG项目所需的技术点。
RAG 系统核心架构图
一个典型的RAG系统可以分为三个主要阶段,每个阶段都有其关键的技术组件:
[ 文档数据 ] -> [ 摄取与索引阶段 ] -> [ 检索阶段 ] -> [ 生成阶段 ] -> [ 最终答案 ]
| | | |
数据源 预处理与嵌入 查询处理与检索 上下文增强与LLM调用
第一阶段:数据摄取与索引
这是RAG系统的基石,决定了系统知识的上限。垃圾进,垃圾出。
1. 数据连接与加载
- 技术点:
- 文档加载器:支持多种格式和来源。
- 文件格式:PDF(
PyPDF2,pdfplumber,Unstructured)、Word、PPT、Excel、HTML、Markdown、TXT。 - 数据源:Notion、Confluence、Jira、Slack、Websites(爬虫:
Scrapy,BeautifulSoup)、数据库(通过SQL查询)。
- 文件格式:PDF(
- 框架支持:LangChain
DocumentLoaders、LlamaIndexReaders。
- 文档加载器:支持多种格式和来源。
2. 文档预处理与清洗
- 技术点:
- 文本清洗:去除无关字符、纠正拼写错误、标准化格式。
- PDF特殊处理:提取文本、表格和图片(OCR:
Tesseract、PaddleOCR)。 - 编码处理:确保统一使用UTF-8等标准编码。
3. 文本分割
这是至关重要的一步,分割质量直接影响检索效果。
- 技术点:
- 分割策略:
- 固定大小:简单的按字符/Token数分割。优点是简单,缺点是可能割裂语义。
- 基于语义:使用
Sentenc
- 分割策略:

最低0.47元/天 解锁文章
7038

被折叠的 条评论
为什么被折叠?



