当前位置: 首页 > news >正文

AI开源应用:Pandas AI(一)

1. Pandas AI是什么?

PandasAI是一个Python库,可以很容易地用自然语言向数据提问。它帮助非技术用户以更自然的方式与他们的数据交互,并帮助技术用户在处理数据时节省时间和精力。

2. 准备工作

关于 conda & python 环境可以看之前的文:Windows下 AutoGen(一)环境准备-CSDN博客

git clone https://github.com/sinaptik-ai/pandas-ai.git# The currently activated Python version 3.13.5 is not supported by the project (>=3.8,<3.12).
# so create venv with python=3.10
conda create -n py310 python=3.10
conda activate py310# install pipx, 假设你的python已经装了
py -m pip install --user pipx# 可能有WARNING: The script pipx.exe is installed in 'C:\Users\abc\AppData\Roaming\Python\Python314\Scripts' which is not on PATH.
# 把给你的这个文件夹 加到 sysdm.cpl 的 Path 环境变量里面,之后 pipx 就能识别了# install poetry, PandasAI 用poetry做包管理和打包
pipx install poetry# install make
choco install make

到项目目录下:

# Package manager
poetry install --all-extras --with dev# Pre-commit
pre-commit install# Linting
make format_diff# Code Format with ruff-format
make format# Spell check
make spell_fix# Testing
make test_allmake test_coremake test_extensionsmake test-coverage# Make sure that all tests pass before submitting a pull request.

3. 项目

3.1 核心流程

用户查询 → CodeGenerator → CodeExecutor → ResponseParser → 响应↓                ↓               ↓[LLM]            [沙箱]          [验证]
  1. Agent.chat() 接收自然语言查询
  2. CodeGenerator 根据 schema/data 构建 prompt,调用 LLM 生成 Python 代码
  3. CodeExecutor 在受控环境中执行代码(包含数据框)
  4. ResponseParser 验证并将结果转换为类型化响应(String/Number/DataFrame/Chart)
  5. 将结果返回给用户

3.2 核心组件

Agent (pandasai/agent/base.py)

  • 主要编排器,管理完整的对话生命周期
  • 方法:`chat()`、`follow_up()`、`generate_code()`、`execute_code()`
  • 包含代码生成和执行的重试逻辑

AgentState (pandasai/agent/state.py)

  • 在流程中传递的上下文容器
  • 包含:数据框、配置、内存、中间值(上次生成/执行的代码)
  • 使用延迟属性初始化的数据类

CodeGenerator (pandasai/core/code_generation/base.py)

  • 通过 LLM 从自然语言生成 Python 代码
  • 执行验证、清理和错误处理
  • 与 LLM 抽象层的集成点

CodeExecutor (pandasai/core/code_execution/code_executor.py)

  • 在受控环境中执行生成的 Python 代码
  • 返回包含执行结果的环境字典
  • 支持错误处理和结果提取

LLM Abstraction (pandasai/llm/base.py)

  • 接口:generate_code(prompt, context)->str
  • 可扩展以支持自定义 LLM 提供商
  • 实现在 (extensions/llms/): openai、litellm

DataFrame Abstraction (pandasai/dataframe/base.py)

  • 扩展 `pd.DataFrame`,添加 `.chat()` 方法
  • 包含元数据:schema、description、source

QueryBuilders (pandasai/query_builders/)

  • 为不同数据源适配查询
  • 类型:LocalQueryBuilder(DuckDB)、SQLQueryBuilder(远程数据库)、ViewQueryBuilder
  • 处理 SQL 生成、分页、转换

ResponseParser (pandasai/core/response/parser.py)

  • 验证响应结构:`{"type": "...", "value": ...}`
  • 创建类型化响应对象(NumberResponse、StringResponse、DataFrameResponse、ChartResponse)

3.3 插件扩展

PandasAI 使用插件架构实现可扩展性:

  1. extensions/llms: LLM 提供商(openai、litellm)
  2. extensions/connectors: 数据源连接器(sql、yfinance)
  3. extensions/ee: 企业版功能

扩展模式:

  1. 每个扩展有独立的 `pyproject.toml`
  2. 单独安装:`pip install pandasai-openai`
  3. 基础库不需要特定扩展

测试扩展:

cd extensions/llms/{extension_name}
poetry install --with test
poetry run pytest tests/

下一篇介绍如何用数据验证 Pandas AI

数据来源(Find Open Datasets and Machine Learning Projects | Kaggle)

http://www.dtcms.com/a/611424.html

相关文章:

  • 【HarmonyOS 6】SpeechKit中的朗读控件,初始化前不进行窗口舞台的设置,也不会报错,与文档描述不符。
  • 大连旅游网站建设创建全国文明城市的目的
  • 【docker】运行对应服务
  • 做网站哪种编程语言最好公司响应式网站建设报价
  • 临沂网站建设中企动力58网站模板
  • 珠海品牌型网站建设网站设计怎么做链接
  • 哈尔滨无障碍网站建设ui培训费用
  • 如何在Ubuntu虚拟机中设置Samba共享,并在Windows宿主机中挂载为网络驱动器
  • 使用yopmail注册临时邮箱
  • 百度公司可以建设网站网页版哔哩哔哩怎么下载视频
  • 工厂弄个网站做外贸如何建立自己的网站平台的好处
  • 电力系统调度自动化的五遥: 遥信 遥测 遥控 遥调 遥视
  • 怎么做电影网站教程网站页面统计代码
  • 自建网站访问报错坊网站建设
  • 哪些网站可以做画赚钱网页设计学校模板
  • (四)自然语言处理笔记——Fasttext
  • 英集芯-IP5385 IIC通信异常原因深入分析及解决方案 21
  • 营销型企业网站建设哪家好shopex进入网站自动回跳转到别的网站 是否被挂马
  • 手机购买网站源码深圳网站建设培训机构
  • 厦门公司注册网站做导购网站
  • 网站建设是网络工程师吗熊掌号网站改造绑定织梦网站
  • 泉州网站建设公司首选公司软件开发专业属于哪个专业大类
  • 惠州网站搭建找谁免费的舆情网站不需下载
  • 网站建设立项说明书亿图在线制作流程图
  • Jetson Nano 使用移动硬盘拷贝大文件的通用流程(终极版)
  • 魔鬼面具中ultralytics下如何修改rt-detr的损失函数
  • 如何一键建淘宝客网站惠州公司网站建设
  • 网站建设需要的技术路线企业logo设计说明
  • 主流开源的Agentic AI分析与比较
  • 网站前台怎么套用织梦后台wordpress收费破解模板