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

news2024/11/25 15:53:39

文章目录

  • 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 类,可以根据需要扩展该类来修改响应输出。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1591301.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

秒杀购物商城核心服务 — 商品管理中心(前提设计概要)

秒杀购物商城核心服务 前提介绍商品中心中台支持系统-总体架构设计:商品与产品商品 类目属性类目定义前后台类目后台类目,关注标准化管理类目属性及分类 SKUSPU 属性库建设 前提介绍 在电商系统中,商品模型占据着举足轻重的地位&#xff0c…

AI赋能档案开放审核:实战

关注我们 - 数字罗塞塔计划 - 为进一步推进档案开放审核工作提质增效,结合近几年的业务探索、研究及项目实践,形成了一套较为成熟、高效的AI辅助档案开放审核解决方案,即以“AI人工”的人机协同模式引领档案开放审机制创新,在档…

TyG新文章!与胸痛的高发生率正相关 | NHANES数据库周报(4.10)

NHANES挖掘培训班来啦,就在4.20-21! 郑老师团队2024年NHANES公共数据库挖掘培训班,由浅入深,零基础可学,欢迎报名! 美国国家健康和营养检查调查(NHANES)是一项旨在评估美国成人和儿童…

Python通过socket搭建一个web服务器

目录 01、源码 02、运行结果 03、小结 Socket是一种计算机网络通信的一种机制,它允许不同计算机或进程之间通过网络进行数据传输和通信。Socket可以被看作是不同计算机之间的数据传输通道,通过这个通道,计算机之间可以进行双向的数据传输。…

区块链游戏:探索未来的可能性与挑战

区块链游戏是一种将区块链技术应用于游戏领域的创新产品,它为游戏行业带来了全新的模式和可能性。本文将深入探讨区块链游戏的优点、挑战和未来趋势,帮助读者了解这一新兴领域。 一、区块链游戏的优点 1. 公平性:区块链技术保证了游戏中的物…

LeetCode-Java:303、304区域检索(前缀和)

文章目录 题目303、区域和检索(数组不可变)304、二维区域和检索(矩阵不可变) 解①303,一维前缀和②304,二维前缀和 算法前缀和一维前缀和二维前缀和 题目 303、区域和检索(数组不可变&#xff…

二叉树遍历算法和应用

二叉树是指度为 2 的树。它是一种最简单却又最重要的树,在计算机领域中有这广泛的应用。 二叉树的递归定义如下:二叉树是一棵空树,或者一棵由一个根节点和两棵互不相交的分别称为根节点的左子树和右子树所组成的非空树,左子树和右…

【数据结构】07查找

查找 1. 基本概念2. 顺序表查找2.1 顺序查找2.2 顺序查找优化-哨兵 3. 有序表查找3.1 折半查找(二分查找) 4. 分块查找(索引顺序查找)5. Hash表(散列表)5.1 散列函数的设计5.2 代码实现5.2.1 初始化Hash表5…

再谈C语言——理解指针(一)

内存和地址 内存 在讲内存和地址之前,我们想有个⽣活中的案例: 假设有⼀栋宿舍楼,把你放在楼⾥,楼上有100个房间,但是房间没有编号,你的⼀个朋友来找你玩, 如果想找到你,就得挨个房…

【C++11】异常知多少

> 作者:დ旧言~ > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:熟练掌握C11异常 > 毒鸡汤:有些事情,总是不明白,所以我不会坚持。早安! > 专栏选自:C嘎嘎进阶 &g…

Ubuntu22.04 + ROS2 Humble的环境配置

Ubuntu22.04 ROS2 Humble的环境配置 文章目录 Ubuntu22.04 ROS2 Humble的环境配置(1) Set locale(2) Setup Sources(3)安装ROS2(4)检查是否成功安装 参考官方网站ROS2-Installation ROS2的各种版本及维护计划,可以参考ROS2-List of Distributions (1) Set locale…

gitlab、jenkins安装及使用文档二

安装 jenkins IP地址操作系统服务版本192.168.75.137Rocky9.2jenkins 2.450-1.1 jdk 11.0.22 git 2.39.3192.168.75.138Rocky9.2gitlab-ce 16.10.0 结合上文 jenkins安装 前期准备: yum install -y epel-release yum -y install net-tools vim lrzsz wget…

AIGC的崛起:定义未来内容创作的新纪元

🌟文章目录 🌟AIGC简介🌟 AIGC的相关技术与特点🌟AIGC有哪些应用场景?🌟AIGC对其他行业影响🌟面临的挑战与问题🌟AIGC未来发展 🌟AIGC十大热门网站推荐: 文心…

一键开启Scrum回顾会议的精彩时刻

其实回顾会议作为一个检视、反馈、改进环节,不仅在传统的瀑布管理模式中,还是在Scrum一类的敏捷管理流程中,都是非常重要的活动。一些团队认为它无法产生直接的价值,所以有意忽略了这个会议;一些团队在越来越多的回顾中…

【Python】面向对象(专版提升2)

面向对象 1. 概述1.1面向过程1.2 面向对象 2. 类和对象2.1 语法2.1.1 定义类2.1.2 实例化对象 2.2 实例成员2.2.1 实例变量2.2.2 实例方法2.2.3 跨类调用 3. 三大特征3.1 封装3.1.1 数据角度3.1.2 行为角度3.1.3 案例:信息管理系统3.1.3.1 需求3.1.3.2 分析3.1.3.3 设计 3.2 继…

MySQL·:执行一条查询语句期间发生了什么?

MySQL的架构分为两层,Server 层和存储引擎层 server层负责建立连接、分析和执行SQL,MySQL,MySQL大多数的核心功能模块都在在这里实现,下图上半部分都是server层做的事情,另外,所有的内置函数(如…

Springboot+Vue项目-基于Java+MySQL的房产销售系统(附源码+演示视频+LW)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &…

JS - BOM(浏览器对象模型)

BOM 浏览器对象模型 BOM可以使我们通过JS来操作浏览器 在BOM中为我们提供了一组对象,用来完成对浏览器的操作 BOM对象 BOM(Browser Object Model)是指浏览器对象模型,它提供了与浏览器窗口进行交互的对象和方法。BOM包括一些核…

C++——StackQueue

目录 一Stack 1介绍 2接口 3模拟实现 4栈的oj题 二Queue 1介绍 2接口 3模拟实现 三容器适配器 1再谈栈和队列 四优先级队列 1接口 ​编辑 2仿函数 五dequeue的简单介绍 一Stack 1介绍 先来看看库中对栈的介绍: 1. stack是一种容器适配器&#x…

scaling laws for neural language models

关于scaling law 的正确认识 - 知乎最近scaling law 成了最大的热词。一般的理解就是,想干大模型,清洗干净数据,然后把数据tokens量堆上来,然后搭建一个海量H100的集群,干就完了。训练模型不需要啥技巧,模型…