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 (可选[str到Any字典]) – 随意的额外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。
- 返回类型
示例
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)