Une plateforme Python pour dialoguer avec des bases de données et des data lakes en langage naturel, utilisant les technologies LLM et RAG pour rendre l'analyse de données conversationnelle.
Présentation détaillée du projet PandasAI
Aperçu du projet
PandasAI est une plateforme Python innovante qui permet aux utilisateurs de dialoguer avec des bases de données et des lacs de données en langage naturel. Développé par l'équipe Sinaptik-AI, ce projet vise à rendre l'analyse de données plus intuitive et accessible, quel que soit le niveau technique de l'utilisateur.
Adresse GitHub: https://github.com/Sinaptik-AI/pandas-ai
Fonctionnalités clés
1. Requête de données en langage naturel
- Permet de poser des questions sur les données en langage naturel
- Élimine le besoin d'écrire des requêtes SQL complexes ou du code Python
- Convient aux utilisateurs non techniques et techniques
2. Prise en charge de multiples sources de données
- Bases de données: Bases de données SQL
- Formats de fichiers: Fichiers CSV, Parquet
- DataFrames: Pandas DataFrame
- Autres: MongoDB, NoSQL, etc.
3. Intégration des technologies LLM et RAG
- Utilise des grands modèles de langage (LLM) pour comprendre les requêtes en langage naturel
- Adopte la technique de génération augmentée par récupération (RAG) pour améliorer la précision des requêtes
- Utilise BambooLLM par défaut, mais prend également en charge d'autres LLM
4. Visualisation des données
- Génère automatiquement divers types de graphiques
- Prend en charge plusieurs types de graphiques, tels que les histogrammes, les diagrammes à barres, etc.
- Permet de personnaliser les styles et les couleurs des graphiques
Caractéristiques techniques
Configuration requise
- Python 3.8+ < 3.12
- Compatible avec les notebooks Jupyter et les applications Streamlit
- Offre une architecture client-serveur
Méthodes d'installation
Installation avec pip:
pip install "pandasai>=3.0.0b2"
Installation avec poetry:
poetry add "pandasai>=3.0.0b2"
Exemples d'utilisation de base
Requête sur un seul DataFrame
import pandasai as pai
# Création d'un exemple de DataFrame
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]
})
# Définition de la clé API
pai.api_key.set("your-pai-api-key")
# Exécution d'une requête en langage naturel
df.chat('Which are the top 5 countries by sales?')
Requête de jointure sur plusieurs 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)
Génération de graphique
df.chat(
"Plot the histogram of countries showing for each one the gd. Use different colors for each bar",
)
Fonctionnalités avancées
Intégration de plateforme de données
PandasAI offre de puissantes fonctionnalités d'intégration de plateforme de données, permettant de télécharger et de partager facilement des données :
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()
Environnement de bac à sable Docker
Pour fournir un environnement d'exécution de code sécurisé, PandasAI prend en charge le bac à sable Docker :
pip install "pandasai-docker"
import pandasai as pai
from pandasai_docker import DockerSandbox
# Initialisation du bac à sable
sandbox = DockerSandbox()
sandbox.start()
# Exécution de la requête dans le bac à sable
pai.chat("Who gets paid the most?", employees_df, salaries_df, sandbox=sandbox)
# Arrêt du bac à sable
sandbox.stop()
Cas d'utilisation
Public cible
- Utilisateurs non techniques: N'ont pas besoin d'apprendre SQL ou Python pour analyser les données.
- Analystes de données: Pour explorer et analyser rapidement les données.
- Développeurs: Pour l'intégration dans des applications existantes.
- Utilisateurs en entreprise: Pour la création d'outils d'analyse de données internes.
Applications typiques
- Analyse de veille stratégique (Business Intelligence)
- Exploration et visualisation de données
- Génération de rapports
- Éducation et formation
- Développement de prototypes
Architecture technique
Composants clés
- Traitement du langage naturel: Compréhension de l'intention de la requête utilisateur.
- Génération de code: Conversion du langage naturel en code exécutable.
- Exécution sécurisée: Exécution sécurisée du code dans un environnement de bac à sable.
- Présentation des résultats: Formatage et affichage des résultats de la requête.
Extensibilité
- Prise en charge de plusieurs backends LLM
- Connecteurs de données personnalisables
- Architecture modulaire pour une extension facile
Conclusion
PandasAI représente une innovation majeure dans le domaine de l'analyse de données, en abaissant considérablement la barrière technique à l'analyse de données grâce au traitement du langage naturel et aux technologies LLM. Il convient non seulement aux utilisateurs individuels pour l'exploration de données, mais aussi aux entreprises pour la construction de plateformes d'analyse de données intelligentes. Avec l'évolution continue de la technologie de l'IA, de tels outils joueront un rôle de plus en plus crucial dans la prise de décision basée sur les données.