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