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