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

文章目录

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

(UDP)其他信息: 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。

“System.Net.Sockets.SocketException”类型的异常在 mscorlib.dll 中发生,但未在用户代码中进行处理其他信息: 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。这个异常表示端口已经被占用了,需要释放端口或者使用其他端口来建立连接。您可以…

CLion 2024:为Mac与Win打造的卓越跨平台集成开发环境

CLion 2024作为一款跨平台IDE,CLion 2024不仅完美支持Mac和Windows两大操作系统,更在细节之处展现了其出色的跨平台兼容性。无论你是在Mac的优雅界面下工作,还是在Windows的实用环境中编程,CLion 2024都能为你提供一致且流畅的开发…

如何使用 Grafana 监控文件系统状态

当 JuiceFS 文件系统部署完成并投入生产环境,接下来就需要着手解决一个非常重要的问题 —— 如何实时监控它的运行状态?毕竟,它可能正在为关键的业务应用或容器工作负载提供持久化存储支持,任何小小的故障或性能下降都可能造成不利…

ES6: set和map数据结构以及使用场景

ES6:set和map数据结构 一、Set 数据结构:二、使用场景:使用Set 进行去重三、Map 数据结构四、使用场景:使用Map进行树型数据懒加载刷新五、Set和Map的区别六、Map、Set的实际使用场景 Set 和 Map 是 ES6 中引入的两种新的数据结构&#xff0c…

设计模式代码实战-装饰者模式

1、问题描述 小明喜欢品尝不同口味的咖啡,他发现每种咖啡都可以加入不同的调料,比如牛奶、糖和巧克力。他决定使用装饰者模式制作自己喜欢的咖啡。 请设计一个简单的咖啡制作系统,使用装饰者模式为咖啡添加不同的调料。系统支持两种咖啡类型…

ANSYS Electromagnetics Suite 2023 R2 三维电磁(EM)仿真软件下载

Ansys家最新的三维电磁(EM)仿真软件ANSYS Electromagnetics Suite 2023 R2日前发布了,老wu这次分享得有点晚  ̄ω ̄,现在已经将资源上传到了网盘供大家免费下载,同时,为了让大家都能与…

企业航拍VR全景视频展示仿如上门参观

360度VR全景视频因其广阔的视野和身临其境的体验,无论再房产楼盘的精致呈现,旅游景点的全景漫游,还是校园风光的生动展示,都成为企业商户的首选。 360度vr全景视频编辑软件是深圳VR公司华锐视点提供多种常见的三维仿真场景供选择&…

防火墙操作!

当小编在Linux服务器上部署好程序以后,但是输入URL出现下述情况,原来是防火墙的原因!! 下面是一些防火墙操作! 为保证系统安全,服务器的防火墙不建议关闭!! 但是,我们可…

最优算法100例之44-不用加减乘除做加法

专栏主页:计算机专业基础知识总结(适用于期末复习考研刷题求职面试)系列文章https://blog.csdn.net/seeker1994/category_12585732.html 题目描述 不用加减乘除做加法 题解报告 最优解法:使用异或 1)异或是查看两个数哪些二进制位只有一个为1,这些是非进位位,可以直接…

[python]cartopy安装后测试代码

测试环境: anaconda3python3.11 cartopy0.23.0 测试代码: # 导入所需的库 import matplotlib as mpl import matplotlib.pyplot as plt import cartopy.crs as ccrs# 创建画布以及ax fig plt.figure() ax fig.add_subplot(111, projectionccrs.Pla…

Android - 安卓概述

什么是安卓? Android 是一种基于 Linux 的开源操作系统,适用于智能手机和平板电脑等移动设备。 Android 是由 Google 和其他公司领导的 Open Handset Alliance 开发的。 Android 为移动设备的应用程序开发提供了统一的方法,这意味着开发人员只需为 And…

React + three.js 实现人脸动捕与3D模型表情同步

系列文章目录 React 使用 three.js 加载 gltf 3D模型 | three.js 入门React three.js 3D模型骨骼绑定React three.js 3D模型面部表情控制React three.js 实现人脸动捕与3D模型表情同步 示例项目(github):https://github.com/couchette/simple-react-three-facia…

Rust跨平台编译

❝ 如果你感觉自己被困住了,焦虑并充满消极情绪,生命出现了停滞,那么治疗方法很简单:「做点什么」。 ❞ 大家好,我是「柒八九」。一个「专注于前端开发技术/Rust及AI应用知识分享」的Coder 前言 之前我们不是写了一篇R…

SpringBoot 微服务token 传递实现

1、前言 随着微服务的流行,微服务之间的安全以及业务需要,都需要穿递token ,而token的传递一般通过header 头来传递。从架构的角度来讲 ,一般的企业应用都由nginx、业务网关和各个微服务组成。这个nginx 传递header 我就不讲述。下…

Java | Leetcode Java题解之第25题K个一组翻转链表

题目: 题解: class Solution {public ListNode reverseKGroup(ListNode head, int k) {ListNode hair new ListNode(0);hair.next head;ListNode pre hair;while (head ! null) {ListNode tail pre;// 查看剩余部分长度是否大于等于 kfor (int i 0…

Slf4j+Log4j简单使用

Slf4jLog4j简单使用 文章目录 Slf4jLog4j简单使用一、引入依赖二、配置 log4j2.xml2.1 配置结构2.2 配置文件 三、使用四、使用MDC完成日志ID4.1 程序入口处4.2 配置文件配置打印4.3 多线程日志ID传递配置 五. 官网 一、引入依赖 <dependencies><dependency><g…

24年山东省三支一扶网上报名流程及照片要求

山东省终于公布了本年度的“三支一扶”招募计划&#xff0c;本次共计招募1350人 报名人员可登录《山东人事考试信息网》查看本次三支一扶报名公告以及报名。 报名时间&#xff1a;2024年4月16日9:00—4月20日16:00 查询时间&#xff1a;2024年4月16日11:00—4月21日16:00 在…

Django中的静态文件、路径、访问静态文件的方法

1.什么是静态文件 不能与服务器端做动态交互的文件都是静态文件 如:图片,css,js,音频,视频,html文件(部分) 2.静态文件配置 在 settings.py 中配置一下两项内容: 1.配置静态文件的访问路径 通过哪个url地址找静态文件 STATIC_URL ‘/static/’ 说…

OSCP靶场--Nukem

OSCP靶场–Nukem 考点(公共exp反弹shell密码复用ssh端口转发dosbox suid提权) 1.nmap扫描 ┌──(root㉿kali)-[~/Desktop] └─# nmap -sV -sC 192.168.158.105 -Pn --min-rate 2500 Starting Nmap 7.92 ( https://nmap.org ) at 2024-04-12 01:33 EDT RTTVAR has grown to…

【springboot开发】MVC和SSM

前言&#xff1a;关于MVC和SSM基本内容的梳理&#xff0c;以及两者之间的关系。 文章目录 1. 三层架构2. MVC3. SSM 1. 三层架构 三层架构是指&#xff1a; 视图层view&#xff08;表现层&#xff09;: 用于显示数据和接收用户输入的数据&#xff0c;为用户提供一种交互式操作…