文章目录
- 1 RAG中的分块技术
-
- 1.1 RAG是什么
- 1.2 分块chunking是什么
- 1.3 分块的重要性
- 1.4 分块的技巧
- 2 固定字符大小分块
-
- 2.1 固定字符大小分块的优缺点
- 2.2 自定义分块代码
- 2.3 LangChain的CharacterTextSplitter
- 3 递归字符文本分割
-
- 3.1 递归字符文本分割的优缺点
- 3.2 LangChain的RecursiveCharacterTextSplitter
- 4 特定文档的拆分
-
- 4.1 特定文档拆分的优缺点
- 4.2 LangChain的MarkdownTextSplitter
- 4.3 LangChain的PythonCodeTextSplitter
- 5 语义分割
-
- 5.1 语义分割的原理
- 5.2 使用嵌入实现语义分割
-
- 5.2.1 文本分割为句子
- 5.2.2 嵌入模型
- 5.2.3 计算余弦距离
- 5.2.4 确定断点创建块
- 6 参考附录
1 RAG中的分块技术
在RAG系统中,可以把分块想象成把一本厚书分成几章,这样一来,阅读和理解就轻松多了。同样地,分块技术把大段复杂的文本拆分成更小、更容易处理的片段,让AI能更快、更准确地理解和处理信息。
1.1 RAG是什么
检索增强生成(RAG)是一种巧妙的方法,它把检索机制和大型语言模型(LLM)结合在了一起。简单来说,就是让AI在生成回答之前,先“翻翻资料”——通过检索相关文档来增强自己的能力。这样一来,AI给出的回答不仅更准确,还能带上更多上下文信息,显得更有深度和针对性。
1.2 分块chunking是什么
分块,说白了就是把一大段文字“切”成更小、更容易处理的片段。
这个过程主要分两步走:
第一步:数据准备
首先