Eine Python-Plattform für die Konversation mit Datenbanken und Data Lakes in natürlicher Sprache, die LLM- und RAG-Technologien nutzt, um die Datenanalyse konversationell zu gestalten.
PandasAI-Projekt: Detaillierte Beschreibung
Projektübersicht
PandasAI ist eine innovative Python-Plattform, die es Benutzern ermöglicht, in natürlicher Sprache mit Datenbanken und Data Lakes zu interagieren. Das Projekt wurde vom Sinaptik-AI-Team entwickelt und zielt darauf ab, die Datenanalyse intuitiver und benutzerfreundlicher zu gestalten, unabhängig vom technischen Hintergrund des Benutzers.
GitHub-Adresse: https://github.com/Sinaptik-AI/pandas-ai
Kernfunktionen
1. Datenabfragen in natürlicher Sprache
- Unterstützt Fragen zu Daten in natürlicher Sprache
- Keine komplexen SQL-Abfragen oder Python-Code erforderlich
- Geeignet für nicht-technische und technische Benutzer
2. Unterstützung verschiedener Datenquellen
- Datenbanken: SQL-Datenbanken
- Dateiformate: CSV-, Parquet-Dateien
- DataFrames: Pandas DataFrame
- Andere: MongoDB, NoSQL usw.
3. Integration von LLM- und RAG-Technologien
- Verwendet große Sprachmodelle (LLM), um Abfragen in natürlicher Sprache zu verstehen
- Setzt Retrieval-Augmented Generation (RAG)-Technologie ein, um die Abfragegenauigkeit zu verbessern
- Verwendet standardmäßig BambooLLM, unterstützt aber auch andere LLMs
4. Datenvisualisierung
- Automatische Generierung verschiedener Diagramme
- Unterstützt verschiedene Diagrammtypen wie Histogramme, Balkendiagramme usw.
- Anpassbare Diagrammstile und -farben
Technische Merkmale
Systemanforderungen
- Python 3.8+ < 3.12
- Unterstützt Jupyter Notebooks und Streamlit-Anwendungen
- Bietet eine Client-Server-Architektur
Installationsmethoden
Installation mit pip:
pip install "pandasai>=3.0.0b2"
Installation mit poetry:
poetry add "pandasai>=3.0.0b2"
Grundlegende Anwendungsbeispiele
Abfrage eines einzelnen DataFrames
import pandasai as pai
# Beispiel-DataFrame erstellen
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-Schlüssel festlegen
pai.api_key.set("your-pai-api-key")
# Abfrage in natürlicher Sprache durchführen
df.chat('Which are the top 5 countries by sales?')
Verknüpfte Abfrage mehrerer DataFrames
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)
Diagramme generieren
df.chat(
"Plot the histogram of countries showing for each one the gd. Use different colors for each bar",
)
Erweiterte Funktionen
Datenplattform-Integration
PandasAI bietet leistungsstarke Funktionen zur Datenplattform-Integration, die das Hochladen und Teilen von Daten erleichtern:
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-Sandbox-Umgebung
Um eine sichere Code-Ausführungsumgebung zu bieten, unterstützt PandasAI Docker-Sandboxes:
pip install "pandasai-docker"
import pandasai as pai
from pandasai_docker import DockerSandbox
# Sandbox initialisieren
sandbox = DockerSandbox()
sandbox.start()
# Abfrage in der Sandbox ausführen
pai.chat("Who gets paid the most?", employees_df, salaries_df, sandbox=sandbox)
# Sandbox stoppen
sandbox.stop()
Anwendungsfälle
Zielgruppen
- Nicht-technische Benutzer: Datenanalyse ohne SQL oder Python
- Datenanalysten: Schnelle Datenexploration und -analyse
- Entwickler: Integration in bestehende Anwendungen
- Unternehmensbenutzer: Aufbau interner Datenanalysetools
Typische Anwendungen
- Business Intelligence-Analyse
- Datenexploration und -visualisierung
- Berichtserstellung
- Bildung und Schulung
- Prototypenentwicklung
Technische Architektur
Kernkomponenten
- Natürliche Sprachverarbeitung: Verstehen der Benutzerabfrageabsicht
- Codegenerierung: Umwandlung natürlicher Sprache in ausführbaren Code
- Sichere Ausführung: Sichere Codeausführung in einer Sandbox-Umgebung
- Ergebnisdarstellung: Formatierung und Anzeige der Abfrageergebnisse
Erweiterbarkeit
- Unterstützt verschiedene LLM-Backends
- Anpassbare Datenkonnektoren
- Plug-in-Architektur für einfache Erweiterung
Zusammenfassung
PandasAI stellt eine wichtige Innovation im Bereich der Datenanalyse dar, indem es durch natürliche Sprachverarbeitung und LLM-Technologien die technische Hürde für die Datenanalyse erheblich senkt. Es eignet sich nicht nur für einzelne Benutzer zur Datenexploration, sondern auch für Unternehmen zum Aufbau intelligenter Datenanalyseplattformen. Mit der kontinuierlichen Entwicklung der KI-Technologie werden solche Tools eine immer wichtigere Rolle bei datengesteuerten Entscheidungen spielen.