shellgpt

ChatGPT în terminalul Linux? Da, de ce nu?

După ce a stat mai bine de zece ani cu capul la cutie (în urma unor încercări destul de jenante), din mirajul revoluțiilor/apocalipselor (în funcție de partea baricadei din care privim), pe lângă multivers, NFT și crypto, AI revine pe micile și mai puțin micile ecrane cu un mai vechi termen (nou de data asta), ChatGPT și ale sale variante alternative :D.

A trecut ceva vreme de când a ajuns un termen din lumea tehnologiei să acapareze atât de mult interes, fie că vorbim de copii de școală generală sau prim-siniștri, companii mai mari sau mai mici din zona tehnologiei sau controlori de bilete STB.

Nu mă apuc acum să povestesc despre ce știe și cum știe să facă ChatGPT, s-a auzit destul despre el, chiar și eu l-am menționat, dar ca utilizator de GNU/Linux, m-a gâdilat la neuron ideea de a avea acces la jucărie din terminalul meu.

Și aici intră în discuție ShellGPT, acesta aducând funcționalitatea ChatGPT în terminalul utilizatorului. Cu ShellGPT poți accesa API-ul ChatGPT într-um mod frumos și eficient, direct în consolă, într-un mod pur “linuxistic”. 🙂

Acum că povestea are un început, să vedem cine este ShellGPT și cum putem să îl folosim pentru a rula ChatGPT în terminalul Linux.

ShellGPT este dezvoltat de Farkhod Sadykov (împreună cu Eric, Loïc Coyle și Ernesto Serrano), încercând să devină o versiune stabilă de ChatGPT în linie de comandă. Este bazat pe noul model LLM (large language model) al GPT-ului produs de OpenAI.

Odată conectat la API-ul de la ChatGPT, ShellGPT știe să ofere sugestii, recomandări și chiar să execute comenzi în terminal în baza cerințelor utilizatorului, iar o altă parte faină este că e capabil să învețe din interacțiunea cu maimuța de la tastatură suficient cât să-și îmbunătățească rezultatele în timp. De ce este mișto? Păi având în terminal toată lucrarea, utilizatorul nu mai are nevoie să folosească copy/paste 🙂 și nici să învețe atât de utilele comenzi care l-ar putea ajuta, fiind suficient să scrie cam ce ar vrea să se întâmple, apoi să lase “roboțelul” să-i și ruleze comanda în terminal. Da, este din categoria “Nu încercați acasă!” adaptat la “Nu încercați în producție!” dar am o vagă bănuială că acest concept își va găsi suficienți fani.

Instalarea ShellGPT nu este foarte complicată, cu puțină răbdare și o doză de noroc (alături de câteva pachete necesare a fi instalate înainte) ShellGPT poate fi “pus pe picioare” relativ rapid.

Primul pe lista lucrurilor necesare pentru a putea folosi ShellGPT este Python iar versiunea trebuie să fie minim 3. Cum mai toate distribuțiile vin deja cu cel puțin o versiune de python instalată și aceasta este de cele mai multe ori bazată pe versiunea 3, dar ca să ne asigurăm că e versiunea activă, e mai sănătos să verificăm:

python3 --version

shellgpt

Dacă această comandă dă orori sau afișează ceva (mult) diferit de poză… e posibil să nu fie Python 3 instalat sau să avem parte de vreo instanță modificată.

Avem Python, trecem mai departe. Următorul pe listă este Pip. Pip este un manager de pachete pentru Python cu ajutorul căruia se pot instala pachete și librării utile în diverse momente, cum ar fi în cazul nostru cele necesare aducerii la viață al ChatGPT în sistemul nostru Linux. Din nou, în mai toate distribuțiile moderne vine preinstalat, dacă nu este deja prezent, trebuie pus. Pentru Debian și ale sale versiuni derivate comanda este:

sudo apt-get -y install python3-pip

shellgpt

După ce termina, verificăm că e instalat cu comanda:

pip3 --version

shellgpt

Următorul punct pe listă, deși nu este neapărat necesar pentru a putea instala ShellGPT, este venv. Cu acest modul de Python se pot face medii virtuale izolate care reduc cantitatea și intensitatea durerilor de cap care pot apărea atunci când ne jucăm cu pachete sau librării diverse, mai ales când testăm lucruri noi. Așadar, venv:

sudo apt install python3-venv

Din acest moment ne putem apuca pe îndelete de instalarea și configurarea ShellGPT pe mașina proprie.

Ca ShellGPT să poată funcționa avem nevoie de o cheie API de la OpenAI ca să putem accesa ChatGPT. OpenAI oferă pentru testare un credit de 5 USD, pentru acces, după consumarea celor 5 dolari “ie pe bani, da merită” 🙂 așadar, primul pas este să intrăm pe site-ul OpenAI pentru a face un cont și apoi să ne autentificăm. Odată autentificat, din colțul din dreapta, sus, clic pe imaginea de profil și apoi selectăm opțiunea “View API keys” din meniu.

Această opțiune ne duce pe pagina în care putem vedea ce chei pentru API au fost generate și putem genera alte chei.

shellgpt

Odată ajuns aici, butonul de generat o cheie nouă este vizibil în zona centrală. Cheia odată generată trebuie copiată/salvată undeva pentru a fi folosită mai târziu.

shellgpt

Acum că avem dependințele instalate și o cheie pentru API deja generată, să instalăm ShellGPT.

Facem un director nou ca să ne organizăm mai util fișierele, de exemplu “term-gpt” și ne mutăm în el.

mkdir term-gpt
cd term-gpt

Aici facem un mediu virtual pentru modulul nostru, eu l-am numit “gpt_cli”.

python3 -m venv gpt_cli

Dacă nu primim nici o eroare, putem trece la pasul următor, activarea acestui mediu virtual. În urma acestei comenzi vom vedea că suntem acum în mediul virtual, în partea stângă avem numele ales anterior.

source gpt_cli/bin/activate

shellgpt

Acum trebuie creată o variabilă de sistem în care vom seta cheia pentru API-ul ChatGPT pe care am făcut-o pe site-ul OpenAI. Pentru asta folosim comanda “export”.

export OPENAI_API_KEY=<cheia_mea_API_OpenAI>

Apoi verificăm cu comanda “env” că a ajuns corect.

shellgpt

Această variabilă de sistem este acum setată numai pentru sesiunea curentă, iar cum eu aș vrea să o am permanent setată, o voi adăuga și în fișierul .bashrc din directorul /home/userul-meu pentru a o face persistentă. Folosim un editor de text pentru asta și adăugăm aceeași comandă de mai sus, de preferat la finalul fișierului.

Salvat, ieșit din editor, încărcăm variabilele din .bashrc cu comanda “source” (din directorul /home/userul-meu).

source .bashrc

shellgpt

verificăm încă odată cu “env”.

shellgpt

Iar acum putem instala ShelGPT.

pip3 install shell-gpt

shellgpt

În cazul în care nu folosiți mediul virtual e bine să adăugați și userul sub care va rula, adăugând comenzii de mai sus și parametrul “–user”.

Mno, amu avem ShellGPT instalat pe instanța de Linux.
Ca să începem să-l folosim, rulăm comanda “sgpt”.

sgpt <opțiuni> <ce_vreau_sa_l_intreb>

shellgpt

Opțiunile care pot fi adăugate pentru a îmbunătăți (sau nu) căutările se regăsesc în tabelul de mai jos.

shellgpt

Și acum ne putem distra. De exemplu, care e distanța de la Pământ la Lună?

Folosind parametrii de mai sus îl putem aduce în modul chat folosing parametrul “–chat”.

sgpt --chat <un_nume_pentru_sesiunea_chat> <întrebarea_mea_incredibilă>

Altă opțiune utilă este “–code”.

sgpt --code "<problema_mea>"

shellgpt

Și ceea ce va deveni probabil noua normalitate în a da comenzi în terminale linux 🙂 opțiunea “–shell”.

sgpt --shell "<o_comandă_inteligentă>"

shellgpt

Dar nu vă speriați… e ca bancul cu prezentarea de Windows95… nu va rula direct “rm -rf /” ci doar va afișa comanda.
Dacă am încredere (și vă recomand să nu o faceți direct), mai e nevoie de parametrul “–execute” ca să se și întâmple. 🙂

Și așa intrăm în secolul XXI. Acum putem rula în același terminal și căutările pe google și/sau stackoverflow 🙂
Revin la recomandarea de la început, nu folosiți roboțeii AI (și aici includ oricare dintre ei, fără discriminare) în medii de producție, pe servere sau calculatoare care au date importante pentru voi sau firma la/pentru care lucrați.
Și nu introduceți date reale, cod sau lucruri care nu vă doriți să ajungă pe internet, pentru că e mai bine să fii prevăzător decât să regreți când îți găsești rezultatele muncii la liber pe net.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

© Alex. Burlacu