Home BIZNIS I ZABAVAKako da koristite ChatGPT za pisanje koda

Kako da koristite ChatGPT za pisanje koda

od itn

Može li ChatGPT da zameni programere? Koje programske jezike poznaje ChatGPT? Odgovaramo na ova i vaša druga pitanja o generativnom AI kodiranju.

Jedno od intrigantnijih otkrića o ChatGPT-u je da može da napiše prilično dobar kod. Testirali smo to u februaru kada smo ga zamolili da napiše dodatak za WordPress koji bi naš parner mogao da koristi na njegovom sajtu. Uradio je dobar posao, ali je to bio veoma jednostavan projekat.

Kako možete da koristite ChatGPT za pisanje koda kao deo vaše svakodnevne prakse kodiranja? To je ono što ćemo ovde da istražimo.

Koje vrste kodiranja ChatGPT može dobro da uradi?

Postoje dve važne činjenice o ChatGPT-u i kodiranju. Prvi je da može, u stvari, da piše koristan kod. Drugi je da može potpuno da se izgubi, padne u zečju rupu, juri njegov sopstveni rep i proizvodi apsolutno neupotreblјivo đubre.

Ovo smo otkrili na teži način. Nakon što smo završili dodatak za WordPress, odlučili smo da vidimo koliko daleko može da ide ChatGPT. Napisali smo veoma pažlјiv upit za Mac aplikaciju, uklјučujući detalјne opise elemenata korisničkog interfejsa, interakcija, šta će biti obezbeđeno u podešavanjima, kako će funkcionisati i tako dalјe. Onda smo to dali u ChatGPT.

ChatGPT je odgovorio samo sa poplavom teksta i koda. Onda je stao usred koda. Kada smo ga zamolili da nastavi, povratio je još više koda i teksta. Zatražili smo nastavak nakon nastavka i izbacio je sve više i više koda. Ali… ništa od toga nije bilo upotreblјivo. Nije identifikovao gde bi kod trebao da ide, kako da se konstruiše projekat i — kada smo pažlјivo pogledali proizvedeni kod — izostavio je glavne operacije koje smo zahtevali, ostavlјajući u jednostavnim tekstualnim opisima navodeći „programska logika ide ovde“.

Posle gomile ponovlјenih testova, postalo nam je jasno da ako zatražite od ChatGPT-a da isporuči kompletnu aplikaciju, ona neće uspeti. Posledica ovog zapažanja je da ako ne znate ništa o kodiranju i želite da vam ChatGPT nešto napravi, to neće uspeti.

Tamo gde ChatGPT uspeva, i to veoma dobro, jeste pomaganje nekome ko već zna kako da kodira da napravi određene rutine i obavi određene zadatke. Ne tražite aplikaciju koja radi na traci menija. Ali ako zatražite od ChatGPT-a rutinu za postavlјanje menija na traku menija, a zatim ga nalepite u vaš projekat, to će proći sasvim dobro.

Takođe imajte na umu da iako se čini da ChatGPT ima ogromnu količinu znanja o domenu (i često ima), nedostaje mu mudrosti. Kao takav, možda će moći da piše kod, ali neće moći da napiše kod koji sadrži nijanse za veoma specifične ili složene probleme koji zahtevaju duboko iskustvo da bi se razumeli.

Koristite ChatGPT za demo tehnike, pisanje malih algoritama i pisanje potprograma. Možete čak da naterate ChatGPT da vam pomogne da razbijete veći projekat na delove, a zatim možete da ga zamolite da vam pomogne da kodirate te delove.

Dakle, imajući to na umu, hajde da pogledamo neke konkretne korake kako da koristite ChatGPT za pisanje koda.

Kako ChatGPT može da vam pomogne da napišete kod

  1. Suzite i izoštrite vaš zahtev

Ovaj prvi korak je gde odlučujete šta ćete tražiti od ChatGPT-a – ali još uvek ništa ne pitajte. Odlučite šta želite da vaša funkcija ili rutina radi, ili šta želite da naučite da ugradite u vaš kod. Odlučite o parametrima koje ćete uneti u vaš kod i šta želite da dobijete. A onda pogledajte kako ćete to da opišete.

Zamislite da plaćate čoveka programera da to uradi. Da li toj osobi dajete dovolјno informacija da bi mogla da radi na njegovom zadatku? Ili ste previše nejasni i veća je verovatnoća da će osoba koju plaćate ili postavlјate pitanja ili će pretvoriti nešto potpuno nepovezano sa onim što želite?

  1. Koristite ChatGPT da istražite biblioteke i resurse

Nastavlјajući sa gornjim primerom, veoma stari školski način izdvajanja podataka sa web stranice bio je samo pronalaženje teksta između HTML tag-ova pasusa.

Ali sa porastom AI alata, ima više smisla koristiti AI biblioteku za izradu inteligentnog ekstrakta i rezimea. Jedno od mesta na kome se ChatGPT ističe (i to je takođe oblast koju možete lako da proverite da biste izbegli njegov autoritativan, ali pogrešan obrazac ponašanja) je pronalaženje biblioteka i resursa.

OpenAI (proizvođač ChatGPT-a) prodaje API pristup GPT-3 i GPT-4 engine-ima koji će raditi upravo ono što želimo. Ali u slučaju ovog primera, pretpostavimo da ne želimo da plaćamo naknade za transakcije.

Dakle, hajde da pogledamo interakciju sa ChatGPT-om da bismo shvatili kako da koristimo takav alat, besplatno, sa projektom koji radi u PHP-u.

Počeli smo sa upitom koji je dizajniran da izvuče informacije o tome koje biblioteke će pružiti želјenu funkcionalnost. Biblioteka (za one od vas koji čitaju zajedno, a nisu programeri) je telo koda kojem programer može da pristupi i koji obavlјa mnogo teškog rada za određenu svrhu. Veliki deo savremenog programiranja je pronalaženje i odabir pravih biblioteka. Dakle, ovo je dobra polazna tačka.

U ovom slučaju, gledamo blokove koda koje su napisali drugi lјudi koji će rezimirati tekst. Evo našeg prvog upita:

Opišite deset različitih biblioteka AI otvorenog koda (i jezike sa kojima rade) koje mogu da koristim za generisanje rezimea glavnog sadržaja bilo koje web stranice, ignorišući sve oglase ili ugrađene materijale.

Ovo nam je dalo upravo ono što smo želeli, uklјučujući i pominjanje OpenAI ponuda. Mislimo da bi OpenAI bio sjajan ovde, ali za ovaj hipotetički projekat, ne želite da budžetirate naknade za API. Zato ćemo suziti pitanje.

Da li je nešto od ovoga besplatno?

ChatGPT je zaštitio njegove opklade njegovim odgovorom. Evo šta piše: „Da, svih deset ovih biblioteka veštačke inteligencije su otvorenog koda i besplatne su za korišćenje. Međutim, neke od njih mogu da imaju ograničenja korišćenja ili zahtevaju plaćanje za pristup dodatnim funkcijama ili resursima“. Dakle, na osnovu toga smo razjasnili naš upit.

Koje od ovih biblioteka nemaju ograničenja korišćenja i ne zahtevaju dodatno plaćanje ili licenciranje

Primetite kako je ovo u velikoj meri razgovor. Ne moramo ponovo da postavlјamo prvobitno pitanje. Samo istražujemo na isti način na koji bi mogli da imamo stručnjaka pri ruci i da tražim pojašnjenje. U ovom slučaju, ChatGPT mi je dao osam izbora biblioteke, ali nijedan od niko od njih nije pomenuo PHP jezik u kojem smo planirali da kodiram. Dakle, evo sledećeg upita:

Od tih 8 biblioteka, mogu li da koristim bilo koju sa PHP-om?

Vratio je tri biblioteke, ali nismo bili sigurni šta je uradila svaka. Dakle, još jedno pitanje:

Koja je razlika između Sumy, Gensim i NLTK-a?

Još uvek nismo bili sigurni, pa smo pojasnili naš plan upotrebe i onda pitali:

Ako želim da napravim sažetke novinskih članaka na web stranici, koja biblioteka bi bolјe radila?

Odgovor koji smo dobili je bio jasan i obećavajući: „Sumy je posebno dizajniran za sumiranje teksta, što je zadatak kreiranja rezimea koji obuhvata najvažnije informacije iz dela teksta“. Dakle, sada je bilo vreme da vidimo šta je uklјučeno u njegovo korišćenje sa PHP-om. Postavili smmo naše poslednje pitanje za ovaj deo projekta:

Možeš li da objasniš kako da koristim Sumy iz PHP-a?

Slobodno se poigrajte na vašem računaru i nalepite ove upite u vašu ChatGPT instancu. Primetite da smo u koraku 1 odlučili za koji programski modul ćemo da dobijemo pomoć. Zatim, u ovom koraku, imali smo razgovor sa ChatGPT-om da odlučimo koju biblioteku da koristimo i kako da je integrišemo u naš projekat.

To možda ne izgleda kao programiranje, ali uveravamo vas da jeste. Programiranje nije samo ubacivanje redova koda na stranicu. Programiranje je otkrivanje kako da se integrišu svi različiti resursi i sistemi zajedno, i kako da se razgovara sa svim različitim komponentama vašeg rešenja. Ovde nam je ChatGPT pomogao da uradimo tu analizu integracije.

Inače, zanimalo nas je da li bi Google-ov Bard mogao da pomogne na isti način. Bard zapravo ne može da piše kod, ali je dao neke dodatne uvide u aspekt planiranja programiranja u odnosu na odgovore ChatGPT-a. Zato ne oklevajte da koristite više alata za triangulaciju odgovora koje želite. Evo te priče: Bard vs. ChatGPT: Može li Bard da vam pomogne u kodu? Od tog članka, Google je Bard-u dodao neke mogućnosti kodiranja. Ali nisu sve tako sjajne.

Sledeće je kodiranje.

  1. Zamolite ChatGPT da napiše primer koda

U redu, hajde da na trenutak stanemo. Ovaj članak je naslovlјen „Kako da koristite ChatGPT za pisanje koda“. I biće to, ali zaista tražimo od ChatGPT-a da napiše primer koda. Čekajte. Šta?

Da budemo jasni. Osim ako ne pišete veoma malu funkciju (kao što je sortir/randomizator linija koji je ChatGPT napisao za našeg partnera), ChatGPT neće moći da napiše vaš konačni kod. Prvo, moraćete da ga održavate. ChatGPT je užasan u modifikovanju već napisanog koda. Strašno, kao, to ne funkcioniše. Dakle, da biste dobili novi kod, morate da zamolite ChatGPT da generiše nešto novo. Kao što smo ranije otkrili, čak i ako je vaš upit praktično identičan, ChatGPT može da promeni ono što vam daje na veoma neočekivan način.

Dakle, u krajnjoj liniji: ChatGPT ne može da održava vaš kod, pa čak ni da ga podesi.

To znači da to morate sami da to uradite. Kao što znamo, prvi nacrt dela koda retko je konačan kod. Dakle, čak i ako biste očekivali da će ChatGPT generisati konačni kod, to bi zaista bila početna tačka, ona gde treba da ga dovedete do završetka, integrišete ga u vaš veći projekat, testirate, precizirate, otklonite greške itd.

Ali to ne znači da je primer koda bezvredan. Daleko od toga. Hajde da pogledamo prompt koji smo napisali na osnovu projekta koji smo ranije opisali. Evo prvog dela:

Dajte PHP funkciju koja se zove summarize_article.

Kao ulaz, summarize_article će biti prosleđena URL adresa članku na sajtu u vezi sa vestima kao što je ZDNET.com ili Reuters.com.

Govorimo ChatGPT-u koji programski jezik treba da koristi. Takođe mu govorimo unos, ali, dok to radimo, dajemo dva sajta kao uzorke koji će pomoći ChatGPT-u da razume stil članka. Iskreno, nismo sigurni da ChatGPT nije zanemario to uputstvo. Zatim ćemo vam reći kako da uradite najveći deo posla:

Unutar summarize_article, preuzmite sadržaj web stranice na navedenoj URL adresi. Koristeći biblioteku Sumy iz PHP-a i bilo koje druge neophodne biblioteke, izdvojite glavni deo članka, ignorišući sve oglase ili ugrađene materijale, i sumirajte ga na otprilike 50 reči. Uverite se da se rezime sastoji od celih rečenica. Možete da pređete preko 50 reči da završite poslednju rečenicu, ako je potrebno.

Ovo je veoma slično načinu na koji bi dali instrukcije zaposlenom. Želeli bi da ta osoba zna da nije bila ograničena samo na Sumy. Ako joj treba još jedan alat, želeli smo da ga koriste.

Takođe smo naveli približan broj reči da bi postavili granice za ono što smo želeli kao rezime. Kasnija verzija rutine bi mogla da uzme taj broj kao parametar. Zatim smo završil tako što smo rekli šta želimo kao rezultat:

Kada se obrada završi, kodirajte summarize_article tako da vraća rezime u običnom tekstu.

Dobijeni kod je prilično jednostavan. ChatGPT je pozvao drugu biblioteku (Goose) da preuzme sadržaj članka. Zatim je to prosleđeno Sumy-u sa ograničenjem od 50 reči, a zatim je vratio rezultat. I to je to. Ali kada su osnove napisane, samo je stvar programiranja da se vratite i dodate podešavanja, prilagodite ono što se prosleđuje u dve biblioteke i isporučite rezultate.

Jedna zanimlјiva tačka napomene. ChatGPT je napravio ogledni poziv rutini koju je napisao, koristeći URL nakon 2021. (kada se skup podataka ChatGPT-a završava).

Proverili smo taj URL i na Reuters-ovom sajtu i na Wayback Machine-u, i on ne postoji. ChatGPT je to upravo izmislio.

FAQ

Da li ChatGPT zamenjuje programere?

Ne za sada, ili barem ne još. ChatGPT programiranje je na nivou talentovanog studenta prve godine programiranja, ali je lenj (kao onaj student prve godine). To bi moglo da umanji potrebu za programerima veoma početnih nivoa, ali na sadašnjem nivou, mislimo da će samo olakšati život početnicima (pa čak i programerima sa više iskustva) da pišu kod i traže informacije. To definitivno štedi vreme, ali postoji nekoliko programskih projekata koje može da uradi sam – barem sada. U 2030? Ko zna.

Kako da dobijem odgovore kodiranja u ChatGPT-u?

Samo pitajte. Videli ste iznad kako smo koristili interaktivni dijalog za diskusiju da suzimo odgovore koje smo želeli. Kada radite sa ChatGPT-om, ne očekujte da će jedno pitanje magično obaviti sav posao umesto vas. Ali koristite ChatGPT kao pomoćnika i resurs i on će vam dati mnogo veoma korisnih informacija. Naravno, testirajte te informacije – jer, kako kaže John Schulman, suosnivač OpenAI-a, „Naša najveća briga bila je oko činjenica, jer model voli da izmišlјa stvari“.

Koje programske jezike poznaje ChatGPT?

Većinu njih. Veoma smo skrenuli s puta pokušavajući ovo. Testirali smo uobičajene moderne jezike, kao što su PHP, Python, Java, Kotlin, Swift, C# i još mnogo toga. Ali onda smo ga naterali da piše kod na nejasnim jezicima mračnog doba kao što su COBOL, Fortran, Forth, LISP, ALGOL, RPG (generator programa izveštaja, a ne role-playing igra), pa čak i IBM/360 asemblerski jezik.

Kao šlag na torti, dali smo mu ovaj upit:

Napišite sekvencu koja prikazuje ‘Zdravo, svet’ u ascii trepćućim svetlima na prednjoj ploči PDP 8/e

PDP 8/e je bio naš prvi računar, i ChatGPT nam je zapravo dao uputstva za uklјučivanje programa pomoću prekidača na prednjoj ploči. Bili smo impresionirani, radostni i pomalo uplašeni.

Pa šta je suština? Iskreno, ChatGPT može da budeveoma korisna alatka. Samo nemojte tome da pripisujete supermoći. Još uvek.

Banner

Banner

Možda će vam se svideti i