默认情况下,PandasAI 只允许运行使用某些白名单模块的代码。这是为了防止在服务器或本地执行恶意代码。

白名单模块包括:

  • pandas
  • numpy
  • matplotlib
  • seaborn
  • datetime
  • json
  • base64

出于安全原因,这些库被沙盒化,以防止恶意代码在服务器或本地执行。

然而,可以将自定义模块添加到白名单中。这可以通过在实例化Agent类时,将模块列表传递给custom_whitelisted_dependencies参数来实现。

注意: PandasAI 无法对白名单中的自定义库进行任意代码执行的沙盒化。如果您将自定义库添加到白名单中,则该库将可以进行任意代码执行。将自定义库加入白名单意味着该库是“受信任的”,并且可以无限制地使用。仅将您控制或信任的库加入白名单

例如,要将scikit-learn模块添加到白名单中:

from pandasai import Agent

agent = Agent("data.csv", config={

    "custom_whitelisted_dependencies": ["scikit-learn"]

})

custom_whitelisted_dependencies 参数接受一个字符串列表,其中每个字符串是模块的名称。该模块必须安装在 PandasAI 运行的环境中。

请确保您已在运行PandasAI的环境中安装了该模块。否则,在尝试运行代码时会出现错误。