Korištenje ChatGPT-a za programiranje u Pythonu, C i Javi

click fraud protection

ChatGPT je zastrašujuće dobar u pisanju koda.

Svi su čuli ChatGPT u ovoj fazi. To je chatbot koji pokreće AI koji koristi modele obrade prirodnog jezika za dobivanje odgovora na komplicirana pitanja. Ti odgovori ne moraju nužno uvijek biti točni, ali obično su dovoljno detaljni da možete prilično lako provjeriti odgovore koje vam daju. Što ako biste uzeli ChatGPT i pokušali njime napisati kod?

Kako se pokazalo, to je nešto što možete učiniti s različitim stupnjevima uspjeha, ovisno o jezicima koje želite koristiti i što želite postići s njima. Isprobao sam ga da vidim koliko bi se dobro snašao u različitim programskim jezicima za izvršavanje različitih zadataka. Također neću raditi nikakve promjene u kodu koji ChatGPT proizvodi, samo ću ga voditi da stvori radni kod ako kod koji kreira ne radi.

Za testiranje ChatGPT-a koristio sam tri jezika s kojima sam već upoznat: Python, C i Java. Rezultati su bili posebno iznenađujući jer se malo mučio s Pythonom zbog apstraktne prirode onoga što sam od njega tražio, ali se s lakoćom nosio s C-om i osnovnom Javom. Također imam

stvorio GitHub repozitorij sa cijelim kodom koji je ovdje dostupan tako da ga možete sami isprobati.

Automatska provjera stranica u Pythonu

Python je moj omiljeni programski jezik za rad, a to je zahvaljujući moći koju ima i jednostavnosti korištenja. U prošlosti sam napisao mnoge alate u Pythonu kako bih automatizirao dijelove svog tijeka rada, a moj diplomski rad iz računalnih znanosti čak je u potpunosti izrađen putem Pythona. Zamolio sam ChatGPT da napiše program koji bi mogao skenirati web stranicu u potrazi za promjenama na periodičnoj vremenskoj osnovi, i uglavnom je uspio.

Problem s gornjim kodom koji mi daje je taj što ne simulira pravi preglednik. Web-mjesta provjeravaju parametar u vašem pregledniku koji se zove "korisnički agent", a on definira kakav preglednik koristite ili jeste li bot. Mnoga web mjesta ne prihvaćaju veze koje ne definiraju korisnički agent, a na to sam naišao kad sam ga usmjerio na XDA. Zamolio sam ga da zahtjevu doda prilagođena zaglavlja za simulaciju pravog preglednika i on je to prihvatio.

Gore naveden kod radi za statične web stranice, no problem je u tome što je velik dio sadržaja koji čitate na mreži dinamičan. Ako stranica vrati trenutno vrijeme, na primjer, negdje na stranici, tada će gornji kod uvijek reći da se stranica promijenila svaki put kad se osvježi. Kad sam to istaknuo ChatGPT-u, zbunio se i dao mi potpuno netočno rješenje problema.

Gore navedeno je netočno objašnjenje kako funkcioniraju hashevi. Poanta hasha je da će manja promjena u ulazu rezultirati velikom razlikom u hash-u, jer su dva hasha u osnovi neusporediva. Kad sam mu rekao da je netočna tvrdnja da su hashevi najbolji način za usporedbu i skeniranje promjena, odgovorio je isprikom i dao mi nešto što učinio raditi.

Jedini problem koji sam otkrio s gornjim kodom je da je za veće web stranice računalno skup jer koristi obradu prirodnog jezika za usporedbu i izračunavanje razlike između njih. Ipak, prag od 5% u promijenjenom sadržaju dovoljno je dobar za većinu web stranica ako želite provjeriti ima li ažuriranja, a možete prilagoditi prag ako je potrebno. Potrajalo je, ali na kraju je stiglo.

Mnogo je razloga zbog kojih biste željeli web strugač poput jednog od ovih, a iako postoje alati koji to mogu učiniti, super je izgraditi vlastiti. Možete ih koristiti za praćenje paketa ili, u mom slučaju, za traženje novih nekretnina koje se iznajmljuju na lokalnim stranicama za nekretnine.

Generator lozinki u C

Budući da je sigurnost u posljednje vrijeme u modi, važno je da koristite sigurne lozinke i također koristite dvofaktorsku autentifikaciju. Ako imate problema sa sigurnim dijelom zaporke, prilično je lako napisati generator zaporki u C-u. ChatGPT se prilično lako nosio s time, a jedini problem koji sam otkrio bio je taj da kada sam ga zamolio da stvori generator lozinki, nije uveo biblioteku String C. Rekao sam mu to, a on je to dodao u import na početku.

Povećao sam globalnu varijablu MAX_LENGTH na 32 znaka umjesto na 16 i ona mi je generirala sljedeću lozinku: aW3H0E(&FPQvG8B@4*()+4yRKTKB#U0O. Sa sigurnošću se može reći da djeluje!

Kalkulator u Javi

Prilično osnovni program s kojim mnogi ljudi imaju iskustva u Javi je stvaranje kalkulatora. To je jedan od najranijih izazova s ​​kojima će se računalni znanstvenici susresti u svojoj programerskoj karijeri, bez obzira na to koji jezik prvi uzmu. Zamolio sam ChatGPT da napiše kalkulator u Javi koji koristi najmanje dvije klase i savršeno je radio iz prvog pokušaja.

Ovo je klasa kalkulatora:

Ovo je glavna klasa:

Stvaranje obje ove klase u mom IDE-u, IntelliJ, i izvođenje glavne klase rezultira savršeno radnim kalkulatorski program koji uzima dva broja i operator za zbrajanje, oduzimanje, množenje ili podjela.

ChatGPT je pristojan u programiranju

Iako se ne bih oslanjao na ChatGPT da učini sve umjesto vas, jasno je da može obaviti prilično dobar posao u stvaranju programa i uzimanju kritika u obzir kada postoje problemi. Iznenadilo me kada sam vidio da predlaže algoritam raspršivanja kao način razlikovanja manjih promjena na web-stranici, ali osim toga, nije imao problema s osnovnijim zadacima. Čak iu slučaju programa Python, on je od samog početka imao pravu ideju i, na statičnijim stranicama, radio bi savršeno.

Naravno, ChatGPT neće baš uskoro zamijeniti programere, ali je na putu da postane vrlo dobar alat u radnoj snazi. GitHubov kopilot, na primjer, koristi GPT tehnologiju koja pomaže ljudima u pisanju koda, a s vremenom će biti sve naprednija. Čak i ako ste programer početnik, ova vrsta alata potencijalno bi vam mogla pomoći u učenju ako mu u potpunosti vjerujete, ali ponekad čini čudne pogreške, kao što smo vidjeli.

Naravno, ovdje navedeni primjeri vrlo su osnovni i većina programera bi ih mogla prilično lako napisati, ali to nije bit. Zastrašujuće je dobar u izradi rješenja za jednostavne zadatke, a čini se da se pristojno nosi i sa složenijim zadacima. Uzbuđeni smo vidjeti kamo će ovakvi alati ići u budućnosti i pomoći ljudima da poboljšaju svoje vještine.