这是一个用于分析单个长文档的教程。
分析单个长文档
AnalyzeDocumentChain
接收单个文档,将其分割,然后通过 CombineDocumentsChain
运行。
with open("../docs/docs/modules/state_of_the_union.txt") as f:state_of_the_union = f.read()
from langchain.chains import AnalyzeDocumentChain
from langchain_openai import ChatOpenAIllm = ChatOpenAI(model="gpt-3.5-turbo", temperature=0)
from langchain.chains.question_answering import load_qa_chainqa_chain = load_qa_chain(llm, chain_type="map_reduce")
qa_document_chain = AnalyzeDocumentChain(combine_docs_chain=qa_chain)
qa_document_chain.run(input_document=state_of_the_union,question="what did the president say about justice breyer?",
)
这段代码首先打开并读取一个名为 state_of_the_union.txt
的文档。然后,它设置了 OpenAI 的 ChatOpenAI
语言模型,并加载了一个问答链(qa_chain
),该链的类型设置为 map_reduce
。最后,它创建了一个 AnalyzeDocumentChain
对象,将文档和问题作为输入传递给该对象,以分析文档并回答问题 “总统对 Breyer 法官说了什么?”。
请注意,代码中的 llm
对象是用于生成文本的语言模型,temperature=0
表示生成文本时的创造性较低,更倾向于确定性输出。AnalyzeDocumentChain
是一个处理文档并回答有关文档内容的问题的链。qa_chain
是问答链,用于提取文档中的特定信息。