langchain.chains.retrieval
.create_retrieval_chain¶
- langchain.chains.retrieval.create_retrieval_chain(retriever: Union[BaseRetriever, Runnable[dict, List[Document]]], combine_docs_chain: Runnable[Dict[str, Any], str]) Runnable [source]¶
创建检索链以检索文档然后传递。
- 参数
retriever (Union[BaseRetriever, Runnable[dict, List[Document]]]) – 返回文档列表的检索对象。应该是 BaseRetriever 的子类或返回文档列表的可运行对象。如果是 BaseRetriever 的子类,则期望传入 input 键,这是将要传递到检索器的内容。如果不是 BaseRetriever 的子类,则所有输入都将传递到这个可运行对象,这意味着可运行对象应接受字典作为输入。
combine_docs_chain (Runnable[Dict[str, Any], str]) – 接受输入并生成字符串输出的可运行对象。此链的任何原始输入、新上下文键(检索到的文档)和一个值为零向量的聊天历史记录(如果不在输入中)将作为输入传递到其中。
- 返回
一个 LCEL 可运行对象。可运行返回的是包含至少 上下文 和 答案 键的字典。
- 返回类型
示例
# pip install -U langchain langchain-community from langchain_community.chat_models import ChatOpenAI from langchain.chains.combine_documents import create_stuff_documents_chain from langchain.chains import create_retrieval_chain from langchain import hub retrieval_qa_chat_prompt = hub.pull("langchain-ai/retrieval-qa-chat") llm = ChatOpenAI() retriever = ... combine_docs_chain = create_stuff_documents_chain( llm, retrieval_qa_chat_prompt ) retrieval_chain = create_retrieval_chain(retriever, combine_docs_chain) chain.invoke({"input": "..."})