SQL数据库工具包#

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

基础类:BaseToolkit

SQLDatabaseToolkit 用于与 SQL 数据库交互。

Setup:

安装 langchain-community

pip install -U langchain-community
Key init args:
db: SQLDatabase

SQL数据库。

llm: BaseLanguageModel

语言模型(用于与QuerySQLCheckerTool一起使用)

Instantiate:
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)
Tools:
toolkit.get_tools()
Use within an agent:
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][pydantic_core.ValidationError]。

self 被显式地设为仅位置参数,以允许 self 作为字段名称。

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

返回您可能希望在代理提示中使用的数据库上下文。

Return type:

字典

get_tools() List[BaseTool][source]#

获取工具包中的工具。

Return type:

列表[BaseTool]

property dialect: str#

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

使用 SQLDatabaseToolkit 的示例