Azure OpenAI LLM连接本地PostgreSQL遇导入错误求助
问题解决:无法导入SQLDatabaseChain及PostgreSQL连接修正
错误核心原因
- 导入路径变更:新版LangChain中,
SQLDatabaseChain已从langchain.sql_database模块迁移至langchain_experimental.sql模块。 - 数据库连接方式错误:
SQLDatabase的初始化参数格式不符合要求,需通过标准数据库URI完成连接。
修正后的完整代码
# 确保依赖已安装/更新 #!pip install langchain psycopg2-binary langchain-experimental openai from langchain.llms import OpenAI from langchain.sql_database import SQLDatabase from langchain_experimental.sql import SQLDatabaseChain # 配置Azure OpenAI环境变量(替换为你的实际参数) import os os.environ["OPENAI_API_TYPE"] = "azure" os.environ["OPENAI_API_VERSION"] = "2023-05-15" # 替换为你的API版本 os.environ["OPENAI_API_KEY"] = "你的Azure OpenAI密钥" os.environ["OPENAI_API_BASE"] = "你的Azure OpenAI端点地址" # PostgreSQL连接参数 host = "localhost" port = 5433 database = "dvdrental" user = "postgres" password = "xxxxxxx" # 构建数据库URI并初始化连接 db_uri = f"postgresql://{user}:{password}@{host}:{port}/{database}" db_conn = SQLDatabase.from_uri(db_uri) # 初始化SQLDatabaseChain llm = OpenAI(temperature=0, model_name="你的Azure OpenAI部署模型名称") db_chain = SQLDatabaseChain.from_llm(llm, db_conn, verbose=True)
关键注意事项
- 导入调整:必须从
langchain_experimental.sql导入SQLDatabaseChain,执行pip install --upgrade langchain-experimental确保依赖为最新版本。 - 数据库URI格式:PostgreSQL标准URI格式为
postgresql://用户名:密码@主机:端口/数据库名,使用SQLDatabase.from_uri()是官方推荐的初始化方式。 - Azure OpenAI配置:需正确设置环境变量指定Azure专属的API参数,初始化
OpenAI时要匹配你的部署模型名称。
内容的提问来源于stack exchange,提问作者Mani
相关产品推荐
相关产品推荐

