如何将 CSV 文件或数据帧传递到 Langchain 中的 Pandas REPL 工具?

问题描述 投票:0回答:1

我正在尝试使用 langchain 中的 Python Repl 工具和 CSV 文件,并根据 CSV 文件内容向我发送答案。问题是它获取了编写代码执行的action_input步骤的正确性。但是,它无法回答,因为它无法确定应该运行代码的数据帧。

例如,我询问它有关包含名为“name”的列的数据框中最长的名称,它返回以下内容:

进入新的AgentExecutor链... { “行动”:“python_repl_ast”, "action_input": "将 pandas 导入为 pd # 假设数据集存储在名为“data”的 pandas DataFrame 中 名称 = 数据['名称'] 最长的名称 = max(名称, key=len) 最长的名字” } 观察:NameError:名称“数据”未定义 想法:{ "action": "最终答案", “action_input”:“对于造成的混乱,我深表歉意。不幸的是,我无法访问查找最长名称所需的数据集。还有什么可以帮助您的吗?” }

这是完整的代码: `

df = pd.read_csv(file_path)

tools = [PythonAstREPLTool(locals={"df": df})]

agent = initialize_agent(
    agent='chat-conversational-react-description',
    tools=tools,
    llm=llm,
    verbose=True,
    max_iterations=3,
    early_stopping_method='generate',
    memory=conversational_memory
)

query = 'What is the longest name?'

print(agent(query))`

有没有办法将数据帧对象传递给 Pandas REPL 工具,以便代码正确执行并向我返回答案?使用 GPT-3.5-turbo API 模型时遇到此问题。

pandas openai-api agent langchain py-langchain
1个回答
0
投票

初始化代理后,您可以重新利用(?)它来接受与输出相关的 df,使用下面的方法

from langchain.agents import create_pandas_dataframe_agent
agent = create_pandas_dataframe_agent(
   OpenAI(temperature=0), df, verbose=True 
     )
© www.soinside.com 2019 - 2024. All rights reserved.