Ora che sappiamo come creare facilmente un chatbot in stile ChatGPT con le API di OpenAI e Python, continuiamo a sfruttare le nostre API key e il linguaggi creato da Guido van Rossum per integrare ChatGPT direttamente nel Terminale di una distribuzione Linux. Prima di iniziare elenchiamo però brevemente tutti gli strumenti che ci saranno utili nel corso delle prossime operazioni.
Requisiti per lo sviluppo del progetto
Per implementare un chatbot basato su ChatGPT abbiamo bisogno innanzitutto di una distribuzione Linux. Nel caso di questa trattazione abbiamo scelto Linux Mint che a sua volta è basata su Ubuntu, le procedure descritte sono quindi valide per tutte le derivante di Debian.
Il secondo requisito indispensabile è Python che dovrebbe essere già compreso nella nostra distribuzione riferimento. Possiamo comunque verificare la versione in uso tramite il comando:
python3 --version
Nel caso in cui Python non dovesse essere stato installato si potrà colmare facilmente tale lacuna seguendo la procedura descritta in questa lezione. Oltre a Python il sistema dovrà presentare pip
, il package manager del linguaggio che consente di integrare l'ambiente di sviluppo o produzione con librerie addizionali. La disponibilità di pip
può essere verificata con l'istruzione:
pip3 --version
In caso di esito negativo pip
può essere installato lanciando il comando proposto di seguito su qualsiasi distribuzione Linux supporti il gestore standard di pacchetti software APT (Advanced Packaging Tool):
sudo apt-get -y install python3-pip
Fatto questo si potrà verificare nuovamente la presenza di pip
all'interno del sistema.
Un altro requisito necessario sono le API key di OpenAI con le quali il nostro Terminale avrà la possibilità di interagire da remoto con le API messe a disposizione dagli sviluppatori di ChatGPT e del modello generativo GPT. L'attivazione di una API key richiede una procedura estremamente semplice e veloce che è stata descritta nella lezione precedente di questa guida.
Ultimo, ma non ultimo per importanza, avremo bisogno di Shell GPT, un tool Open Source basato su GPT (qui il repository) che consente di sfruttare le funzionalità del chatbot e del suo modello linguistico per generare rapidamente documentazione, snippet di codice, commenti ai sorgenti e istruzioni da linea di comando per la shell Linux. Prima di passare alla sua installazione occupiamoci però di creare un ambiente appositamente dedicato al nostro progetto.
Un ambiente virtuale con venv
venv
è un modulo per Python che permette di creare ambienti virtuali completamente indipendenti tra loro. Ciascun ambiente avrà a disposizione la propria raccolta di package Python ma essendo isolato non darà luogo a conflitti con gli altri. L'uso di venv
non è un requisito indispensabile per l'impiego di ShellGPT su Linux ma può facilitare notevolmente il nostro lavoro. Evitando ad esempio i problemi derivanti dalle potenziali incompatibilità tra le varie dipendenze delle librerie Python.
Procediamo quindi con l'installazione di venv
tramite il comando:
sudo apt install python3-venv
Ora utilizziamo il comando mkdir
per creare una directory da dedicare al nostro progetto e chiamiamola, ad esempio, dirGPT
. Una volta generata la cartella portiamoci al suo interno utilizzando il comando cd
seguito dal nome scelto in precedenza.
Da questa posizione possiamo inizializzare l'ambiente virtuale vero e proprio grazie al comando python3 -m venv
seguito dal nome che vogliamo assegnargli, ad esempio:
python3 -m venv TerminaleGPT
dove TerminaleGPT
è appunto il nome dell'ambiente virtuale da creare. Quest'ultimo dovrà essere poi attivato tramite il comando source
in un'istruzione come la seguente:
source TerminaleGPT/bin/activate
Come è possibile notare dall'immagine precedente, una volta creato l'ambiente virtuale il suo nome posto tra parentesi precederà quello dell'utente corrente e del sistema in uso nella linea di comando del terminale. Nel nostro caso avremo quindi:
(TerminaleGPT) claudio@claudio-Linux:~/dirGPT$
Utilizzare le API key di OpenAI
Prima di parlare delle API key è utile ricordare che le API di OpenAI sono disponibili a pagamento ma gli sviluppatori del servizio offrono un credito gratuito di 18 dollari per effettuare i primi test sulle loro interfacce di programmazione. Per cominciare ad utilizzarle non è necessario neanche comunicare un numero di carta di credito. Detto questo abbiamo a disposizione due modi per procedere: il primo consiste nel memorizzare la API key che vogliamo utilizzare in una variabile d'ambiente valida soltanto per la sessione corrente. Per far questo è sufficiente lanciare l'istruzione export OPENAI_API_KEY=
seguita dal codice della chiave in nostro possesso.
Per controllare che tutto sia andato per il meglio basterà digitare il comando env
seguito da [Invio] e verificare che la variabile sia stata inizializzata:
Il secondo metodo consiste nel registrare l'API key all'interno del sistema in modo definitivo. A questo scopo apriamo il file .bashrc
con un qualsiasi editor della nostra distribuzione, ad esempio nano
, e scriviamo l'istruzione export OPENAI_API_KEY=
seguita dalla API key da memorizzare permanentemente.
Una volta digitata la stringa salviamola con la combinazione di tasti CTRL + O e usciamo da nano
con CTRL + X. I cambiamenti effettuati potranno essere verificati tramite il comando env
già visto in precedenza ma per rendere effettive di modifiche si dovrà ricorrere al comando source .bashrc
.
Installazione di Shell GPT e test del chatbot
Ora che è tutto pronto non ci rimane altro che installare Shell GPT nel nostro sistema o, per meglio dire, nel nostro ambiente virtuale basato su venv
. Trattandosi di una libreria per Python affronteremo questa fase con pip
utilizzando l'istruzione:
pip3 install shell-gpt
In alternativa, se si lavora in un ambiente non virtualizzato, l'istruzione deve essere seguita dal parametro --user
, in questo modo:
pip3 install shell-gpt --user
Il nostro chatbot è quindi pronto a rispondere a qualsiasi domanda gli venga posta. Per far questo il quesito, delimitato da doppi apici, deve essere preceduto dal comando sgpt
. Ad esempio:
sgpt "Cosa è Linux?"
sgpt
prevede diverse opzioni con cui modulare il tipo di risposta ricevuta, la sua lunghezza e il suo livello di precisione. Di esse parleremo però nella prossima lezione.
Conclusioni
Dato che ora che disponiamo di ChatGPt integrato nel nostro Terminale Linux possiamo sfruttarlo per scrivere codice in vari linguaggi o generare istruzioni da linea di comando con cui svolgere operazioni anche molto complesse. Presto scopriremo come.