Presentando PandasAI Una libreria di analisi dati alimentata da GenAI

Introducing PandasAI, a data analysis library powered by GenAI.

Introduzione

Sono state registrate recenti espansioni e scoperte nel campo dell’Intelligenza Artificiale Generativa che stanno causando interruzioni nel campo dei dati. Le aziende stanno cercando di capire come sfruttare al meglio queste innovazioni, come ChatGPT. Ciò aiuterà qualsiasi attività a ottenere un vantaggio competitivo. Una nuova innovazione all’avanguardia sta introducendo una libreria di analisi dei dati alimentata da GenAI nella tradizionale libreria Pandas, chiamata “PandasAI”. Ciò è stato fatto da OpenAI. A differenza di altre aree dell’Intelligenza Artificiale Generativa, PandasAI applica la tecnologia di GenAI allo strumento di analisi Pandas.

Come suggerisce il nome, si applica direttamente l’intelligenza artificiale alla tradizionale libreria Pandas. La libreria Pandas è diventata molto popolare nel campo dei dati con Python in compiti come il pre-elaborazione e la visualizzazione dei dati, e questa innovazione l’ha resa ancora migliore.

Obiettivi di Apprendimento

  • Comprendere il nuovo PandasAI
  • Utilizzare PandasAI con Query conversazionali
  • Tracciare grafici con PandasAI
  • Un’occhiata a PandasAI e al suo backend (GenAI)

Questo articolo è stato pubblicato come parte del Data Science Blogathon.

Cos’è PandasAI?

PandasAI è una libreria Python che utilizza modelli di Intelligenza Artificiale Generativa per svolgere compiti con pandas. È una libreria che integra le capacità dell’intelligenza artificiale generativa utilizzando l’ingegneria delle prompt per rendere i data frame di Pandas conversazionali. Quando pensiamo a Pandas, ci viene in mente l’analisi e la manipolazione dei dati. Con PandasAI, cerchiamo di migliorare la produttività di Pandas con il vantaggio di GenAI.

Perché Usare PandasAI?

Con l’aiuto dell’intelligenza artificiale generativa, tutti noi dobbiamo fornire istruzioni conversazionali all’insieme di dati. Questo ha il vantaggio di eliminare la necessità di imparare o comprendere codici complessi. Lo scienziato dei dati può interrogare l’insieme di dati semplicemente parlando con esso utilizzando il linguaggio naturale umano e ottenere risultati. Ciò risparmia tempo nella pre-elaborazione e nell’analisi. Questa è la nuova rivoluzione in cui i programmatori non hanno bisogno di scrivere codice. Devono solo dire ciò che hanno in mente e vedere le loro istruzioni eseguite. Anche i non tecnici possono ora costruire sistemi senza scrivere alcun codice complesso!

Come Funziona PandasAI?

Prima di vedere come utilizzare PandasAI, vediamo come funziona. Abbiamo menzionato il termine “Intelligenza Artificiale Generativa” diverse volte qui. Serve come tecnologia alla base dell’implementazione di PandasAI. L’Intelligenza Artificiale Generativa (GenAI) è una sottocategoria dell’intelligenza artificiale che può produrre una vasta gamma di tipi di dati, inclusi testi, audio, video, immagini e modelli 3D. Ciò viene realizzato identificando modelli nei dati già raccolti e sfruttandoli per creare output nuovi e distintivi.

Un’altra cosa da notare è l’utilizzo di modelli di linguaggio molto ampi (LLMs). PandasAI è stato addestrato su LLM che sono modelli costituiti da una rete neurale artificiale (ANN) con molti parametri (decine di milioni fino a miliardi). Tutto ciò aiuta il modello dietro PandasAI ad essere in grado di interpretare le istruzioni umane e tokenizzarle prima dell’interpretazione. PandasAI è stato anche progettato per gestire i modelli di LangChain, semplificando la creazione di applicazioni LLM.

Primi Passi con Pandas AI

Ora vediamo come utilizzare PandasAI. Vedremo due approcci per l’utilizzo di PandasAI. In primo luogo, l’utilizzo di modelli di LangChain e quindi un’implementazione diretta.

Utilizzo di Modelli di LangChain

Per utilizzare i modelli di LangChain, è necessario installare prima il pacchetto Langchain:

pip install langchain

Quindi possiamo istanziare un oggetto LangChain:

from pandasai import PandasAI
from langchain.llms import OpenAI

langchain_llm = OpenAI(openai_api_key="my-openai-api-key")
pandasai = PandasAI(llm=langchain_llm)

Il tuo ambiente è pronto e PandasAI utilizzerà automaticamente un llm di LangChain e lo convertirà in un llm di PandasAI.

Implementazione diretta (senza LangChain)

Questo articolo utilizza questo secondo approccio installando PandasAI senza utilizzare LangChain. Al momento della stesura di questo articolo, Colab non ha PandasAI preinstallato come Pandas. Questo è il motivo per cui dobbiamo iniziare installandolo.

pip install pandasai

Un’altra cosa fondamentale da notare è che è necessaria una chiave API OpenAI per utilizzare PandaAI. Una chiave API può essere creata con un account sulla piattaforma OpenAI. Visita qui per creare una chiave.

Ricorda di tenere al sicuro la chiave per un uso futuro, poiché tornare al sito non ti darà accesso per copiare la chiave. Ho anche nascosto la mia chiave API al pubblico per gestire i miei crediti. Fai lo stesso!

Nota: Con un account OpenAI gratuito, potresti non essere in grado di tracciare grafici con PandasAI in modo comodo a causa delle restrizioni di 3 prompt al minuto. Questo serve a gestire l’elevata domanda del sistema e mantenerlo ottimizzato.

Importazione delle dipendenze

Continuiamo importando le nostre dipendenze.

import pandas as pd

# PandasAI
from pandasai import PandasAI

# Per i grafici
import seaborn as sns

# dataset iris incorporato da seaborn
iris = sns.load_dataset('iris')

# Visualizzazione delle prime righe
iris.head()

Successivamente, importiamo OpenAI da Pandasai, che abbiamo installato in precedenza. Assicurati di inserire la tua chiave API sostituendo INSERT_YOUR_API_KEY_HERE prima di eseguire il codice, come mostrato di seguito.

# DataFrame di esempio
df = iris

# Istanziare un LLM
from pandasai.llm.openai import OpenAI

# Assegnazione della chiave API
llm = OpenAI(api_token="INSERT_YOUR_API_KEY_HERE")

# Chiamata a PandasAI
pandas_ai = PandasAI(llm)

Query conversazionale

Ora vediamo alcuni suggerimenti di testo sul dataset iris.

Esempio 1

prompt=’Qual è la specie più comune?’

# Esecuzione del prompt PandasAI
pandas_ai.run(df, prompt='Qual è la specie più comune?')

Oh, la specie più comune è effettivamente setosa!

Esempio 2

prompt=’Qual è la media di sepal_length?’

# Chiamata a PandasAI
pandas_ai = PandasAI(llm)

# Esecuzione del prompt PandasAI
pandas_ai.run(df, prompt='Qual è la media di sepal_length?')

La lunghezza media del sepalo del dataset è 5,84.

Esempio 3

prompt=’Qual è la media di sepal_width?’

# Chiamata a PandasAI
pandas_ai = PandasAI(llm)

# Esecuzione del prompt PandasAI
pandas_ai.run(df, prompt='Qual è la media di sepal_width?')

La larghezza media del sepalo è 3,0573333333333337.

Esempio 4

prompt=’Qual è la lunghezza del petalo più comune?’

# Chiamata a PandasAI
pandas_ai = PandasAI(llm)

# Esecuzione del prompt PandasAI
pandas_ai.run(df, prompt='Qual è la lunghezza del petalo più comune?')

In base ai dati forniti, la lunghezza del petalo più comune è 1,4.

Tracciamento di grafici con PandasAI

Sì, non possiamo generare solo testi! Possiamo anche generare grafici e grafici utilizzando PandasAI. Questo richiederà una chiave API a pagamento, altrimenti potrebbe generare un errore di limite di velocità (RateLimitError). Puoi provare a eseguire i tuoi suggerimenti di volta in volta. Tra intervalli di 20 secondi, oppure puoi semplicemente ottenere un piano a pagamento.

Gestione dell’errore di limite di velocità (RateLimitError) in PandasAI

Probabilmente incontrerai un errore di RateLimit quando inizierai a generare grafici o diagrammi. Questo errore verrà riscontrato da coloro che utilizzano una chiave API gratuita. Una soluzione è ottenere un piano a pagamento. Questo ti fornisce più credito e risorse per svolgere compiti impegnativi. Ma se vuoi solo sperimentare o hai accesso solo a una chiave gratuita, devi regolare manualmente come esegui il tuo codice. Si consiglia di eseguire solo prompt limitati con un account gratuito con intervalli di circa 20 secondi tra i prompt. In questo modo puoi eseguire il tuo codice a intervalli di 20 secondi. Questo serve a gestire il server tra gli utenti a causa dell’elevata domanda.

Esempio 1

Prompt = “Plot the histogram of the entries.”

# Esecuzione del prompt PandasAI
response = pandas_ai.run(
    df,
    "Plot the histogram of the entries",
)
print(response)

Certo, ecco un istogramma delle voci nel dataset. Mostra la distribuzione dei valori per ogni variabile, inclusa la lunghezza del sepalo, la larghezza del sepalo, la lunghezza del petalo, la larghezza del petalo e la specie. L'istogramma è un modo utile per visualizzare i dati e individuare eventuali modelli o tendenze che possono esistere.

Esempio 2

Prompt = “Perform scattered plot of sepal_length and sepal_width”

# Esecuzione del comando Pandas AI
response = pandas_ai.run(
    df,
    "Perform scattered plot of sepal_length and sepal_width",
)
print(response)

Certo! Per creare un grafico a dispersione della lunghezza del sepalo e della larghezza del sepalo, possiamo utilizzare i dati forniti nella tabella. La tabella include colonne per la lunghezza del sepalo, la larghezza del sepalo, la lunghezza del petalo, la larghezza del petalo e la specie. Possiamo concentrarci solo sulle colonne della lunghezza del sepalo e della larghezza del sepalo per creare il grafico.

Esempio 3

Prompt = “Plot a scattered plot of sepal_length and sepal_width for the species”

# Esecuzione del comando Pandas AI
response = pandas_ai.run(
    df,
    "Plot a scattered plot of sepal_length and sepal_width for the species",
)
print(response)

Certo! Per tracciare un grafico a dispersione della lunghezza del sepalo e della larghezza del sepalo per la specie, possiamo utilizzare il dataset fornito che include colonne per la lunghezza del sepalo, la larghezza del sepalo, la lunghezza del petalo, la larghezza del petalo e la specie. Ci concentreremo solo sulle colonne della lunghezza del sepalo e della larghezza del sepalo. Quindi, possiamo creare un grafico a dispersione con la lunghezza del sepalo sull'asse x e la larghezza del sepalo sull'asse y. Questo ci permetterà di visualizzare eventuali relazioni potenziali tra queste due variabili per ogni specie nel dataset.

Le possibilità continuano ad aumentare. Puoi provare i tuoi comandi e vedere come va. L’obiettivo è ottenere i benefici che derivano dall’intelligenza artificiale generativa.

Conclusioni

Abbiamo visto che utilizzando modelli di linguaggio di grandi dimensioni per estrarre informazioni dai dataset, Pandas AI può trasformare potenzialmente l’analisi dei dati. Tuttavia, è limitato e ha bisogno di una verifica umana per garantire l’accuratezza. Questo problema può essere risolto attraverso l’apprendimento dell’ingegneria dei prompt. Quindi, possiamo concludere dicendo che PandasAI è Pandas + AI. Più specificamente, possiamo dire Pandas + Intelligenza Artificiale Generativa. Tutto ciò è possibile utilizzando comandi, che permettono all’utente di interagire con i compiti in modo simile a una conversazione umana. I prompt vengono elaborati con NLP avanzata e vengono applicati ad altre attività.

Punti Chiave

  • Le innovazioni nell’Intelligenza Artificiale Generativa stanno rivoluzionando i dati, spingendo le aziende a esplorare soluzioni innovative come ChatGPT e PandasAI, migliorando l’analisi e la visualizzazione dei dati.
  • PandasAI è una libreria Python che utilizza modelli di Intelligenza Artificiale Generativa per migliorare la produttività di Pandas migliorando l’analisi e la manipolazione dei dati, utilizzando l’ingegneria dei prompt e le capacità di GenAI.
  • L’Intelligenza Artificiale Generativa risparmia tempo e consente la creazione di sistemi non tecnici attraverso comandi conversazionali.

Domande frequenti (FAQ)

  • Codice Github: https://github.com/inuwamobarak/pandasAI
  • PandasAI: https://github.com/gventuri/pandas-ai
  • https://miro.medium.com/v2/resize:fit:1358/0*uPrVQazL1U4woEO9.png
  • Arte Pandasai: https://github.com/gventuri/pandas-ai/blob/main/images/pandas-ai.png?raw=true

I media mostrati in questo articolo non sono di proprietà di Analytics Vidhya e vengono utilizzati a discrezione dell’autore.