檢索增強生成(Retrieval Augmented Generation,RAG)是一種技術,可協助您處理過大而無法放入單一提示中的大型文件。RAG 不是將所有內容塞進一個龐大的提示中,而是將文件分解成區塊,並在回答問題時只包含最相關的部分。
大型文件的問題
想像您有一份 800 頁的財務文件,並想問 Claude 關於它的具體問題,例如「這家公司有哪些風險因素?」您需要以某種方式將文件中的相關資訊傳遞給 Claude,但提示中可以包含的文字量是有限的。

選項一:將所有內容包含在提示中
第一種方法很直接——從文件中提取所有文字,並將其與使用者的問題一起塞入您的提示中。您的提示可能看起來像這樣:
Answer the user's question about the financial document.
<user_question>
{user_question}
</user_question>
<financial_document>
{financial_document}
</financial_document>
這種方法有嚴重的限制:
- 提示長度有硬性限制——您的文件可能太長
- 提示過長時,Claude 的效果會變差
- 較大的提示處理成本更高
- 較大的提示處理時間更長
選項二:將文件分解成區塊
RAG 採用更聰明的方法。首先,您在預處理步驟中將文件分解成較小的區塊。然後,當使用者提出問題時,您找出與其問題最相關的區塊,並只將這些區塊包含在您的提示中。

運作方式如下:如果有人問「這家公司面臨哪些風險?」,您會搜尋您的區塊,找到「風險因素」部分,並只將該相關區塊包含在您的提示中。

RAG 的優點
- Claude 可以只專注於最相關的內容
- 可擴展至非常大型的文件
- 可處理多份文件
- 較小的提示成本更低、執行更快
RAG 的挑戰
- 需要預處理步驟來分塊文件
- 需要搜尋機制來找出「相關」的區塊
- 包含的區塊可能不包含 Claude 所需的所有上下文
- 有許多分塊文字的方式——哪種方法最好?
舉例來說,您可以將文件分割成大小相等的部分,或者您可以根據文件結構(如標題和章節)來建立區塊。每種方法都有需要您針對特定使用案例評估的取捨。
何時使用 RAG
RAG 涉及許多技術決策,並且比單純將所有內容包含在提示中需要更多的工作。您需要分析對於您的特定應用程式而言,這些好處是否超過其複雜性。當處理非常大型的文件、多份文件,或當您需要針對成本和效能進行優化時,RAG 特別有價值。
關鍵的洞見是,RAG 以簡單性換取可擴展性和效率。雖然要正確實作它需要更多的前期工作,但它能讓您處理以簡單的提示填塞方式無法處理的文件集合。