langchain.chains.combine_documents.stuff.create_stuff_documents_chain

langchain.chains.combine_documents.stuff.create_stuff_documents_chain(llm: Runnable[Union[PromptValue, str, Sequence[Union[BaseMessage, List[str], Tuple[str, str], str, Dict[str, Any]]]], Union[BaseMessage, str]], prompt: BasePromptTemplate, *, output_parser: Optional[BaseOutputParser] = None, document_prompt: Optional[BasePromptTemplate] = None, document_separator: str = '\n\n', document_variable_name: str = 'context') Runnable[Dict[str, Any], Any][source]

为将文档列表传递给模型创建一个链。

参数
  • llm (Runnable[Union[PromptValue, str, Sequence[Union[BaseMessage, List[str], Tuple[str, str], str, Dict[str, Any]]]], Union[BaseMessage, str]]) - 语言模型。

  • 提示 (BasePromptTemplate) – 提示模板。必须包含输入变量“context”(通过设置document_variable进行覆盖),这将被用于传递格式化的文档。

  • output_parser (可选[BaseOutputParser]) – 输出解析器。默认为StrOutputParser。

  • document_prompt (可选[BasePromptTemplate]) – 用于将每个文档格式化为字符串的提示。输入变量可以是“page_content”或所有文档中存在的任何元数据键。“page_content”将自动检索Document.page_content,而所有其他输入变量将自动从Document.metadata字典中检索。默认为只包含Document.page_content的提示。

  • document_separator (字符串) – 用于格式化文档字符串之间的字符串分隔符。

  • document_variable_name (字符串) – 用于提示中格式化文档的变量名称。默认为“context”。

返回

一个 LCEL 可执行对象。输入是一个字典,它必须有一个“context”键,它映射到一个 List[Document],以及在任何提示中预期的其他输入变量。Runnable 返回类型取决于使用的 output_parser。

返回类型

Runnable[Dict[str, Any], Any]

示例

# pip install -U langchain langchain-community

from langchain_community.chat_models import ChatOpenAI
from langchain_core.documents import Document
from langchain_core.prompts import ChatPromptTemplate
from langchain.chains.combine_documents import create_stuff_documents_chain

prompt = ChatPromptTemplate.from_messages(
    [("system", "What are everyone's favorite colors:\n\n{context}")]
)
llm = ChatOpenAI(model="gpt-3.5-turbo")
chain = create_stuff_documents_chain(llm, prompt)

docs = [
    Document(page_content="Jesse loves red but not yellow"),
    Document(page_content = "Jamal loves green but not as much as he loves orange")
]

chain.invoke({"context": docs})

使用 create_stuff_documents_chain 的示例