create_sql_agent#

langchain_community.agent_toolkits.sql.base.create_sql_agent(llm: BaseLanguageModel, toolkit: SQLDatabaseToolkit | None = None, agent_type: AgentType | Literal['openai-tools', 'tool-calling'] | None = None, callback_manager: BaseCallbackManager | None = None, prefix: str | None = None, suffix: str | None = None, format_instructions: str | None = None, input_variables: List[str] | None = None, top_k: int = 10, max_iterations: int | None = 15, max_execution_time: float | None = None, early_stopping_method: str = 'force', verbose: bool = False, agent_executor_kwargs: Dict[str, Any] | None = None, extra_tools: Sequence[BaseTool] = (), *, db: SQLDatabase | None = None, prompt: BasePromptTemplate | None = None, **kwargs: Any) AgentExecutor[source]#

从LLM和工具包或数据库构建一个SQL代理。

Parameters:
  • llm (BaseLanguageModel) – 用于代理的语言模型。如果代理类型是“工具调用”,则llm需要支持工具调用。

  • toolkit (可选[SQLDatabaseToolkit]) – 代理使用的SQLDatabaseToolkit。必须提供‘toolkit’或‘db’中的一个。如果你想为代理和工具包使用不同的模型,请指定‘toolkit’。

  • agent_type (可选[联合[AgentType, 字面量['openai-tools', 'tool-calling']]]) – 可以是“tool-calling”、“openai-tools”、“openai-functions”或“zero-shot-react-description”之一。默认为“zero-shot-react-description”。建议使用“tool-calling”而不是旧的“openai-tools”和“openai-functions”类型。

  • callback_manager (可选[BaseCallbackManager]) – 已弃用。请将“callbacks”键传递到‘agent_executor_kwargs’中,以将构造函数回调传递给AgentExecutor。

  • prefix (可选[str]) – 提示前缀字符串。必须包含变量“top_k”和“dialect”。

  • suffix (可选[str]) – 提示后缀字符串。默认值取决于代理类型。

  • format_instructions (Optional[str]) – 当‘agent_type’为“zero-shot-react-description”时,传递给ZeroShotAgent.create_prompt()的格式化指令。否则忽略。

  • input_variables (可选[列表[字符串]]) – 已弃用。

  • top_k (int) – 默认查询的行数。

  • max_iterations (可选[int]) – 传递给 AgentExecutor 初始化。

  • max_execution_time (可选[float]) – 传递给 AgentExecutor 初始化。

  • early_stopping_method (str) – 传递给AgentExecutor初始化。

  • verbose (bool) – AgentExecutor 的详细程度。

  • agent_executor_kwargs (Optional[Dict[str, Any]]) – 任意额外的AgentExecutor参数。

  • extra_tools (Sequence[BaseTool]) – 除了SQLDatabaseToolkit自带的工具之外,额外提供给代理的工具。

  • db (可选[SQLDatabase]) – 用于创建 SQLDatabaseToolkit 的 SQLDatabase。工具包是使用 'db' 和 'llm' 创建的。必须提供 'db' 或 'toolkit' 中的一个。

  • prompt (可选[BasePromptTemplate]) – 完整的代理提示。prompt 和 {prefix, suffix, format_instructions, input_variables} 是互斥的。

  • **kwargs (Any) – 任意额外的代理参数。

Returns:

一个具有指定agent_type代理的AgentExecutor。

Return type:

AgentExecutor

示例

from langchain_openai import ChatOpenAI
from langchain_community.agent_toolkits import create_sql_agent
from langchain_community.utilities import SQLDatabase

db = SQLDatabase.from_uri("sqlite:///Chinook.db")
llm = ChatOpenAI(model="gpt-3.5-turbo", temperature=0)
agent_executor = create_sql_agent(llm, db=db, agent_type="tool-calling", verbose=True)

使用 create_sql_agent 的示例