ReAct文档存储
本教程演示了如何使用代理实现与文档存储相关的ReAct逻辑。
from langchain import OpenAI, Wikipedia
from langchain.agents import initialize_agent, Tool
from langchain.agents import AgentType
from langchain.agents.react.base import DocstoreExplorer
docstore = DocstoreExplorer(Wikipedia())
tools = [
Tool(
name="搜索",
func=docstore.search,
description="当您需要进行搜索时有用",
),
Tool(
name="查找",
func=docstore.lookup,
description="当您需要进行查找时有用",
),
]
llm = OpenAI(temperature=0, model_name="text-davinci-002")
react = initialize_agent(tools, llm, agent=AgentType.REACT_DOCSTORE, verbose=True)
API参考:
- initialize_agent 来自
langchain.agents
- Tool 来自
langchain.agents
- AgentType 来自
langchain.agents
- DocstoreExplorer 来自
langchain.agents.react.base
question = "作者David Chanoff与哪位美国海军上将合作,后者曾担任哪位总统的驻英国大使?"
react.run(question)
> 进入新的AgentExecutor链...
思考:我需要搜索David Chanoff并找到他合作过的美国海军上将。然后我需要找出该上将在哪位总统任期下担任驻英国大使。
行动:搜索[David Chanoff]
观察:David Chanoff是一位著名的非虚构作品作者。他的作品通常涉及与作品主要主角的合作。他的合作伙伴包括:Augustus A. White、Joycelyn Elders、Đoàn Văn Toại、William J. Crowe、Ariel Sharon、Kenneth Good和Felix Zandman。他还为《华盛顿邮报》、《新共和》和《纽约时报杂志》撰写了关于文学史、教育和外国事务等各种主题的文章。他已出版了十多本书。
思考:David Chanoff合作的美国海军上将是William J. Crowe。我需要找出他在哪位总统任期下担任驻英国大使。
行动:搜索[William J. Crowe]
观察:William James Crowe Jr.(1925年1月2日 - 2007年10月18日)是一位美国海军上将和外交官,曾在罗纳德·里根总统和乔治·赫伯特·沃克·布什总统任期下担任第11任参谋长联席会议主席,并在比尔·克林顿总统任期下担任驻英国大使和情报监督委员会主席。
思考:William J. Crowe曾在比尔·克林顿总统任期下担任驻英国大使,所以答案是比尔·克林顿。
行动:结束[比尔·克林顿]
> 完成链。
'比尔·克林顿'