Login

一个用自然语言与数据库和数据湖对话的Python平台,使用LLM和RAG技术让数据分析变得对话式

NOASSERTIONPython 20.9ksinaptik-aipandas-ai Last Updated: 2025-07-13

PandasAI 项目详细介绍

项目概述

PandasAI是一个创新的Python平台,让用户能够用自然语言与数据库和数据湖进行对话。该项目由Sinaptik-AI团队开发,旨在让数据分析变得更加直观和易于使用,无论用户的技术背景如何。

GitHub地址: https://github.com/Sinaptik-AI/pandas-ai

核心功能

1. 自然语言数据查询

  • 支持用自然语言询问数据相关问题
  • 无需编写复杂的SQL查询或Python代码
  • 适合非技术用户和技术用户

2. 多种数据源支持

  • 数据库: SQL数据库
  • 文件格式: CSV、Parquet文件
  • 数据框架: Pandas DataFrame
  • 其他: MongoDB、NoSQL等

3. 集成LLM和RAG技术

  • 使用大语言模型(LLM)理解自然语言查询
  • 采用检索增强生成(RAG)技术提高查询准确性
  • 默认使用BambooLLM,也支持其他LLM

4. 数据可视化

  • 自动生成各种图表
  • 支持直方图、柱状图等多种图表类型
  • 可自定义图表样式和颜色

技术特点

系统要求

  • Python 3.8+ < 3.12
  • 支持Jupyter notebooks和Streamlit应用
  • 提供客户端-服务器架构

安装方式

使用pip安装:

pip install "pandasai>=3.0.0b2"

使用poetry安装:

poetry add "pandasai>=3.0.0b2"

基本使用示例

单一数据框架查询

import pandasai as pai

# 创建示例数据框架
df = pai.DataFrame({
    "country": ["United States", "United Kingdom", "France", "Germany", "Italy", "Spain", "Canada", "Australia", "Japan", "China"],
    "revenue": [5000, 3200, 2900, 4100, 2300, 2100, 2500, 2600, 4500, 7000]
})

# 设置API密钥
pai.api_key.set("your-pai-api-key")

# 进行自然语言查询
df.chat('Which are the top 5 countries by sales?')

多数据框架关联查询

import pandasai as pai

employees_data = {
    'EmployeeID': [1, 2, 3, 4, 5],
    'Name': ['John', 'Emma', 'Liam', 'Olivia', 'William'],
    'Department': ['HR', 'Sales', 'IT', 'Marketing', 'Finance']
}

salaries_data = {
    'EmployeeID': [1, 2, 3, 4, 5],
    'Salary': [5000, 6000, 4500, 7000, 5500]
}

employees_df = pai.DataFrame(employees_data)
salaries_df = pai.DataFrame(salaries_data)

pai.api_key.set("your-pai-api-key")
pai.chat("Who gets paid the most?", employees_df, salaries_df)

生成图表

df.chat(
    "Plot the histogram of countries showing for each one the gd. Use different colors for each bar",
)

高级功能

数据平台集成

PandasAI提供了强大的数据平台集成功能,可以轻松上传和共享数据:

import pandasai as pai

pai.api_key.set("your-pai-api-key")
file = pai.read_csv("./filepath.csv")
dataset = pai.create(path="your-organization/dataset-name",
                    df=file,
                    name="dataset-name",
                    description="dataset-description")
dataset.push()

Docker沙盒环境

为了提供安全的代码执行环境,PandasAI支持Docker沙盒:

pip install "pandasai-docker"
import pandasai as pai
from pandasai_docker import DockerSandbox

# 初始化沙盒
sandbox = DockerSandbox()
sandbox.start()

# 在沙盒中执行查询
pai.chat("Who gets paid the most?", employees_df, salaries_df, sandbox=sandbox)

# 停止沙盒
sandbox.stop()

使用场景

适用人群

  1. 非技术用户: 无需学习SQL或Python即可分析数据
  2. 数据分析师: 快速探索和分析数据
  3. 开发者: 集成到现有应用中
  4. 企业用户: 构建内部数据分析工具

典型应用

  • 商业智能分析
  • 数据探索和可视化
  • 报表生成
  • 教育和培训
  • 原型开发

技术架构

核心组件

  • 自然语言处理: 理解用户查询意图
  • 代码生成: 将自然语言转换为可执行代码
  • 安全执行: 在沙盒环境中安全执行代码
  • 结果呈现: 格式化并展示查询结果

扩展性

  • 支持多种LLM后端
  • 可自定义数据连接器
  • 插件式架构便于扩展

总结

PandasAI代表了数据分析领域的一个重要创新,通过自然语言处理和LLM技术,大大降低了数据分析的技术门槛。它不仅适合个人用户进行数据探索,也适合企业构建智能数据分析平台。随着AI技术的不断发展,这类工具将在数据驱动的决策中发挥越来越重要的作用。

Star History Chart