langchain_experimental.agents.agent_toolkits.pandas.base
.create_pandas_dataframe_agent¶
- langchain_experimental.agents.agent_toolkits.pandas.base.create_pandas_dataframe_agent(llm: Runnable[Union[PromptValue, str, Sequence[Union[BaseMessage, List[str], Tuple[str, str], str, Dict[str, Any]]]], Union[BaseMessage, str]], df: Any, agent_type: Union[AgentType, Literal['openai-tools', 'tool-calling']] = AgentType.ZERO_SHOT_REACT_DESCRIPTION, callback_manager: Optional[BaseCallbackManager] = None, prefix: Optional[str] = None, suffix: Optional[str] = None, input_variables: Optional[List[str]] = None, verbose: bool = False, return_intermediate_steps: bool = False, max_iterations: Optional[int] = 15, max_execution_time: Optional[float] = None, early_stopping_method: str = 'force', agent_executor_kwargs: Optional[Dict[str, Any]] = None, include_df_in_prompt: Optional[bool] = True, number_of_head_rows: int = 5, extra_tools: Sequence[BaseTool] = (), engine: Literal['pandas', 'modin'] = 'pandas', allow_dangerous_code: bool = False, **kwargs: Any) AgentExecutor [source]¶
使用 LLM 和 dataframes 创建 Pandas 代理。
- 安全通知
该代理依赖于对可以执行任意代码的 python repl 工具的访问。这可能很危险,并且需要特别沙箱化环境才能安全使用。在未正确沙箱化的环境中运行此代码可能导致任意代码执行漏洞,这可能导致数据泄露、数据丢失或其他安全事件。
请不要使用此代码处理未经验证的输入、高权限操作或在没有咨询安全团队的情况下进行适当沙箱化!
您必须选择 allow_dangerous_code=True 才能使用此功能。
- 参数
llm (Runnable[Union[PromptValue, str, Sequence[Union[BaseMessage, List[str], Tuple[str, str], str, Dict[str, Any]]]], Union[BaseMessage, str]]) – 用于代理的语言模型。如果 agent_type 是 “tool-calling” 则 llm 需要支持工具调用。
df (Any) – Pandas dataframe 或 Pandas dataframe 列表。
agent_type (Union[AgentType, Literal['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 (Optional[BaseCallbackManager]) – 已弃用。请将 “callbacks” 键传递到 'agent_executor_kwargs' 以将构造函数回调传递给 AgentExecutor。
prefix (Optional[str]) – 提示前缀字符串。
suffix (Optional[str]) – 提示后缀字符串。
input_variables (Optional[List[str]]) – 已弃用。输入变量从构造提示中自动推断。
verbose (bool) – AgentExecutor 详细信息。
return_intermediate_steps (bool) – 传递给 AgentExecutor init。
max_iterations (Optional[int]) – 传递给 AgentExecutor init。
max_execution_time (Optional[float]) – 传递给 AgentExecutor init。
early_stopping_method (str) – 传递给 AgentExecutor init。
agent_executor_kwargs (Optional[Dict[str, Any]]) – 随意额外的 AgentExecutor 参数。
include_df_in_prompt (Optional[bool]) – 是否将前 number_of_head_rows 数量的行包含在提示中。如果后缀不是 None,则必须为 None。
number_of_head_rows (int) – 如果 include_df_in_prompt 为 True,则在提示中包含的初始行数。
extra-tools (Sequence[BaseTool]) – 除了 PythonAstREPLTool 外,还给代理提供的额外工具。
engine (Literal['pandas', 'modin']) – “modin” 或 “pandas” 之一。默认为 “pandas”。
allow_dangerous_code (bool) – bol,默认 False 此代理依赖于访问可以执行任意代码的 python repl 工具。这可能很危险,需要使用特殊沙盒环境才能安全使用。无法正确沙盒此类会导致任意代码执行漏洞,可能导致数据泄露、数据丢失或其他安全问题。您必须通过设置 allow_dangerous_code=True 来启用此功能。
**kwargs (Any) – 已弃用。未使用,仅保留向后兼容性。
- 返回
具有指定 agent_type 代理和访问带有 DataFrame(s)和任何用户提供的 extra_tools 的 PythonAstREPLTool 的 AgentExecutor。
- 返回类型
示例
from langchain_openai import ChatOpenAI from langchain_experimental.agents import create_pandas_dataframe_agent import pandas as pd df = pd.read_csv("titanic.csv") llm = ChatOpenAI(model="gpt-3.5-turbo", temperature=0) agent_executor = create_pandas_dataframe_agent( llm, df, agent_type="tool-calling", verbose=True )