我正在尝试将 GPT4All 与 langchain 的 serpapi 代理集成。 但我遇到解析错误。 代理无法解析 llm 输出。
我对 langchain 框架有点陌生。我觉得我在下面的代码片段中遗漏了一些东西。
我相信代理正在期待输出 想法: .... 但没有得到,我可以在这里得到一些帮助吗?
from langchain.llms import GPT4All
from langchain.agents import load_tools
from dotenv import load_dotenv
load_dotenv()
llm = GPT4All(
model="~/.cache/gpt4all/orca-mini-3b-gguf2-q4_0.gguf",
verbose=True,
)
from langchain.agents import load_tools
from langchain.agents import initialize_agent
tools = load_tools(["serpapi"], llm=llm)
agent = initialize_agent(tools, llm, agent="zero-shot-react-description", verbose=True)
agent.run("which club is Cristiano Ronaldo playing right now?")
错误
ValueError: An output parsing error occurred. In order to pass this error back to the agent and have it try again, pass `handle_parsing_errors=True` to the AgentExecutor. This is the error: Could not parse LLM output: ```
这个答案可能为时已晚,无法帮助您,但也许有人会偶然发现这个并发现它有用。我通过使用 ConsoleCallbackHandler 取得了良好的调试进展。它几乎打印出链接元素之间的所有输入和输出。这是一个小例子:
from langchain.callbacks.tracers import ConsoleCallbackHandler
"which club is Cristiano Ronaldo playing right now?"
print(agent.invoke(prompt, config={"callbacks":[ConsoleCallbackHandler()]}))
在代理初始化期间使用handle_parsing_errors=True。当生成的响应与预期格式不匹配时,将进行输出解析。无论您选择什么回调,这种情况都可能发生。通过设置handle_parsing_errors=True,您告诉代理尝试重新生成响应,直到可以正确解析它为止
agent = initialize_agent(
tools = tools,
llm = llmm,
agent="zero-shot-react-description",
verbose=True,
handle_parsing_errors = True
)