检索增强生成(Retrieval Augmented Generation,RAG)是一种技术,可帮助您在使用Claude时处理大型文档。与将整份800页的财务报告塞进单个提示中不同,RAG让您能够智能地查找并仅包含与每个问题最相关的部分。
大型文档带来的问题
假设您有一份庞大的财务文档,并想向Claude询问有关它的具体问题,例如"这家公司有哪些风险因素?"您面临一个根本性的挑战:如何将文档中正确的信息传递给Claude,使其能够有效地回答您的问题?

方案一:将所有内容都放入提示中
第一种方法看起来很直接——从文档中提取所有文本,并将其与用户的问题一起直接塞入您的提示中。

这种方法存在几个问题:
- Claude能处理的文本量存在硬性限制——您的文档可能太长
- 对于非常长的提示,Claude的效果会变差
- 更大的提示会花费更多的钱,并且处理时间更长
方案二:将文档拆分为多个块
第二种方法更为复杂。您在预处理步骤中将文档拆分为较小的块,然后查找并仅包含与每个用户问题相关的块。

其工作原理如下:当用户询问"这家公司面临哪些风险?"时,您会在各个块中进行搜索,找到关于"风险因素"的那一块,并仅将该部分包含在发给Claude的提示中。

分块方法的优势
- Claude可以只专注于最相关的内容
- 可扩展到非常大的文档
- 可处理多个文档
- 更小的提示花费更少、运行更快
分块方法的挑战
- 需要一个预处理步骤来拆分文档
- 需要一种搜索机制来查找"相关"的块
- 所包含的块可能无法包含Claude所需的全部上下文
- 有许多种分块文本的方式——哪种方法最好?
例如,如果您只包含"风险因素"部分,您可能会错过"战略展望"部分中关于公司计划如何应对这些风险的重要上下文。
这就是RAG
方案二就是检索增强生成。尽管RAG较为复杂,但它在处理大型文档方面具有显著优势,不过它也伴随着需要仔细考虑的技术挑战。
RAG的关键组成部分包括:
- 文档预处理与分块
- 用于查找相关块的搜索机制
- 智能选择要包含在提示中的块
在为您的应用考虑使用RAG时,您需要评估其带来的好处是否能够抵消针对您特定用例所增加的复杂性。当处理需要精确、具有上下文的答案的大型文档集合时,这种技术的优势尤为突出,但与仅将整份文档包含在提示中相比,它需要更多的前期工程工作。