PandasAI的应用与实战解析(二):PandasAI使用流程与功能介绍

慈云数据 2024-04-23 技术支持 94 0

文章目录

  • 1.使用PandasAI进行开发的流程
  • 2.配置文件解析
  • 3.支持的数据库类型
  • 4.支持的LLMs
  • 5.其他

    PandasAI这个工具最突出的优点就是通过结合了Pandas和生成式LLMs,极大地为开发人员降低了工作量。

    • 传统的开发调用流程(数据分析相关):

      可以看到,对于开发人员来说实现一个需求需要完成多个步骤。

      在这里插入图片描述

    • 使用PandasAI之后的开发调用流程:

      PandasAI 使用生成式 AI 模型来理解和解释自然语言查询,并将其转换为 python 代码和 SQL 查询。然后,它使用代码与数据进行交互,并将结果返回给用户。可以看到,PandasAI从很大程度上降低了后端开发的工作量。

      在这里插入图片描述

      1.使用PandasAI进行开发的流程

      在这里插入图片描述

      • 要使用PandasAI进行开发,首先,需要导入数据,可以是非数据库的pandas.DataFrame()或者数据库的connector如MySQLConnector。
      • 然后,声明主类对象,根据数据的不同可以选择单帧数据一次提问的SmartDataFrame、多帧数据一次提问的SmartDatalake或多帧数据多次提问的Agent。
      • 接下来,调用方法进行回答,包括基础问、响应式提问、针对回答进行解释、对用户的查询语句进行优化重组。
      • 最后,返回结果,不仅支持结构化数据返回,还支持图表(如下图所示):

        在这里插入图片描述

        代码示例如下:

        """Example of using PandasAI with a pandas dataframe"""
        from pandasai import SmartDataframe
        from pandasai.llm import OpenAI
        from pandasai.helpers.openai_info import get_openai_callback
        llm = OpenAI(api_token="你的OpenAI Token")
        df = SmartDataframe("./data/data.csv", config={"llm": llm, "conversational": False})
        with get_openai_callback() as cb:
            response = df.chat("Calculate the sum of the gdp of north american countries")
            print(response)
            print(cb)
        

        2.配置文件解析

        • PandasAI项目的配置文件pandasai.json:
          {
            "save_logs": true,
            "verbose": false,
            "enforce_privacy": false,
            "enable_cache": true,
            "use_error_correction_framework": true,
            "max_retries": 3,
            "open_charts": true,
            "save_charts": false,
            "save_charts_path": "exports/charts",
            "custom_whitelisted_dependencies": [],
            "llm": "openai",
            "llm_options": null
          }
          
          • llm:要使用的 LLM。
          • llm_options:用于 LLM 的选项(例如 api 令牌等)。
          • save_logs:是否保存 LLM 的日志。日志存放在项目根目录的Truepandasai.log中。
          • verbose:是否在执行 PandasAI 时在控制台打印日志。
          • enforce_privacy:是否强制执行隐私。默认值为 False,如果设置为True,PandasAI 不会向 LLM 发送任何数据,而只会发送元数据。默认情况下,PandasAI 会发送 5 个匿名样本,以提高结果的准确性。
          • save_charts:是否保存 PandasAI 生成的图表,默认值为True 。可以在项目的根目录或指定的路径中找到图表。
          • save_charts_path:保存图表的路径。
          • open_charts:是否在解析来自 LLM 的响应时打开图表。
          • enable_cache:是否启用缓存。
          • use_error_correction_framework:是否使用纠错框架。
          • max_retries:使用纠错框架时要使用的最大重试次数。
          • custom_whitelisted_dependencies:要使用的自定义白名单依赖。

            3.支持的数据库类型

            PandasAI支持多种数据库:

            在这里插入图片描述

            4.支持的LLMs

            PandasAI 支持本地模型的使用,尽管通常情况下较小的模型性能可能不够理想。若要使用本地模型,首先需要在一个遵循OpenAI API的本地推理服务器上托管该模型。该作者声称已验证这种方法可在Ollama和LM Studio环境中正常运行。

            在这里插入图片描述

            5.其他

            • 缓存:

              PandasAI 使用缓存来存储先前查询的结果。这很有用,原因有两个:1)它允许用户快速检索查询结果,而无需等待模型生成响应。2)它减少了对模型的 API 调用次数,从而降低了使用模型的成本。

            • 对响应进行定制:

              PandasAI 提供了以自定义方式处理聊天响应的灵活性。默认情况下,PandasAI 包含一个 ResponseParser 类,可以根据需要扩展该类来修改响应输出。

微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon