Skip to main content

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参考:

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曾在比尔·克林顿总统任期下担任驻英国大使,所以答案是比尔·克林顿。

行动:结束[比尔·克林顿]

> 完成链。

'比尔·克林顿'