Mnoho ľudí vyhlásilo, že ChatGPT môže písať naše eseje, maľovať naše obrázky a odpovedať na naše vyhľadávacie otázky. Dokáže však aj kódovať?

Jedným z najväčších tvrdení o humbuku okolo ChatGPT je, že to môže byť efektívny programovací nástroj. Myšlienka je nasledovná: opíšete, čo chcete, v prirodzenom jazyku; chatbot generuje kód, ktorý to robí. Ale ako dobrý je v tom ChatGPT v skutočnosti?

Aký lepší spôsob, ako to zistiť, ako to otestovať? Požiadali sme ChatGPT, aby vytvoril jednoduchú webovú aplikáciu od začiatku. Tu je výsledok nášho testu a kroky, ktoré môžete použiť na vytvorenie webovej stránky od začiatku pomocou ChatGPT.

Krok 1: Vytvorenie návrhu pre vašu webovú aplikáciu

Rovnako ako pri vytváraní webovej aplikácie pomocou akéhokoľvek nástroja by ste si mali načrtnúť plán toho, čo chcete, aby vaša aplikácia vyzerala, a kroky, ktoré budete potrebovať na jej vytvorenie, než necháte ChatGPT spustiť šou.

Pre našu prvú úlohu sme požiadali ChatGPT, aby vyvinul návrh jednoduchej chatovacej aplikácie. Aby sme to urobili, opísali sme požiadavky na našu webovú aplikáciu a potom sme chatbota požiadali, aby podrobne opísal plán vývoja aplikácie.

instagram viewer

Po použití výzvy vyššie, tu je výsledok, ktorý sme dostali:

Na vygenerovanie vývojového diagramu, ako je ten náš vyššie, musíte mať vo svojom účte ChatGPT povolený doplnok „Show Me“. Môžeš nainštalovať a používať doplnky ChatGPT v niekoľkých krokoch, aj keď budete potrebovať prémiové predplatné.

Bez doplnku získate textový plán alebo vývojový diagram ASCII-art. To je ešte v poriadku. Aj bez doplnku by ChatGPT mal stále poskytovať jasný plán aplikácie, ako je príklad nižšie.

Krok 2: Rozdelenie plánu na menšie moduly

Teraz, keď máme pripravený celkový obraz, požiadali sme ChatGPT o pomoc pri rozdelení aplikácie na menšie komponenty, ktoré môžeme vyvinúť samostatne a potom ich integrovať do kompletnej webovej aplikácie. ChatGPT navrhol rozdeliť ho na tri zložky:

  1. Registračný modul
  2. Prihlasovací modul
  3. Chat modul

Mali sme iné nápady, ale cieľom je nechať ChatGPT, aby zavolal.

1. Vytvorenie registračného komponentu

Skočili sme priamo do budovania registračnej zložky. Požiadali sme ChatGPT, aby nakreslil vhodný algoritmus. Tu sme zasiahli zadaním, že na registráciu potrebujeme iba používateľské meno používateľa, e-mail a avatar. Tu je výzva:

A tu je výsledok:

Ďalej sme vyzvali ChatGPT, aby vytvoril komponent registrácie.

Aj keď sme do registračného procesu nezahrnuli pole s heslom, ChatGPT urobil správne volanie tým, že ho zahrnul do vygenerovaného HTML kódu. Kód sme skopírovali bez akýchkoľvek úprav a takto vyzerá v prehliadači.

Ďalej sme vyzvali ChatGPT, aby vygeneroval registračný skript PHP. Najprv sme vyzvali "Napíšte kód PHP pre logiku na strane servera na spracovanie odoslania formulára." Hoci vygenerovaný skript fungoval dobre, mal veľa zraniteľností.

Neexistovalo žiadne hashovanie hesiel, žiadne spracovanie chýb a bol náchylný na vstrekovanie SQL – ChatGPT robil len nevyhnutné minimum. Oprava tohto problému bola pomerne jednoduchá. Jednoducho sme požiadali ChatGPT, aby „identifikoval všetko nesprávne s kódom, ktorý ste práve vygenerovali, a potom použite identifikované body na optimalizáciu kódu." Vďaka tomu bol náš registračný skript PHP pripravený ísť.

Dôležité je znenie vašej výzvy. Musíte byť veľmi jasný a konkrétny v tom, čo potrebujete, aby ChatGPT urobil. Keď sme ho jednoducho požiadali, aby „vyriešil problém s týmto kódom“, neopravilo to väčšinu toho, čo sme dúfali, že to vyrieši. Ďalšie pokyny na písanie výziev ChatGPT nájdete tu na niektorých miestach sa dozviete, ako písať efektívne výzvy.

Ďalej sme požiadali ChatGPT, aby „Napíšte SQL kód na vytvorenie databázy pre dáta zachytené v PHP skripte." Tu je výsledný kód SQL:

A tu je tabuľka vytvorená vykonaním SQL:

S nastavenou databázou sme vyskúšali prvú registráciu a fungovala bez chýb.

2. Vytvorenie prihlasovacieho komponentu

S komponentom registrácie mimo cesty sme prevzali komponent Login. Prekvapivo to bolo najjednoduchšie zostaviť napriek dodatočnej logike správy relácií.

Tu je vygenerovaná prihlasovacia stránka. Hlavnou výhodou je, že používa rovnaké farebné možnosti ako registračná stránka.

Po vytvorení súboru „server.login.php“ podľa pokynov ChatGPT a pridaní vygenerovaného PHP skriptu sme vykonali prvé úspešné prihlásenie bez akýchkoľvek úprav alebo ladenia.

3. Vytvorenie komponentu Chat

Vytvorenie komponentu chatu bolo poslednou – a pravdepodobne najťažšou časťou – nášho malého experimentu. Najprv sme jednoducho požiadali ChatGPT, aby napísal kód pre komponent chatu. Netreba dodávať, že to bolo kolosálne zlyhanie. Pre komplexnejšie komponenty čohokoľvek, čo chcete vytvoriť, to budete musieť rozdeliť na menšie komponenty a riešiť ich jednu po druhej.

Požiadali sme ChatGPT o návrhy na rozdelenie komponentu chatu a navrhli, aby sme vytvorili tri stránky:

  1. Chat.php
  2. Send-messages.php
  3. Fetch-messages.php

Keď ChatGPT navrhne názov súboru, použitie iného názvu vo vašom projekte môže neúmyselne spôsobiť problémy, pretože chatbot bude odkazovať na rovnaký názov v celom kóde, ktorý vytvorí projektu. Zistili sme ťažkú ​​cestu. Neurobte rovnakú chybu.

Vytvorenie stránky Chat.php

Na začiatok sme dali ChatGPT podrobné pokyny o tom, ako chceme, aby rozhranie chatu vyzeralo.

Po spustení vygenerovaného HTML kódu sme mali chatové rozhranie bez poľa na zadávanie správ. Aby sme to vyriešili, jednoducho sme vyzvali ChatGPT, aby „prepíšte kód tak, aby obsahoval pole na zadanie správy a tlačidlo odoslania." Takto vyzerá vygenerovaný kód v prehliadači pri druhej skúške.

Kedykoľvek vygenerovaný kód neposkytne požadované výsledky alebo vynechá dôležitú súčasť, jednoducho požiadajte ChatGPT, aby prepísal posledný kód. Povedzte mu, aby zahrnul komponent alebo urobil čokoľvek, čo nebolo urobené v počiatočnom kóde. Tu sú niekoľko tipov, ako používať ChatGPT na programovanie.

Vytvorenie stránky "send-messages.php" a "Fetch-messages".

Spokojní s rozhraním sme pristúpili k vytvoreniu skriptu na spracovanie logiky chatovania. Aby sme mohli odosielať a získavať správy z databázy, ChatGPT správne zdôraznil, že budeme potrebovať tabuľku „správ“. Požiadali sme chatbota, aby vytvoril SQL pre tabuľku správ.

Po vygenerovaní kódu SQL sme chatbota požiadali, aby vygeneroval PHP skript na spracovanie logiky správ.

ChatGPT vygeneroval skript pre stránky „send-messages.php“ a „fetch-messages.php“. Pri spustení oboch skriptov sme konečne mali prvú chybu (čo bolo zvláštne uspokojivé). Dostať sa tak ďaleko do projektu bez ladenia jediného riadku kódu sa zdalo až príliš dobré na to, aby to bola pravda, napriek jeho relatívnej jednoduchosti.

Ukázalo sa, že chyba bola spôsobená ChatGPT zavedením kontroly nedeklarovanej premennej relácie ($_SESSION['user_id']) do nášho skriptu. Máme podozrenie, že to bol dôsledok pomerne dlhej prestávky v projekte, čo viedlo k tomu, že ChatGPT zabudol na niektoré kontexty a názvy premenných použitých v projekte.

Keď používate ChatGPT na vytvorenie aplikácie, uistite sa, že používate rovnaké vlákno rozhovoru a pokúste sa čo najskôr dokončiť súvisiace komponenty. Použitie nového vlákna rozhovoru alebo dlhšia prestávka môže spôsobiť nezrovnalosti. ChatGPT má tendenciu zabúdať na niektoré detaily aktuálneho projektu (napr. farebnú schému), ak medzi reláciami kódovania robíte dlhé prestávky.

To znamená, že sme chybu opravili a nasadili kód. Zaregistrovali sme sa, prihlásili sme sa a vyskúšali funkciu chatu. Zatiaľ čo sme mohli posielať správy od jedného registrovaného používateľa druhému, farba a usporiadanie bublín správ boli trochu mimo. Aplikáciu, ktorej dokončenie trvalo hodinu a 23 minút, to však nebudeme posudzovať príliš prísne.

ChatGPT: Vynikajúci asistent kódovania

ChatGPT je jednoznačne výkonný asistent kódovania. To, že chatbot dokáže vytvoriť pôsobivý kód z jednoduchých a niekedy nie tak jasných pokynov, je dôkazom jeho kódovacej schopnosti.

Iste, stále má veľa nedostatkov. Problém s obmedzeným kontextovým oknom a jeho schopnosťou spojiť logiku z viacerých nezávisle zostavených komponentov je hlavným problémom. Chatbot vám však môže pomôcť rýchlo vytvoriť pomerne zložité webové aplikácie, ak sa v tom vyznáte.