При использовании GPT 4 или GPT 3.5 с агентом базы данных SQL выдается исключение OutputParserException: не удалось проанализировать выходные данные LLM:
Я использую агент базы данных SQL для запроса базы данных Postgres. Я хочу использовать модели gpt 4 или gpt 3.5 в файле OpenAI llm, переданном агенту, но там написано, что я должен использовать ChatOpenAI. Использование ChatOpenAI вызывает ошибки синтаксического анализа.
Причина желания сменить модель — снижение стоимости, повышение производительности и самое главное — лимит токенов. Максимальный размер токена для «text-davinci-003» составляет 4 КБ, и мне нужно как минимум вдвое больше.
Вот мой код
from langchain.agents.agent_toolkits import SQLDatabaseToolkit
from langchain.sql_database import SQLDatabase
from langchain.agents import create_sql_agent
from langchain.llms import OpenAI
from langchain.chat_models import ChatOpenAI
import os
os.environ["OPENAI_API_KEY"] = ""
db = SQLDatabase.from_uri(
"postgresql://<my-db-uri>",
engine_args={
"connect_args": {"sslmode": "require"},
},
)
llm = ChatOpenAI(model_name="gpt-3.5-turbo")
toolkit = SQLDatabaseToolkit(db=db, llm=llm)
agent_executor = create_sql_agent(
llm=llm,
toolkit=toolkit,
verbose=True,
)
agent_executor.run("list the tables in the db. Give the answer in a table json format.")
Когда я это делаю, в середине цепочки выдается ошибка, говорящая
> Entering new AgentExecutor chain...
Traceback (most recent call last):
File "/home/ramlah/Documents/projects/langchain-test/sql.py", line 96, in <module>
agent_executor.run("list the tables in the db. Give the answer in a table json format.")
File "/home/ramlah/Documents/projects/langchain/langchain/chains/base.py", line 236, in run
return self(args[0], callbacks=callbacks)[self.output_keys[0]]
File "/home/ramlah/Documents/projects/langchain/langchain/chains/base.py", line 140, in __call__
raise e
File "/home/ramlah/Documents/projects/langchain/langchain/chains/base.py", line 134, in __call__
self._call(inputs, run_manager=run_manager)
File "/home/ramlah/Documents/projects/langchain/langchain/agents/agent.py", line 953, in _call
next_step_output = self._take_next_step(
File "/home/ramlah/Documents/projects/langchain/langchain/agents/agent.py", line 773, in _take_next_step
raise e
File "/home/ramlah/Documents/projects/langchain/langchain/agents/agent.py", line 762, in _take_next_step
output = self.agent.plan(
File "/home/ramlah/Documents/projects/langchain/langchain/agents/agent.py", line 444, in plan
return self.output_parser.parse(full_output)
File "/home/ramlah/Documents/projects/langchain/langchain/agents/mrkl/output_parser.py", line 51, in parse
raise OutputParserException(
langchain.schema.OutputParserException: Could not parse LLM output: `Action: list_tables_sql_db, ''`
Пожалуйста помоги. Спасибо!
Обновить Последние обновления версии langchain.0.0.215
кажется, решил эту проблему, по крайней мере для меня.
1 ответ
проходитьhandle_parsing_errors=True
в функции create_sql_agent в большинстве случаев это помогает коду преодолеть ошибку синтаксического анализа