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