创建Pandas数据框代理#

langchain_experimental.agents.agent_toolkits.pandas.base.create_pandas_dataframe_agent(llm: Runnable[PromptValue | str | Sequence[BaseMessage | list[str] | tuple[str, str] | str | dict[str, Any]], BaseMessage | str], df: Any, agent_type: AgentType | Literal['openai-tools', 'tool-calling'] = AgentType.ZERO_SHOT_REACT_DESCRIPTION, callback_manager: BaseCallbackManager | None = None, prefix: str | None = None, suffix: str | None = None, input_variables: List[str] | None = None, verbose: bool = False, return_intermediate_steps: bool = False, max_iterations: int | None = 15, max_execution_time: float | None = None, early_stopping_method: str = 'force', agent_executor_kwargs: Dict[str, Any] | None = None, include_df_in_prompt: bool | None = True, number_of_head_rows: int = 5, extra_tools: Sequence[BaseTool] = (), engine: Literal['pandas', 'modin'] = 'pandas', allow_dangerous_code: bool = False, **kwargs: Any) AgentExecutor[来源]#

从LLM和数据框构建一个Pandas代理。

Security Notice:

此代理依赖于可以执行任意代码的python repl工具的访问。这可能是危险的,需要一个特别沙盒化的环境才能安全使用。如果未能在适当沙盒化的环境中运行此代码,可能会导致任意代码执行漏洞,从而导致数据泄露、数据丢失或其他安全事件。

不要在不信任的输入、提升的权限下使用此代码,或在未咨询安全团队关于适当的沙箱设置的情况下使用!

您必须通过设置allow_dangerous_code=True来选择使用此功能。

Parameters:
  • llm (Runnable[PromptValue | str | Sequence[BaseMessage | list[str] | tuple[str, str] | str | dict[str, Any]], BaseMessage | str]) – 用于代理的语言模型。如果代理类型是“tool-calling”,则llm需要支持工具调用。

  • df (Any) – Pandas 数据框或 Pandas 数据框列表。

  • agent_type (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 (BaseCallbackManager | None) – 已弃用。请将“callbacks”键传递到‘agent_executor_kwargs’中,以将构造函数回调传递给AgentExecutor。

  • prefix (str | None) – 提示前缀字符串。

  • suffix (str | None) – 提示后缀字符串。

  • input_variables (List[str] | None) – 已弃用。输入变量自动从构建的提示中推断。

  • verbose (bool) – AgentExecutor 的详细程度。

  • return_intermediate_steps (bool) – 传递给AgentExecutor初始化。

  • max_iterations (int | None) – 传递给 AgentExecutor 初始化。

  • max_execution_time (float | None) – 传递给 AgentExecutor 初始化。

  • early_stopping_method (str) – 传递给AgentExecutor初始化。

  • agent_executor_kwargs (Dict[str, Any] | None) – 任意额外的AgentExecutor参数。

  • include_df_in_prompt (bool | None) – 是否在提示中包含前 number_of_head_rows。如果 suffix 不是 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) – bool, 默认 False 此代理依赖于访问可以执行任意代码的python repl工具。这可能是危险的,需要一个特别沙盒化的环境才能安全使用。 未能正确沙盒化此类可能导致任意代码执行漏洞,这可能导致数据泄露、数据丢失或其他安全事件。 您必须通过设置allow_dangerous_code=True来选择使用此功能。

  • **kwargs (Any) – 已弃用。未使用,保留以保持向后兼容性。

Returns:

一个具有指定agent_type代理的AgentExecutor,并且可以访问带有DataFrame(s)和任何用户提供的extra_tools的PythonAstREPLTool。

Return type:

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
)

使用 create_pandas_dataframe_agent 的示例