使用SQLDatabaseChain构建的agent,根据数据库回答问题
注意langchain高版本不支持写入数据库,示例langchain==0.1.16
from langchain_experimental.sql import SQLDatabaseChain
from langchain.utilities import SQLDatabase
from langchain_community.llms.tongyi import Tongyi
from langchain.agents import create_sql_agent
from langchain.agents.agent_toolkits import SQLDatabaseToolkit
from langchain.agents.agent_types import AgentType
# 初始化语言模型
llm = Tongyi(
model='qwen-turbo',
temperature=0.2,
top_p=0.7,
streaming=True
)
# 连接到数据库
db = SQLDatabase.from_uri('mysql+pymysql://root:123456@localhost:3306/test')
# db = SQLDatabase.from_uri("sqlite:///db/Chinook.db")
# 创建 SQLDatabaseToolkit 实例
toolkit = SQLDatabaseToolkit(db=db, llm=llm)
# 创建 SQL 代理
agent_executor = create_sql_agent(
llm=llm,
toolkit=toolkit,
verbose=True,
agent_type=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
)
agent_executor.run('创建stu表,包括用户名name和密码password两个列')