Chain
在LLM的上下文中,“链”指的是对语言模型进行的一系列调用。它允许使用一个调用的输出作为另一个调用的输入。不同类型的链允许不同级别的复杂性。链在创建piplines和执行特定场景时非常有用。
CombineDocsChain
CombineDocsChain 结合了多种方法,用于合并或聚合已加载的文档以进行问答功能。
参数
LLM:链中使用的语言模型。
chain_type:要使用的链类型。每种类型都应用不同的“组合策略”。
stuff:文档链中最直接的一种,“stuff”(填充)文档链会取一个文档列表,将它们全部插入到提示中,并将该提示传递给 LLM。这种链适用于文档较小且大多数调用只传递少数几个文档的应用。
map_reduce:map-reduce 文档链首先对每个文档单独应用 LLM 链(Map 步骤),将链输出视为新文档。然后将所有新文档传递给单独的组合文档链以获得单一输出(Reduce 步骤)。如果必要,可以先压缩或折叠映射的文档以确保它们适合组合文档链(这通常会将它们传递给 LLM)。如果必要,此压缩步骤会递归执行。
map_rerank:map re-rank 文档链在每个文档上运行初始提示,不仅尝试完成任务,还对其答案的确定性给出评分。返回得分最高的响应。
refine:refine 文档链通过循环输入文档并迭代更新其答案来构建响应。对于每个文档,它将所有非文档输入、当前文档和最新的中间答案传递给 LLM 链以获得新答案。
由于 Refine 链一次只传递单个文档给 LLM,因此非常适合需要分析的文档数量超过模型上下文可以容纳的任务。明显的权衡是,这种链将进行远比例如 Stuff 文档链更多的 LLM 调用。还有一些任务在迭代过程中难以完成。例如,当文档频繁相互引用或任务需要许多文档的详细信息时,Refine 链的表现可能不佳。
ConversationChain
ConversationChain 是一个用于与语言模型进行交互式对话的简单链,非常适合聊天机器人或虚拟助手。它允许进行动态对话、问答和复杂对话。
参数
LLM:链中使用的语言模型。
Memory:默认内存存储。
input_key:用于指定将用户输入存储在对话内存中的键。它允许您将用户的输入提供给链以进行处理并生成响应。
output_key:用于指定将生成的响应存储在对话内存中的键。它允许您使用指定的键检索响应。
verbose:此参数用于控制链输出的详细程度。当设置为 True 时,它将打印链运行时的一些内部状态,这有助于调试和理解链的行为。如果设置为 False,它将抑制详细输出——默认为 False。
ConversationalRetrievalChain
ConversationalRetrievalChain 对话检索链通过结合文档搜索和问答功能来提取信息并提供答案。
参数
LLM:链中使用的语言模型。
Memory:默认内存存储。
Retriever:用于获取相关文档的检索器。
chain_type:要使用的链类型。每种类型都应用不同的“组合策略”。
stuff:文档链中最直接的一种,“stuff”(填充)文档链会取一个文档列表,将它们全部插入到提示中,并将该提示传递给 LLM。这种链适用于文档较小且大多数调用只传递少数几个文档的应用。
map_reduce:map-reduce 文档链首先对每个文档单独应用 LLM 链(Map 步骤),将链输出视为新文档。然后将所有新文档传递给单独的组合文档链以获得单一输出(Reduce 步骤)。如果必要,可以先压缩或折叠映射的文档以确保它们适合组合文档链(这通常会将它们传递给 LLM)。如果必要,此压缩步骤会递归执行。
map_rerank:map re-rank 文档链在每个文档上运行初始提示,不仅尝试完成任务,还对其答案的确定性给出评分。返回得分最高的响应。
refine:refine 文档链通过循环输入文档并迭代更新其答案来构建响应。对于每个文档,它将所有非文档输入、当前文档和最新的中间答案传递给 LLM 链以获得新答案。
return_source_documents:用于指定是否在输出中包含用于回答问题的源文档。当设置为 True 时,源文档将与生成的答案一起包含在输出中。这对于向用户提供额外的上下文或参考很有用——默认为 True。
verbose:是否以详细模式运行。在详细模式下,中间日志将打印到控制台——默认为 False。
LLMChain
LLMChain 是一个简单的链,围绕语言模型增加功能。它将提示模板与语言模型结合使用。使用它时,创建输入变量来格式化提示模板。格式化后的提示然后发送给语言模型,生成的输出作为 LLMChain 的结果返回。
参数
LLM:链中使用的语言模型。
Memory:默认的内存存储。
Prompt:链中使用的提示模板对象。
utput_key:此参数用于指定应将 LLM 输出字典中的哪个键作为最终输出返回。默认情况下,LLMChain 返回输入和输出键值——默认为 text。
verbose:是否以详细模式运行。在详细模式下,中间日志将打印到控制台——默认为 False。
LLMMathChain
LLMMathChain 结合了语言模型(LLM)和数学计算组件。它允许用户输入数学问题并获得相应的解决方案。
LLMMathChain 通过使用语言模型和 LLMChain 理解输入的数学问题并生成数学表达式。然后将此表达式传递给数学组件,该组件评估它并返回结果。
参数
LLM:链中使用的语言模型。
LLMChain:链中使用的 LLM Chain。
Memory:默认的内存存储。
input_key:用于指定数学计算的输入值。它允许您提供要在计算中使用的特定值或变量——默认为 question。
output_key:用于指定将数学计算的输出存储在哪个键下。它允许您使用指定的键检索计算结果——默认为 answer。
verbose:是否以详细模式运行。在详细模式下,中间日志将打印到控制台——默认为 False。
RetrievalQA
RetrievalQA 是一个用于查找相关文档或信息以回答给定查询的链。检索器负责根据查询返回相关文档,然后 QA 组件从这些文档中提取答案。检索 QA 系统结合了检索器和 QA 组件的功能,以提供用户查询的准确和相关答案。
参数
Combine Documents Chain:用于组合文档的链。
Memory:默认的内存存储。
Retriever:用于获取相关文档的检索器。
input_key:此参数用于指定输入数据中包含问题的键。它用于从输入数据中检索问题并将其传递给问答模型以生成答案——默认为 query。
output_key:此参数用于指定输出数据中将存储生成答案的键。在问答模型生成答案后,它用于从输出数据中检索答案——默认为 result。
return_source_documents:用于指定是否在输出中包含用于回答问题的源文档。当设置为 True 时,源文档将与生成的答案一起包含在输出中。这对于向用户提供额外的上下文或参考很有用——默认为 True。
verbose:是否以详细模式运行。在详细模式下,中间日志将打印到控制台——默认为 False。
SQLDatabaseChain
SQLDatabaseChain 使用 SQL 数据库查找问题的答案。它通过使用语言模型理解 SQL 查询并生成相应的 SQL 代码来工作。然后将 SQL 代码传递给 SQL 数据库组件,该组件在数据库上执行查询并返回结果。
参数
Db:要连接的 SQL 数据库。
LLM:链中使用的语言模型。
Prompt:将自然语言翻译成 SQL 的提示模板。
Last updated