我尝试执行 langchain 代理。我想将 verbose 的输出保存到一个变量中,但我可以从 agent.run 访问的只是最终答案。
如何将详细输出保存到变量中以便以后使用?
我的代码:
import json
from langchain.agents import load_tools
from langchain.agents import initialize_agent
from langchain.agents import AgentType
from langchain.llms import OpenAI
from langchain.agents import Tool
from langchain.utilities import PythonREPL
llm = OpenAI(temperature=0.1)
## Define Tools
python_repl = PythonREPL()
tools = load_tools(["python_repl", "llm-math"], llm=llm)
agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True)
response = agent.run("What is 3^2. Use calculator to solve.")
我尝试访问代理的响应,但这只是最终答案,而不是详细输出。
打印响应仅给出 9。但我想要详细的过程,例如:
> Entering new AgentExecutor chain...
I need to use the calculator to solve this.
Action: Calculator
Action Input: 3^2
Observation: Answer: 9
Thought: I now know the final answer.
Final Answer: 9
我没有找到任何 API 将详细输出保存为变量。
但是,我认为可以通过访问此链接中的中间步骤来实现该问题的替代解决方案。
就这样设置了
return_intermediate_steps=True
,
agent = initialize_agent(
tools,
llm,
agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
verbose=True,
return_intermediate_steps=True
)
并使用
response = agent({"input":"What is 3^2. Use calculator to solve"})
代替 agent.run
。
最后,您可以访问
response["intermediate_steps"]
中的中间步骤
希望这会有所帮助。