langchain_community.agent_toolkits.sql.base.create_sql_agent

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

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

参数
  • llm (BaseLanguageModel) – 为代理使用的语言模型。如果agent_type是“工具调用”则llm预期支持工具调用。

  • 工具包 (可选[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 (可选[str]) – 当`agent_type`为“zero-shot-react-description”时要传递给ZeroShotAgent.create_prompt()的格式说明。否则忽略。

  • input_variables (可选[str列表]) – 已弃用。

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

  • max_iterations (可选[int]) – 传递给AgentExecutor init。

  • max_execution_time (可选[float]) – 传递给AgentExecutor init。

  • early_stopping_method (str) – 传递给AgentExecutor init。

  • verbose (bool) – AgentExecutor振动。

  • agent_executor_kwargs (可选[strAny字典]) – 随意的额外AgentExecutor参数。

  • extra_tools (顺序[BaseTool]) – 在SQLDatabaseToolkit提供的工具之上的额外工具。

  • db (可选[SQLDatabase]) – 从中创建SQLDatabaseToolkit的SQLDatabase。使用`db`和`llm`创建工具包。必须提供下面一个:`db`或`toolkit`。

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

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

返回

具有指定`agent_type`的agent的AgentExecutor。

返回类型

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的示例