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]#
- property dialect: str#
返回要使用的SQL方言的字符串表示。
使用 SQLDatabaseToolkit 的示例