概述
这些是处理文档的核心链。它们对于总结文档、回答文档问题、从文档中提取信息等很有用。
这些链都实现了一个通用接口:
class BaseCombineDocumentsChain(Chain, ABC):"""Base interface for chains combining documents."""@abstractmethoddef combine_docs(self, docs: List[Document], **kwargs: Any) -> Tuple[str, dict]:"""Combine documents into a single string."""
填充(Stuff)
填充(stuff)文档链是最直接的文档链。它需要一个文档列表,将它们全部插入到Prompt
中,并将该prompt
传递给llm
。
该链非常适合文档较小且大多数调用只传递少量文档的应用程序。
提炼(Refine)
提炼文档链
通过循环输入文档并迭代更新其答案来构建响应。
对于每个文档,它将所有非文档输入、当前文档和最新的中间答案传递给 LLM
链以获得新答案。
map reduce
Map 步骤:MapReduce
文档链首先将 LLM 链
单独应用于每个文档,将链输出视为新文档。
Reduce 步骤:然后,将所有新文档传递到单独的组合文档链以获得单个输出。
它可以选择首先压缩或折叠、映射的文档,以确保它们适合组合文档链(这通常会将它们传递给LLM
)。如有必要,该压缩步骤会递归执行。
Map re-rank
map re-rank
文档链会对每个文档运行初始Prompt
,这不仅会尝试完成任务,还会对其答案的确定性进行评分。返回得分最高的响应。
总结
文本就是讲解对Document的基础操作chain有哪些?
chain | 描述 |
---|---|
stuff chain | 该链非常适合文档较小且大多数调用只传递少量文档的应用程序。 |
Refine chain | 通过循环输入文档并迭代更新其答案来构建响应. |
map reduce chain | 将A文档转换成B文档,然后针对B文档进行输出。 |
Map re-rank chain | 对答案增加了确定下评分。返回得分最高的响应。 |
参考地址:
https://python.langchain.com/docs/modules/chains/document/