ValidationError: 1 validation error for SQLDatabaseToolkit llm value is not a valid dict
题意 :ValidationError: SQLDatabaseToolkit 的 llm 值不是一个有效的字典。
问题背景:
Trying to conenct postgresql with langchain.llm used - AzureOpenAI
尝试使用 langchain.llm 连接 PostgreSQL,使用的语言模型是 AzureOpenAI。
from langchain.llms import AzureOpenAI
llms = AzureOpenAI( temperature=0,deployment_name="gpt3turbo".......)
toolkit = SQLDatabaseToolkit(db=db,llm=llms)
Error: 错误信息:
ValidationError: 1 validation error for SQLDatabaseToolkit
llm
value is not a valid dict (type=type_error.dict)
Tried different versions of langchain
尝试了不同版本的 langchain。
问题解决:
See if all the steps are correct from the beginning.
检查从一开始的所有步骤是否正确。
install packages 安装包
pip install langchain
pip install openai
pip install psycopg2
Next create a python file called main.py and import the following:
接下来,创建一个名为 main.py 的 Python 文件,并导入以下内容:
from langchain.agents import create_sql_agent
from langchain.agents.agent_toolkits import SQLDatabaseToolkit
from langchain.sql_database import SQLDatabase
from langchain.llms.openai import OpenAI
from langchain.agents import AgentExecutor
from langchain.agents.agent_types import AgentType
from langchain.chat_models import ChatOpenAI
Connect to database: 连接到数据库
pg_uri = f"postgresql+psycopg2://{username}:{password}@{host}:{port}/{mydatabase}"
Set database: 设置数据库
db = SQLDatabase.from_uri(pg_uri)
Once you have your OPENAI_API_KEY:
一旦你有了你的 OPENAI_API_KEY:
OPENAI_API_KEY = "your OpenAI key"
Define your llm model: 定义你的 llm 模型
gpt = OpenAI(temperature=0, openai_api_key=OPENAI_API_KEY, model_name='gpt-3.5-turbo')
Toolkit should be: Toollit 应该是:
toolkit = SQLDatabaseToolkit(db=db, llm=gpt)
Information on Agent types : 代理类型的信息: https://python.langchain.com/docs/modules/agents/agent_types/
Credit to @DishenWang for the complete article: 感谢 @DishenWang 提供完整文章:

