使用LangChain的SQLDatabaseSequentialChain操作大型结构化数据库时,生成带Markdown代码块的SQL导致执行报错的问题咨询
使用LangChain的SQLDatabaseSequentialChain操作大型结构化数据库时,生成带Markdown代码块的SQL导致执行报错的问题咨询
大家好,我最近在用LangChain的SQLDatabaseSequentialChain处理PostgreSQL数据库查询时碰到了个棘手的问题:生成的SQL语句被自动套上了Markdown代码块格式(也就是sql开头、结尾的那种),结果直接传给SQLAlchemy执行的时候触发了语法错误,完全跑不起来。
错误信息
File "/home/dkrnd/projects/llm_learn/.venv/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 941, in do_execute cursor.execute(statement, parameters) sqlalchemy.exc.ProgrammingError: (psycopg2.errors.SyntaxError) syntax error at or near "```" LINE 1: ```sql ^ [SQL: ```sql SELECT COUNT(*) AS user_count FROM users; ```]
当前代码配置
from langchain.chains import SQLDatabaseSequentialChain from langchain_community.utilities import SQLDatabase db = SQLDatabase.from_uri("postgresql://...") llm = ChatOpenAI(model="gpt-4o-mini", temperature=0.0) chain = SQLDatabaseSequentialChain.from_llm( llm=llm, database=db, verbose=True ) # 执行这行时生成的SQL会带Markdown格式符号 response = chain.invoke({"query": "How many user are there?"})
有没有朋友遇到过类似的情况?或者知道怎么让模型生成纯SQL语句,不带那些额外的Markdown格式符号?
备注:内容来源于stack exchange,提问作者Nathan Aurelius
相关产品推荐
相关产品推荐

