Uporaba ChatGPT za programiranje v Pythonu, C in Javi

ChatGPT je strašljivo dober pri pisanju kode.

Vsi so že slišali ChatGPT na tej stopnji. To je klepetalni robot, ki ga poganja umetna inteligenca in uporablja modele obdelave naravnega jezika za izdelavo odgovorov na zapletena vprašanja. Ti odgovori morda niso vedno točni, vendar so ponavadi dovolj podrobni, da lahko dokaj enostavno preverite dejstva, ki vam jih daje. Kaj pa, če bi vzeli ChatGPT in poskušali z njim napisati kodo?

Kot se je izkazalo, je to nekaj, kar lahko storite z različnimi stopnjami uspeha, odvisno od jezikov, ki jih želite uporabljati, in kaj želite z njimi doseči. Preizkusil sem ga, da vidim, kako dobro bi se obneslo v različnih programskih jezikih za dokončanje različnih nalog. Prav tako ne bom spreminjal kode, ki jo ustvari ChatGPT, le vodil ga bom pri ustvarjanju delujoče kode, če koda, ki jo ustvari, ne deluje.

Za preizkus ChatGPT sem uporabil tri jezike, ki jih že poznam: Python, C in Java. Rezultati so bili še posebej presenetljivi, saj se je zaradi abstraktne narave tega, kar sem od njega zahteval, nekoliko boril s Pythonom, vendar je z lahkoto obravnaval C in osnovno Javo. tudi jaz imam

ustvaril repozitorij GitHub z vso kodo, ki je tukaj dostopna, tako da jo lahko preizkusite sami.

Samodejno preverjanje strani v Pythonu

Python je moj najljubši programski jezik za delo, in to zahvaljujoč moči, ki jo ima, in njegovi preprostosti uporabe. V preteklosti sem v Pythonu napisal veliko orodij za avtomatizacijo delov svojega delovnega toka, moja diplomska naloga iz računalništva pa je bila celo v celoti narejena s Pythonom. Prosil sem ChatGPT, naj napiše program, ki bi lahko redno pregledoval spletno stran za spremembe, in večinoma je uspel.

Težava z zgornjo kodo, ki mi jo prikaže, je, da ne simulira pravega brskalnika. Spletna mesta preverijo parameter v vašem brskalniku, imenovan »uporabniški agent«, ki določa, kakšen brskalnik uporabljate oziroma ali ste bot. Mnoga spletna mesta ne sprejemajo povezav, ki ne definirajo uporabniškega agenta, in naletel sem na to, ko sem ga usmeril na XDA. Prosil sem ga, naj zahtevi doda naslove po meri za simulacijo pravega brskalnika, in ustregel je.

Zgornja koda deluje za statična spletna mesta, vendar je težava v tem, da je večina vsebine, ki jo berete na spletu, dinamične. Če stran vrne trenutni čas, na primer nekje na strani, bo zgornja koda vedno povedala, da se je stran spremenila vsakič, ko se osveži. Ko sem na to opozoril ChatGPT, se je zmedel in mi ponudil popolnoma napačno rešitev težave.

Zgoraj je napačna razlaga delovanja zgoščenj. Bistvo zgoščevanja je, da bo manjša sprememba vnosa povzročila veliko razliko v zgoščevanju, saj sta dva zgoščevanja v bistvu neprimerljiva. Ko sem mu rekel, da je napačna trditev, da so zgoščene vrednosti najboljši način za primerjavo in iskanje sprememb, je odgovoril z opravičilom in mi dal nekaj, kar naredil delo.

Edina težava, ki sem jo odkril pri zgornji kodi, je ta, da je za večja spletna mesta računsko drago, saj za primerjavo in izračun razlike uporablja obdelavo naravnega jezika med njimi. Kljub temu je 5-odstotni prag spremenjene vsebine dovolj dober za večino spletnih mest, če želite preveriti, ali so na voljo posodobitve, in po potrebi lahko prag prilagodite. Trajalo je nekaj časa, a je na koncu prišlo.

Obstaja veliko razlogov, zakaj bi morda želeli spletno strgalo, kot je eden od teh, in čeprav obstajajo orodja, ki to lahko storijo, je kul ustvariti svojega. Uporabite jih lahko za sledenje paketom ali, v mojem primeru, za iskanje novih nepremičnin, ki se oddajajo na lokalnih spletnih mestih za nepremičnine.

Generator gesel v C

Ker je varnost zadnje čase v modi, je pomembno, da uporabljate varna gesla in tudi dvostopenjsko avtentikacijo. Če imate težave z varnim delom gesla, je zelo enostavno napisati generator gesel v C. ChatGPT je to opravil precej enostavno in edina težava, ki sem jo odkril, je bila, da ko sem ga prosil, naj ustvari generator gesel, ni uvozil knjižnice String C. To sem mu povedal in to je dodal k uvozom na začetku.

Globalno spremenljivko MAX_LENGTH sem povečal na 32 znakov namesto na 16 in zame je ustvarila naslednje geslo: aW3H0E(&FPQvG8B@4*()+4yRKTKB#U0O. Lahko rečemo, da deluje!

Kalkulator v Javi

Precej osnovni program, s katerim ima veliko ljudi izkušnje v Javi, je izdelava kalkulatorja. To je eden najzgodnejših izzivov, s katerimi se bodo računalniški znanstveniki soočili v svoji programski karieri, ne glede na to, katerega jezika se bodo najprej lotili. Prosil sem ChatGPT, naj napiše kalkulator v Javi, ki bo uporabljal vsaj dva razreda, in v prvem poskusu je deloval odlično.

To je razred kalkulatorja:

To je glavni razred:

Ustvarjanje obeh teh razredov v mojem IDE, IntelliJ, in izvajanje glavnega razreda povzročita popolno delovanje program kalkulator, ki sprejme dve števili in operator za seštevanje, odštevanje, množenje oz delitev.

ChatGPT je spodoben pri programiranju

Čeprav se ne bi zanašal, da bo ChatGPT naredil vse namesto vas, je jasno, da lahko zelo dobro opravi delo pri ustvarjanju programov in upoštevanju kritik, ko pride do težav. Presenečen sem bil, ko sem videl, da predlaga algoritem zgoščevanja kot način za razlikovanje med manjšimi spremembami na spletni strani, vendar razen tega ni imel težav z bolj osnovnimi nalogami. Tudi v primeru programa Python je imel že od samega začetka pravo idejo in bi se na bolj statičnih straneh odlično obnesel.

Seveda ChatGPT še ne bo kmalu nadomestil programerjev, je pa na poti, da postane zelo dobro orodje za delovno silo. GitHubov kopilot, na primer uporablja GPT tehnologija za pomoč ljudem pri pisanju kode in bo s časom le še naprednejša. Tudi če ste programer začetnik, bi vam lahko tovrstno orodje potencialno pomagalo pri učenju, če bi mu popolnoma zaupali, vendar včasih naredi nenavadne napake, kot smo videli.

Seveda so tukaj podani primeri zelo osnovni in večina programerjev bi jih lahko dokaj enostavno napisala, vendar to ni bistvo. Strašljivo dober je pri gradnji rešitev za preproste naloge in zdi se, da spodobno dobro obvlada tudi bolj zapletene naloge. Navdušeni smo, da vidimo, kam bodo takšna orodja šla v prihodnosti in ljudem pomagala izboljšati svoje sposobnosti.