我正在使用langchain查询postgresql数据库。为此,我使用Claude llm,其API键是anthropic_API_key。我正在使用SQLDatabase.from_uri()方法连接postgresql数据库。
这是我在postgres_db.py文件中的代码
from langchain import SQLDatabase
from constants import anthropic_key
from langchain.chat_models import ChatAnthropic
from langchain_experimental.sql import SQLDatabaseChain
from langchain.agents.agent_toolkits import SQLDatabaseToolkit
from langchain.agents import create_sql_agent
from langchain.agents.agent_types import AgentType
import os
os.environ["ANTHROPIC_API_KEY"] = anthropic_key
API_KEY = anthropic_key
# Setup database
db = SQLDatabase.from_uri(
f"postgresql+psycopg2://postgres:umang123@localhost:5432/delhi_cime_2",
)
# setup llm
llm = ChatAnthropic(temperature=0)
# Create db chain
QUERY = """
Given an input question, first create a syntactically correct postgresql query to run, then look at the results of the query and return the answer.
Use the following format:
"Question": "Question here"
"SQLQuery": "SQL Query to run"
"SQLResult": "Result of the SQLQuery"
"Answer": "Final answer here"
"{question}"
"""
# Setup the database chain
db_chain = SQLDatabaseChain(llm=llm, database=db, verbose=True)
def get_prompt():
print("Type 'exit' to quit")
while True:
prompt = input("Enter a prompt: ")
if prompt.lower() == 'exit':
print('Exiting...')
break
else:
try:
question = QUERY.format(question=prompt)
result = db_chain.run(question)
print(result)
except Exception as e:
print("eeeeeeeeeeeeeeeeeee",e)
pass
get_prompt()
当我执行上述脚本使用python postgres_db.py命令卡在这个错误,我附加作为终端的屏幕截图. SQL查询在这个截图中是正确的,因为当我执行这个查询时,我得到了正确的记录,即数据库中有6条记录,但它只显示1条,这也是一个语法错误。请帮助我解决这个问题。
error on terminal image file
Thanks in advance
1条答案
按热度按时间rkue9o1l1#
你得到的错误是因为解析问题。当你使用不同的链和LLM时,输出解析器是一个问题。
您可以尝试使用DatabaseToolkit