Nella lezione precedente abbiamo seguito tutta la procedura necessaria per integrare ChatGPT nel Terminale della nostra distribuzione Linux. Grazie a Python, alla libreria Shell GPT e alle API di OpenAI possiamo infatti interrogare il modello generativo GPT tramite la linea di comando. Scopriamo quindi quali aspetti del nostro lavoro possono essere facilitati grazie a questo nuovo strumento.
Gestire i parametri di input
La versione standard di ChatGPT presenta un semplice modulo nel quale digitare la propria richiesta. Nel caso della nostra integrazione sul Terminale abbiamo invece la possibilità di utilizzare dei parametri con i quali definire il modo in cui deve essere generato un output. Analizziamo di seguito quelli che potrebbero risultare più utili nell'affrontare i task di amministrazioni di sistema e programmazione.
Parametro | Descrizione |
---|---|
--chat
|
Permette di inizializzare una sessione di chat associando ad essa un nome e un prompt specifico. |
--code
|
Consente di generare output sotto forma di codice. |
--shell
|
Permette di generare output sotto forma di istruzioni da linea di comando. |
--execute
|
Esegue le istruzioni generate dal parametro precedente. |
Questi parametri possono essere utilizzati anche in combinazione tra loro o integrati con altre opzioni messe a disposizione da Shell GPT. Di seguito verranno proposti alcuni esempi, prima di iniziare ricordiamoci però di accedere alla nostra directory di progetto (dirGPT
) e di attivare l'ambiente virtuale (TerminaleGPT
) dedicato a Shell GPT tramite il comando:
source TerminaleGPT/bin/activate
Inizializzare una sessione di chat
Il modo più semplice di utilizzare il parametro --chat
può essere riassunto tramite la seguente istruzione:
sgpt --chat cifra "Registra il numero 8"
Nel caso specifico l'opzione --chat
permette di produrre una sessione univoca chiamata cifra
. A quest'ultima viene poi associato un prompt ("Registra il numero 8") di cui il chatbot dovrà tenere conto nel prompt successivo. Come riutilizzare le informazioni memorizzate in sessione? Ad esempio in questo modo:
sgpt --chat cifra "Moltiplica il numero registrato per se stesso"
Il sistema ricorderà che il numero registrato è 8, lo moltiplicherà per se stesso restituendo in output il risultato corretto.
È possibile inizializzare più sessioni contemporaneamente con nomi differenti, per visualizzarne una lista basta usare l'istruzione:
sgpt --list-chat
Nello stesso modo è possibile visualizzare tutte le iterazioni relative ad una specifica sessione di chat tramite l'opzione --show-chat
. In questo modo:
sgpt --show-chat cifra
Generare codice con --code
Il parametro --code
for
--code
--code
sgpt --chat for_py --code "Usa il ciclo for di Python per sommare.."
Fatto questo il codice prodotto rimarrà residente in sessione (for_py
while
sgpt --chat for_py --code "Sostituisci il ciclo for con il while"
Il risultato dei due prompt può essere utile per confrontare le due espressioni generate dal sistema e utilizzare quella più performante per l'economia della propria applicazione.
Comandi da Terminale con --shell
La linea di comando di Linux prevede un numero enorme di istruzioni e combinazioni tra parametri, impossibile ricordarle tutte. A questo proposito il nostro chatbot e l'opzione --shell
apropos
whatis
man
--execute
Cominciamo con qualcosa di semplice, chiedendo ad esempio al sistema quale sia il comando per visualizzare la lista dei file e delle cartelle presenti nella directory corrente:
sgpt --shell "Elenca i file e le cartelle della directory corrente"
L'output in figura è corretto: ls -a
Esattamente come accade con --code
--shell
--chat
L'immagine precedente mostra ad esempio la creazione di una sessione di chat, a cui è stato attribuito il nome CMD
--shell
ls -a
dir
ls -a
Eseguire comandi da Terminale con --execute
--execute
--shell
--shell
--execute
prompt
sgpt --shell --execute "prompt"
Immaginiamo per esempio di voler creare nella directory corrente una cartella chiamata chat
bot
--shell
Ora, se volessimo ripetere lo stesso comando richiedendo inoltre al chatbot di eseguirlo per noi, dovremmo agire in questo modo:
Il sistema richiederà di confermare il comando da Shell, quindi per lanciarne l'esecuzione sarà sufficiente premere il tasto "y". A questo punto potremo verificare che la nostra operazione abbia avuto successo, magari lanciando al chatbot una richiesta come:
sgpt --shell --execute "Mostra cartelle e sottocartelle della directory corrente"
Conclusioni
Integrare il modello generativo GPT nel proprio Terminale Linux permette di creare rapidamente codice e comandi da Shell. Scopriremo presto altri ambiti in cui utilizzare questo strumento per incrementare la nostra produttività.