分析文档(Analyze Document)
AnalyzeDocumentChain可以作为一个端到端的链条使用。该链条接收一个单一的文档,将其拆分,并通过CombineDocumentsChain进行处理。
with open("../../state_of_the_union.txt") as f:
state_of_the_union = f.read()
摘要
让我们来看一下它的实际应用,使用它来摘要一篇长文档。
from langchain import OpenAI
from langchain.chains.summarize import load_summarize_chain
llm = OpenAI(temperature=0)
summary_chain = load_summarize_chain(llm, chain_type="map_reduce")
from langchain.chains import AnalyzeDocumentChain
summarize_document_chain = AnalyzeDocumentChain(combine_docs_chain=summary_chain)
summarize_document_chain.run(state_of_the_union)
"""
在这篇演讲中,拜登总统向美国人民和全世界发表讲话,讨论了俄罗斯弗拉基米尔·普京在乌克兰的最近侵略行为以及美国的回应。他概述了对普京采取经济制裁和其他措施以追究其责任,并宣布美国司法部成立了一个特别小组来追查俄罗斯寡头的犯罪行为。他还宣布了打击通货膨胀、降低家庭成本、投资美国制造业以及向乌克兰提供军事、经济和人道援助的计划。他呼吁进行移民改革,保护妇女权益,推进LGBTQ+美国人的权益,并向军人家庭致敬。他以对美国未来的乐观作结。
"""
问答
让我们来看一下使用问答链条的例子。
from langchain.chains.question_answering import load_qa_chain
qa_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="总统对布雷耶法官说了什么?")
"""
总统感谢布雷耶法官的服务。
"""