GPT LangChain实验性代理 – 允许危险代码

我在VS Code中创建一个聊天机器人,它将通过Streamlit界面的提示接收csv文件。然而,从文件加载的那一刻起,它就显示了一条包含以下内容的消息:

值错误:此代理依赖于可以执行任意代码的Python REPL工具。这可能是危险的,需要一个特别的沙箱环境才能安全使用。请阅读此函数文档字符串中的安全通知。您必须通过设置allow_dangerous_code=True来选择使用此功能。有关一般安全指南,请参见:https://python.langchain.com/v0.2/docs/security/

追溯

File "c:\Users\  \langchain-ask-csv\.venv\Lib\site-packages\streamlit\runtime\scriptrunner\script_runner.py", line 589, in _run_script    exec(code, module.__dict__)File "C:\Users\ \langchain-ask-csv\main.py", line 46, in <module>    main()File "C:\Users\  \langchain-ask-csv\main.py", line 35, in main    agent = create_csv_agent( OpenAI(), csv_file, verbose=True)            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "c:\Users\\langchain-ask-csv\.venv\Lib\site-packages\langchain_experimental\agents\agent_toolkits\csv\base.py", line 66, in create_csv_agent    return create_pandas_dataframe_agent(llm, df, **kwargs)           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "c:\Users\ T\langchain-ask-csv\.venv\Lib\site-packages\langchain_experimental\agents\agent_toolkits\pandas\base.py", line 248, in create_pandas_dataframe_agent    raise ValueError(

这是我传递文件的代码的一部分:

def main():    load_dotenv()        # 从环境变量中加载OpenAI API密钥    if os.getenv("OPENAI_API_KEY") is None or os.getenv("OPENAI_API_KEY") == "":        print("OPENAI_API_KEY未设置")        exit(1)    else:        print("OPENAI_API_KEY已设置")    st.set_page_config(page_title="询问您的CSV")    st.header("询问您的CSV 📈")    csv_file = st.file_uploader("上传一个CSV文件", type="csv")    if csv_file is not None:        agent = create_csv_agent( OpenAI(), csv_file, verbose=True)        user_question = st.text_input("关于您的CSV提问:")                if user_question is not None and user_question != "":            with st.spinner(text="处理中..."):                st.write(agent.run(user_question))      if __name__ == "__main__":    main()

我查看了建议的链接,也尝试搜索类似报告,但没有成功。

可能出了什么问题,如何修复它?


回答:

引用的安全通知位于https://api.python.langchain.com/en/latest/agents/langchain_experimental.agents.agent_toolkits.pandas.base.create_pandas_dataframe_agent.html

只需按照消息的指示去做。进行安全分析,为您的程序创建一个沙箱环境,然后在传递给create_csv_agent的参数中添加allow_dangerous_code=True,该参数会直接传递给create_pandas_dataframe_agent,并在沙箱中运行它。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注