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:用于代理的语言模型。如果agent_type为“tool-calling”,则期望llm支持工具调用。 toolkit:SQLDatabaseToolkit供代理使用。必须提供“toolkit”或“db”中的一个。如果要为代理和工具包使用不同的模型,请指定“toolkit”。 agent_type:其中之一为“tool-calling”,“openai-tools”,“openai-functions”或“zero-shot-react-description”。默认为“zero-shot-react-description”。“tool-calling”推荐使用而不是传统的“openai-tools”和“openai-functions”类型。 callback_manager:已弃用。将“callbacks”键传递给’agent_executor_kwargs’,以将构造函数回调传递给AgentExecutor。 prefix:提示前缀字符串。必须包含变量“top_k”和“dialect”。 suffix:提示后缀字符串。默认取决于代理类型。 format_instructions:传递给ZeroShotAgent.create_prompt()的格式说明,当’agent_type’为“zero-shot-react-description”时使用。否则忽略。 input_variables:已弃用。 top_k:默认查询的行数。 max_iterations:传递给AgentExecutor init。 max_execution_time:传递给AgentExecutor init。 early_stopping_method:传递给AgentExecutor init。 verbose:AgentExecutor的详细程度。 agent_executor_kwargs:任意额外的AgentExecutor参数。 extra_tools:除SQLDatabaseToolkit提供的工具之外,还要为代理提供的额外工具。 db:用于创建SQLDatabaseToolkit的SQLDatabase。使用’db’和’llm’创建工具包。必须提供“db”或“toolkit”中的一个。 prompt:完整的代理提示。prompt和{prefix,suffix,format_instructions,input_variables}是互斥的。 **kwargs:任意额外的Agent参数。

返回:

具有指定agent_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)

Parameters
  • llm (BaseLanguageModel) –

  • toolkit (Optional[SQLDatabaseToolkit]) –

  • agent_type (Optional[Union[AgentType, Literal['openai-tools', 'tool-calling']]]) –

  • callback_manager (Optional[BaseCallbackManager]) –

  • prefix (Optional[str]) –

  • suffix (Optional[str]) –

  • format_instructions (Optional[str]) –

  • input_variables (Optional[List[str]]) –

  • top_k (int) –

  • max_iterations (Optional[int]) –

  • max_execution_time (Optional[float]) –

  • early_stopping_method (str) –

  • verbose (bool) –

  • agent_executor_kwargs (Optional[Dict[str, Any]]) –

  • extra_tools (Sequence[BaseTool]) –

  • db (Optional[SQLDatabase]) –

  • prompt (Optional[BasePromptTemplate]) –

  • kwargs (Any) –

Return type

AgentExecutor

Examples using create_sql_agent