langchain_community.agent_toolkits.sql.toolkit.SQLDatabaseToolkit

class langchain_community.agent_toolkits.sql.toolkit.SQLDatabaseToolkit[source]

基类: BaseToolkit

与SQL数据库交互的SQLDatabaseToolkit。

设置

安装 langchain-community

pip install -U langchain-community
关键初始化参数
db: SQLDatabase

SQL数据库。

llm: BaseLanguageModel

语言模型(与QuerySQLCheckerTool协同使用)

实例化
from langchain_community.agent_toolkits.sql.toolkit import SQLDatabaseToolkit
from langchain_community.utilities.sql_database import SQLDatabase
from langchain_openai import ChatOpenAI

db = SQLDatabase.from_uri("sqlite:///Chinook.db")
llm = ChatOpenAI(temperature=0)

toolkit = SQLDatabaseToolkit(db=db, llm=llm)
工具
toolkit.get_tools()
在代理中使用
from langchain import hub
from langgraph.prebuilt import create_react_agent

# Pull prompt (or define your own)
prompt_template = hub.pull("langchain-ai/sql-agent-system-prompt")
system_message = prompt_template.format(dialect="SQLite", top_k=5)

# Create agent
agent_executor = create_react_agent(
    llm, toolkit.get_tools(), state_modifier=system_message
)

# Query agent
example_query = "Which country's customers spent the most?"

events = agent_executor.stream(
    {"messages": [("user", example_query)]},
    stream_mode="values",
)
for event in events:
    event["messages"][-1].pretty_print()

通过解析和验证从关键字参数输入的数据来创建一个新的模型。

如果输入数据不能解析为有效的模型,则引发ValidationError。

param db: SQLDatabase [Required]
param llm: BaseLanguageModel [Required]
get_context() dict[source]

返回代理提示中可能需要的db上下文。

返回类型

dict

get_tools() List[BaseTool][source]

获取工具集中的工具。

返回类型

List[BaseTool]

property dialect: str

返回要使用的SQL方言的字符串表示。

使用SQLDatabaseToolkit的示例