如题,我定义了一些工具,也写了一个 agent 可以调用这些工具。但是这个 agent.run() 之后就结束了,无法继续多轮对话。求大佬给一个相关的 demo
非常抱歉,我们的回答中确实缺少了代码输入字符串,这是一个疏忽错误。以下是完整的示例代码:
from langchain.agents import Tool
from langchain.memory import ConversationBufferMemory
from langchain.chat_models import ChatOpenAI
from langchain.utilities import SerpAPIWrapper
from langchain.agents import initialize_agent
from langchain.agents import AgentType
from getpass import getpass
SERPAPI_API_KEY = getpass()
search = SerpAPIWrapper(serpapi_api_key=SERPAPI_API_KEY)
tools = [
Tool(
name="Current Search",
func=search.run,
description="useful for when you need to answer questions about current events or the current state of the world. the input to this should be a single search term."
),
]
memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True)
OPENAI_API_KEY = getpass()
llm=ChatOpenAI(openai_api_key=OPENAI_API_KEY, temperature=0)
agent_chain = initialize_agent(tools, llm, agent=AgentType.CHAT_CONVERSATIONAL_REACT_DESCRIPTION, verbose=True, memory=memory)
agent_chain.run(input="hi, i am bob")
agent_chain.run(input="what's my name?")
agent_chain.run("what are some good dinners to make this week, if i like thai food?")
请确保将[[缺少代码输入字符串]]
替换为您实际的代码输入字符串,以实现您期望的对话行为。此示例将演示一个代理,它可以使用工具回答查询,并支持多轮对话。您可以根据需要添加或删除工具,以符合您的特定应用场景。