Daugelis žmonių paskelbė, kad ChatGPT gali rašyti mūsų esė, piešti paveikslėlius ir atsakyti į paieškos užklausas. Bet ar gali koduoti?
Vienas didžiausių „ChatGPT“ ažiotažų teiginių yra tai, kad tai gali būti veiksminga programavimo priemonė. Idėja tokia: jūs aprašote tai, ko norite, natūralia kalba; pokalbių robotas sukuria kodą, kuris tai daro. Bet ar iš tikrųjų ChatGPT gerai tai daro?
Kas gali būti geresnis būdas tai sužinoti, nei išbandyti? Paprašėme „ChatGPT“ sukurti paprastą žiniatinklio programą nuo nulio. Štai mūsų testo rezultatas ir veiksmai, kuriuos galite atlikti kurdami svetainę nuo nulio naudodami ChatGPT.
1 veiksmas: sukurkite savo žiniatinklio programos planą
Kaip ir kurdami žiniatinklio programą naudodami bet kokį įrankį, turite sudaryti planą, norite, kad jūsų programa atrodytų, ir veiksmai, kurių jums reikės norint ją sukurti prieš leisdami ChatGPT paleisti Rodyti.
Atlikdami pirmąją užduotį paprašėme „ChatGPT“ sukurti paprastos pokalbių programos projektą. Norėdami tai padaryti, aprašėme savo žiniatinklio programos reikalavimus ir paprašėme pokalbių roboto išsamiai parengti programos kūrimo planą.
Panaudoję aukščiau pateiktą raginimą, gavome štai tokį rezultatą:
Jei norite sukurti tokią schemą, kaip ir anksčiau, ChatGPT paskyroje turite įjungti papildinį „Parodyk man“. Tu gali įdiegti ir naudoti „ChatGPT“ papildinius vos keliais žingsniais, nors jums reikės aukščiausios kokybės prenumeratos.
Be papildinio gausite tekstinį projektą arba ASCII meno schemą. Tai vis tiek gerai. Net ir be papildinio „ChatGPT“ vis tiek turėtų pateikti aiškų programos projektą, kaip parodyta toliau pateiktame pavyzdyje.
2 veiksmas: brėžinio padalijimas į mažesnius modulius
Dabar, kai turime bendrą vaizdą, paprašėme „ChatGPT“ pagalbos padalinti programą į mažesnius komponentus, kuriuos galime sukurti atskirai ir integruoti, kad sudarytume visą žiniatinklio programą. „ChatGPT“ pasiūlė jį suskirstyti į tris komponentus:
- Registracijos modulis
- Prisijungimo modulis
- Pokalbių modulis
Turėjome kitų idėjų, bet tikslas yra leisti ChatGPT iškviesti.
1. Registracijos komponento kūrimas
Mes iškart pradėjome kurti registracijos komponentą. Mes paprašėme „ChatGPT“ parengti tinkamą algoritmą. Čia mes įsikišome nurodydami, kad registracijai reikia tik vartotojo vartotojo vardo, el. pašto ir pseudoportreto. Štai raginimas:
Ir štai rezultatas:
Toliau mes paraginome „ChatGPT“ sukurti registracijos komponentą.
Nors neįtraukėme slaptažodžio lauko kaip registracijos proceso dalies, „ChatGPT“ atliko tinkamą skambutį įtraukdama jį į sugeneruotą HTML kodą. Nukopijavome kodą be jokių pakeitimų ir štai kaip jis atrodo naršyklėje.
Toliau mes paraginome ChatGPT sugeneruoti PHP registracijos scenarijų. Iš pradžių paprašėme „Parašykite PHP kodą serverio logikai, kad būtų galima tvarkyti formos pateikimą“. Nors sukurtas scenarijus veikė gerai, jame buvo daug pažeidžiamumų.
Nebuvo slaptažodžių maišos, klaidų tvarkymo ir buvo linkęs įterpti SQL – „ChatGPT“ padarė tik minimumą. Pataisyti tai buvo gana lengva. Mes tiesiog paprašėme „ChatGPT“ „identifikuoti viską, kas neteisinga ką tik sugeneruotame kode, ir tada naudokite nustatytus taškus, kad optimizuotumėte kodą." Taip mūsų PHP registracijos scenarijus buvo paruoštas eik.
Jūsų raginimo formuluotė yra svarbi. Turite labai aiškiai ir tiksliai pasakyti, ką jums reikia padaryti „ChatGPT“. Kai tiesiog paprašėme „išspręsti šio kodo problemą“, jis neišsprendė daugumos to, ką tikėjomės ištaisyti. Daugiau patarimų, kaip rašyti „ChatGPT“ raginimus, rasite čia kai kuriose vietose, kur išmokti rašyti veiksmingus raginimus.
Toliau mes paprašėme „ChatGPT“Parašykite SQL kodą, kad sukurtumėte duomenų, užfiksuotų PHP scenarijuje, duomenų bazę." Štai gautas SQL kodas:
Ir štai lentelė, sukurta vykdant SQL:
Sukūrę duomenų bazę, išbandėme pirmą registraciją ir ji veikė be klaidų.
2. Prisijungimo komponento kūrimas
Nebepanaudoję registracijos komponento, pasirinkome prisijungimo komponentą. Keista, kad jį buvo lengviausia sukurti nepaisant papildomos sesijų valdymo logikos.
Čia yra sugeneruotas prisijungimo puslapis. Svarbiausias akcentas yra tas, kad jame naudojamos tos pačios spalvų parinktys kaip ir registracijos puslapyje.
Sukūrę „server.login.php“ failą, kaip nurodė ChatGPT, ir pridėję sugeneruotą PHP scenarijų, pirmą kartą sėkmingai prisijungėme be jokių pakeitimų ar derinimo.
3. Pokalbių komponento kūrimas
Pokalbio komponento kūrimas buvo paskutinė ir tikriausiai pati sunkiausia mūsų mažo eksperimento dalis. Iš pradžių mes tiesiog paprašėme „ChatGPT“ parašyti pokalbių komponento kodą. Nereikia nė sakyti, kad tai buvo didžiulė nesėkmė. Jei norite sukurti sudėtingesnius komponentus, turėsite juos padalyti į mažesnius komponentus ir tvarkyti juos vieną po kito.
Mes paprašėme „ChatGPT“ pateikti pasiūlymų, kaip padalinti pokalbių komponentą, ir pasiūlė sukurti tris puslapius:
- Chat.php
- Send-messages.php
- Fetch-messages.php
Kai ChatGPT pasiūlo failo pavadinimą, kitokio pavadinimo naudojimas projekte gali netyčia sukelti problemų, nes pokalbių robotas visame sukurtame kode nurodys tą patį pavadinimą projektą. Mes sužinojome sunkų kelią. Nedarykite tos pačios klaidos.
Chat.php puslapio sukūrimas
Norėdami pradėti, pateikėme „ChatGPT“ išsamias instrukcijas, kaip norėjome, kad atrodytų pokalbių sąsaja.
Paleidę sugeneruotą HTML kodą, turėjome pokalbių sąsają be pranešimų įvesties laukelio. Norėdami tai išspręsti, mes tiesiog paraginome „ChatGPT“perrašykite kodą, įtraukdami pranešimo įvesties laukelį ir siuntimo mygtuką.Štai kaip sugeneruotas kodas atrodo naršyklėje antrojo bandymo metu.
Kai sugeneruotas kodas neduoda norimų rezultatų arba praleidžia svarbų komponentą, tiesiog paraginkite ChatGPT perrašyti paskutinį kodą. Pasakykite, kad įtrauktų komponentą arba atlikite tai, kas nebuvo padaryta pradiniame kode. Čia yra keli patarimai, kaip naudoti „ChatGPT“ programavimui.
Sukurkite puslapius "siųsti pranešimus.php" ir "Fetch-messages".
Patenkinti sąsaja, pradėjome kurti scenarijų, kad galėtume valdyti pokalbių logiką. Kad galėtume siųsti ir gauti pranešimus iš duomenų bazės, „ChatGPT“ teisingai pabrėžė, kad mums reikės „pranešimų“ lentelės. Mes paprašėme pokalbių roboto sukurti pranešimų lentelės SQL.
Sugeneravę SQL kodą, paprašėme pokalbių roboto sugeneruoti PHP scenarijų, kad būtų galima valdyti pranešimų logiką.
„ChatGPT“ sugeneravo scenarijų tiek puslapiams „send-messages.php“, tiek „fetch-messages.php“. Vykdant abu scenarijus pagaliau įvyko pirmoji klaida (kuri buvo keistai patenkinta). Įžengti į projektą taip toli nederinant nė vienos kodo eilutės atrodė per gerai, kad būtų tiesa, nepaisant santykinio paprastumo.
Paaiškėjo, kad klaidą sukėlė „ChatGPT“ patikrinimas, ar nėra nedeklaruoto seanso kintamojo ($_SESSION['user_id']) į mūsų scenarijų. Įtariame, kad tai įvyko dėl gana ilgos projekto pertraukos, dėl kurios „ChatGPT“ pamiršo kai kuriuos kontekstus ir projekte naudojamų kintamųjų pavadinimus.
Naudodami „ChatGPT“ programai kurti, įsitikinkite, kad naudojate tą pačią pokalbių giją ir stenkitės kuo greičiau užbaigti susijusius komponentus. Naudojant naują pokalbių giją arba darant ilgą pertrauką, gali atsirasti neatitikimų. „ChatGPT“ linkęs pamiršti kai kurias dabartinio projekto detales (pvz., spalvų schemą), jei darote ilgas pertraukas tarp kodavimo seansų.
Tai reiškia, kad ištaisėme klaidą ir įdiegėme kodą. Užsiregistravome, prisijungėme ir išbandėme pokalbių funkciją. Nors galėjome siųsti pranešimus iš vieno registruoto vartotojo kitam, pranešimų burbulų spalva ir išdėstymas buvo šiek tiek netinkamas. Tačiau dėl programos, kurios užbaigimas užtruko valandą ir 23 minutes, nevertinsime pernelyg griežtai.
ChatGPT: puikus kodavimo asistentas
„ChatGPT“ aiškiai yra galingas kodavimo asistentas. Tai, kad pokalbių robotas gali sukurti įspūdingą kodą iš paprastų, o kartais ir ne tokių aiškių instrukcijų, liudija jo kodavimo meistriškumą.
Žinoma, jis vis dar turi daug trūkumų. Riboto konteksto lango ir jo gebėjimo susieti logiką iš kelių atskirai sukurtų komponentų problema yra didelė problema. Tačiau pokalbių robotas gali padėti greitai sukurti gana sudėtingas žiniatinklio programas, jei žinote, kaip elgtis.