Come utilizzare ChatGPT di OpenAI per l’operatività quotidiana, dai commit Git alla shell
Esistono modi diversi di utilizzare ChatGPT, il bot prodotto da OpenAI (che di fatto è controllata da Microsoft), rispetto alle semplici chat interattive con cui fare screenshot da pubblicare sui social per poi vantarsi di aver “battuto” una intelligenza artificiale? In effetti sì e questo articolo cerca di portare qualche esempio.
Come iniziare ad usare ChatGPT
La prima questione da risolvere è basilare: capire come accedere a ChatGPT è il passo fondamentale per iniziare ad utilizzarlo. Il servizio è fornito da OpenAI e per iniziare ad utilizzarlo va creato un account presso il sito (si possono usare login Google o Microsoft se ne si possiede già una).
Una volta che l’account è creato la schermata iniziale consente di accedere alla chat cliccando sul tasto “New chat” per iniziare ad interagire con il bot e da qui è quindi possibile ragionare in termini di domande. Dalla lista dei presidenti italiani fino a come compilare un sorgente in Go, le domande a cui ChatGPT potrà rispondere sono potenzialmente infinite. Come abbiamo raccontato è possibile anche fargli scrivere dei racconti o dei romanzi.
È importante ricordare come ciò di cui stiamo parlando sia il servizio gratuito offerto da OpenAI, che molte volte a causa dell’enorme quantità di richieste, potrebbe non essere disponibile. Esiste anche la possibilità di effettuare delle subscription a pagamento, proprio per evitare questo genere di indisponibilità.
Generare commit message Git con ChatGPT
Fin qui domande e risposte, ma c’è dell’altro? Stando al progetto AI Commits si direbbe proprio di sì.
Si tratta infatti di una CLI (Command Line Interface) che scrive i messaggi di commit in maniera automatica, senza quindi vi sia la necessità di documentare quello che si è modificato nel commit message, lasciando fare tutto a ChatGPT.
Come avviene la magia? In 2 fasi, la prima è il reperimento della chiave di accesso ad OpenAI che andrà generata cliccando sul bottone “+ Create new secret key” e memorizzata.
La seconda è l’installazione del tool aicommit
. Per fare un test veloce sarà possibile avviare un container node
in questo modo:
> docker run -it node /bin/bash
All’interno di questo container sarà possibile installare il client aicommit
popolando il file ~/.aicommits
con la secret key appena generata:
root@c95b9cfb3840:/# npm install -g aicommits
added 1 package in 2s
npm notice
npm notice New patch version of npm available! 9.5.0 -> 9.5.1
npm notice Changelog: https://github.com/npm/cli/releases/tag/v9.5.1
npm notice Run npm install -g npm@9.5.1 to update!
npm notice
root@c95b9cfb3840:/myrepo# echo 'OPENAI_KEY=<TOKEN GENERATO IN PRECEDENZA>' > ~/.aicommits
Per testare il funzionamento di aicommits
si dovrà creare un repository Git di test come il seguente, effettuando il primo commit:
root@c95b9cfb3840:/# mkdir /myrepo
root@c95b9cfb3840:/# cd /myrepo
root@c95b9cfb3840:/myrepo# git config --global init.defaultBranch main
root@c95b9cfb3840:/myrepo# git config --global user.email "rasca@mmul.it"
root@c95b9cfb3840:/myrepo# git config --global user.name "RaSca"
root@c95b9cfb3840:/myrepo# git init
Initialized empty Git repository in /myrepo/.git/
root@c95b9cfb3840:/myrepo# echo 'My Helloworld project' > README.md
root@c95b9cfb3840:/myrepo# cat <<EOF > helloworld.java
import java.lang.System;
import java.io.IOException;
class HelloWorldApp {
public static void main (String args[]) throws IOException
{
System.out.println("Hello World !");
}
}
> EOF
root@c95b9cfb3840:/myrepo# git add .
root@c95b9cfb3840:/myrepo# git status
On branch main
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: README.md
new file: helloworld.java
Quindi, riassumendo le operazioni effettuate, nel repository è stato creato un file README.md
ed un file helloworld.java
, tutto quello che serve per provare a sfruttare aicommits
per generare un commit message automatico:
root@c95b9cfb3840:/myrepo# aicommits
┌ aicommits
│
○ Detected 2 staged files:
README.md
helloworld.java
│
○ Changes analyzed
│
○ Use this commit message?
Add README file and Hello World program
│ Yes
│
└ ✔ Successfully committed!
root@c95b9cfb3840:/myrepo# git log
commit e0f4746d12ea51ecfac320d3a83c90690a9e8f10 (HEAD -> main)
Author: RaSca <rasca@mmul.it>
Date: Mon Feb 27 10:30:55 2023 +0000
Add README file and Hello World program
Il risultato è stato raggiunto, non che ci volesse poi molto a generare un commit message così semplice, ma è chiaro che da qui in poi i test potranno essere molteplici, ad esempio modificando il file Java nel repository di test e ripetendo la sequenza:
root@c95b9cfb3840:/myrepo# cat <<EOF > helloworld.java
import java.lang.System;
import java.io.IOException;
class HelloWorldApp {
public static void main (String args[]) throws IOException
{
System.out.println("My NEW MESSAGE !");
}
}
EOF
root@c95b9cfb3840:/myrepo# git add .
root@c95b9cfb3840:/myrepo# aicommits
┌ aicommits
│
○ Detected 1 staged file:
helloworld.java
│
○ Changes analyzed
│
○ Use this commit message?
Update message to "My NEW MESSAGE !"
│ Yes
│
└ ✔ Successfully committed!
root@c95b9cfb3840:/myrepo# git log
commit 410b59feafbcc0fa1efdec5552d012d6445b80a1 (HEAD -> main)
Author: RaSca <rasca@mmul.it>
Date: Mon Feb 27 10:34:11 2023 +0000
Update message to "My NEW MESSAGE !"
commit e0f4746d12ea51ecfac320d3a83c90690a9e8f10
Author: RaSca <rasca@mmul.it>
Date: Mon Feb 27 10:30:55 2023 +0000
Add README file and Hello World program
Utilizzare ChatGPT da linea di comando
Un’altra modalità di utilizzo di ChatGPT è mediante linea di comando, attraverso il tool Shell GPT.
Il principio di funzionamento è molto simile a quello illustrato precedentemente, ma in questo caso il software è scritto in Python.
La modalità di utilizzo ideale in questo caso è mediante Python Virtual Environment, in questi semplici passi:
asca@catastrofe [~]> mkdir shell-gpt
rasca@catastrofe [~]> python3 -m venv shell-gpt/
rasca@catastrofe [~]> source shell-gpt/bin/activate
(shell-gpt) rasca@catastrofe [~]> pip3 install shell-gpt
Collecting shell-gpt
Downloading shell_gpt-0.5.0-py3-none-any.whl (6.1 kB)
...
...
Successfully installed certifi-2022.12.7 charset-normalizer-3.0.1 click-8.1.3 idna-3.4 markdown-it-py-2.2.0 mdurl-0.1.2 pygments-2.14.0 requests-2.28.2 rich-13.3.1 shell-gpt-0.5.0 typer-0.7.0 urllib3-1.26.14
Al primo avvio verrà richiesta la chiave (o token) generato in precedenza, ma sarà già possibile effettuare le domande interessate:
(shell-gpt) rasca@catastrofe [~]> sgpt "What is Birmania's capital?"
Please enter your API secret key
The capital of Burma (also known as Myanmar) is Naypyidaw.
(inutile che scriva quanto è importante sapere quale sia la capitale della Birmania)
Con potenziale generazione di comandi:
(shell-gpt) rasca@catastrofe [~]> sgpt --shell "Create an empty file named PIPPO"
touch PIPPO
E relativa effettiva esecuzione:
(shell-gpt) rasca@catastrofe [~]> sgpt --shell --execute "Create an empty file named PIPPO"
touch PIPPO
Execute shell command? [y/N]: y
(shell-gpt) rasca@catastrofe [~]> ls PIPPO
PIPPO
Da qui in poi… Spazio alla fantasia!
Conclusioni
Quanto mostrato ovviamente è solo la punta dell’iceberg, infatti tool come quelli illustrati stanno fiorendo a decine ogni giorno, pertanto è davvero solo una questione di tempo da dedicare alla sperimentazione.
Conclusioni, quelle vere
Che siate affascinati o meno in merito a quanto esposto, che riconosciate quanto ChatGPT possa fare per il vostro lavoro o per l’open-source in generale, va chiarita una cosa assolutamente essenziale: tutti questi automatismi, tutte queste domande, tutti i potenziali comandi che potrete far eseguire in autonomia a ChatGPT sono registrati.
State usando una chiave che è associata al vostro utente, pertanto chi è dall’altra parte della cornetta sa esattamente ciò che state facendo, perché glielo state dicendo voi. Occhio quindi a chiavi, password, ma anche in generale tutto il codice che date in pasto a questi tool, perché, inutile sottolinearlo: NIENTE È GRATIS.
Uomo avvisato…
Raoul Scarazzini
Da sempre appassionato del mondo open-source e di Linux nel 2009 ho fondato il portale Mia Mamma Usa Linux! per condividere articoli, notizie ed in generale tutto quello che riguarda il mondo del pinguino, con particolare attenzione alle tematiche di interoperabilità, HA e cloud.
E, sì, mia mamma usa Linux dal 2009.
Se vuoi sostenerci, puoi farlo acquistando qualsiasi cosa dai diversi link di affiliazione che abbiamo nel nostro sito o partendo da qui oppure alcune di queste distribuzioni GNU/Linux che sono disponibili sul nostro negozio online, quelle mancanti possono essere comunque richieste, e su cui trovi anche PC, NAS e il ns ServerOne. Se ti senti generoso, puoi anche donarmi solo 1€ o più se vuoi con PayPal e aiutarmi a continuare a pubblicare più contenuti come questo. Grazie!
Hai dubbi o problemi? Ti aiutiamo noi!
Se vuoi rimanere sempre aggiornato, iscriviti al nostro canale Telegram.Se vuoi ricevere supporto per qualsiasi dubbio o problema, iscriviti alla nostra community Facebook o gruppo Telegram.
Cosa ne pensi? Fateci sapere i vostri pensieri nei commenti qui sotto.
Ti piace quello che leggi? Per favore condividilo con gli altri.