Многи људи су изјавили да ЦхатГПТ може писати наше есеје, сликати наше слике и одговарати на наше упите за претрагу. Али може ли и кодирати?
Једна од највећих тврдњи у вези са хајком око ЦхатГПТ-а је да може бити ефикасан алат за програмирање. Идеја је следећа: опишете оно што желите на природном језику; цхатбот генерише код који ради управо то. Али колико је заправо ЦхатГПТ добар у томе?
Има ли бољег начина да то сазнате од тестирања? Замолили смо ЦхатГПТ да направи једноставну веб апликацију од нуле. Ево резултата нашег теста и корака које можете користити да направите веб локацију од нуле користећи ЦхатГПТ.
Корак 1: Генерисање нацрта за вашу веб апликацију
Баш као што бисте урадили када правите веб апликацију са било којим алатом, требало би да поставите нацрт онога што желите да ваша апликација изгледа и кораке које ћете требати да је направите пре него што дозволите да ЦхатГПТ покрене Прикажи.
За наш први задатак, замолили смо ЦхатГПТ да развије нацрт за једноставну апликацију за ћаскање. Да бисмо то урадили, описали смо захтеве за нашу веб апликацију, а затим затражили од цхат бота да детаљно разради план за развој апликације.
Након употребе горњег упита, ево резултата који смо добили:
Требало би да имате омогућен додатак „Покажи ми“ на вашем ЦхатГПТ налогу да бисте генерисали дијаграм тока попут нашег изнад. Можете инсталирајте и користите додатке за ЦхатГПТ у само неколико корака, иако ће вам требати премиум претплата.
Без додатка, добићете нацрт заснован на тексту или АСЦИИ-уметнички дијаграм тока. То је још у реду. Чак и без додатка, ЦхатГПТ би и даље требало да обезбеди јасан нацрт апликације као што је пример у наставку.
Корак 2: Подела нацрта на мање модуле
Сада када имамо већу слику, замолили смо ЦхатГПТ за помоћ у подели апликације на мање компоненте које можемо засебно развити и затим интегрисати да бисмо формирали комплетну веб апликацију. ЦхатГПТ је предложио да се разбије на три компоненте:
- Регистрациони модул
- Модул за пријаву
- Цхат модул
Имали смо друге идеје, али овде је циљ да дозволимо ЦхатГПТ-у да одлучи.
1. Изградња компоненте регистрације
Ускочили смо одмах у изградњу компоненте регистрације. Замолили смо ЦхатГПТ да направи одговарајући алгоритам. Овде смо интервенисали тако што смо навели да су нам за регистрацију потребни само корисничко име, емаил и аватар. Ево упутства:
И ево резултата:
Следеће, затражили смо од ЦхатГПТ-а да направи компоненту за регистрацију.
Иако нисмо укључили поље за лозинку као део процеса регистрације, ЦхатГПТ је направио прави позив укључивши га у генерисани ХТМЛ код. Копирали смо код без икаквих модификација, а ево како то изгледа у претраживачу.
Следеће, затражили смо од ЦхатГПТ-а да генерише ПХП скрипту за регистрацију. У почетку смо тражили „Напишите ПХП код за логику на страни сервера за руковање слањем обрасца.“ Иако је генерисана скрипта добро функционисала, имала је много рањивости.
Није било хеширања лозинке, руковања грешкама и било је склоно СКЛ ињекцији — ЦхатГПТ је урадио само минимум. Поправити ово је било релативно лако. Једноставно смо замолили ЦхатГПТ да „идентификује све што није у реду са кодом који сте управо генерисали, а затим користите идентификоване тачке за оптимизацију кода." Са тим је наша ПХП скрипта за регистрацију била спремна да иди.
Формулација вашег упита је важна. Морате да будете врло јасни и конкретни у вези са оним што вам је потребно за ЦхатГПТ. Када смо га једноставно замолили да „поправи проблем са овим кодом“, није поправио већину онога за шта смо се надали да ће поправити. За више упутстава о писању ЦхатГПТ упита, ево нека места да научите како да напишете ефикасне упите.
Следеће, замолили смо ЦхатГПТ да „Напишите СКЛ код за креирање базе података за податке ухваћене у ПХП скрипти." Ево резултујућег СКЛ кода:
А ево табеле креиране извршавањем СКЛ-а:
Са постављеном базом података, испробали смо нашу прву регистрацију и радила је без икаквих грешака.
2. Изградња компоненте за пријаву
Са уклањањем компоненте регистрације, преузели смо компоненту за пријаву. Изненађујуће, било је најлакше изградити упркос додатној логици управљања сесијама.
Ево генерисане странице за пријаву. Кључни нагласак је да користи исте опције боја као страница за регистрацију.
Након креирања датотеке "сервер.логин.пхп" према упутствима ЦхатГПТ-а и додавања генерисане ПХП скрипте, извршили смо нашу прву успешну пријаву без икаквих модификација или отклањања грешака.
3. Изградња компоненте за ћаскање
Изградња компоненте ћаскања била је последњи — и вероватно најтежи део — нашег малог експеримента. Прво смо једноставно замолили ЦхатГПТ да напише код за компоненту ћаскања. Непотребно је рећи да је то био колосалан неуспех. За сложеније компоненте било чега што желите да креирате, мораћете да га поделите на мање компоненте и да их решавате једну за другом.
Затражили смо од ЦхатГПТ-а сугестије о раздвајању компоненте ћаскања, а он је предложио да направимо три странице:
- Цхат.пхп
- Сенд-мессагес.пхп
- Фетцх-мессагес.пхп
Када ЦхатГПТ предложи име датотеке, коришћење другог имена у вашем пројекту може ненамерно да изазове проблеми јер ће цхатбот позивати на исто име у свом коду који креира пројекат. Сазнали смо на тежи начин. Не правите исту грешку.
Креирање Цхат.пхп странице
За почетак, дали смо ЦхатГПТ-у детаљна упутства о томе како желимо да изгледа интерфејс за ћаскање.
Након покретања генерисаног ХТМЛ кода, имали смо интерфејс за ћаскање без оквира за унос поруке. Да бисмо ово поправили, једноставно смо затражили од ЦхатГПТ-а да „препишите код да бисте укључили оквир за унос поруке и дугме за слање.„Ево како генерисани код изгледа у прегледачу у другом пробном периоду.
Кад год генерисани код не пружи жељене резултате или изостави важну компоненту, једноставно затражите од ЦхатГПТ-а да препише последњи код. Реците му да укључи компоненту или уради све што није урађено у почетном коду. Овде су неколико савета о томе како да користите ЦхатГПТ за програмирање.
Креирање странице „сенд-мессагес.пхп“ и „Фетцх-мессагес“.
Задовољни интерфејсом, наставили смо да правимо скрипту за управљање логиком ћаскања. Да бисмо могли да шаљемо и преузимамо поруке из базе података, ЦхатГПТ је с правом истакао да ће нам бити потребна табела „порука“. Замолили смо цхатбот да креира СКЛ за табелу порука.
Након генерисања СКЛ кода, затражили смо од цхатбот-а да генерише ПХП скрипту за руковање логиком размене порука.
ЦхатГПТ је генерисао скрипту за странице „сенд-мессагес.пхп“ и „фетцх-мессагес.пхп“. Приликом покретања обе скрипте, коначно смо имали нашу прву грешку (која је била необично задовољавајућа). Улазак овако далеко у пројекат без отклањања грешака у једној линији кода изгледало је превише добро да би било истинито, упркос његовој релативној једноставности.
Испоставило се да је грешка проузрокована тиме што је ЦхатГПТ увео проверу за недекларисану променљиву сесије ($_СЕССИОН['усер_ид']) у наш сценарио. Претпостављамо да је ово резултат прилично дугог одмора у пројекту што је довело до тога да ЦхатГПТ заборавља неке контексте и имена варијабли коришћених у пројекту.
Када користите ЦхатГПТ за прављење апликације, уверите се да користите исту нит за ћаскање и покушајте да завршите повезане компоненте што је пре могуће. Коришћење нове нити за ћаскање или дуга пауза може довести до недоследности. ЦхатГПТ има тенденцију да заборави неке детаље тренутног пројекта (нпр. шему боја) ако правите дуге паузе између сесија кодирања.
Уз то, поправили смо грешку и применили код. Регистровали смо се, улоговали се и испробали функцију ћаскања. Иако смо били у могућности да шаљемо поруке од једног регистрованог корисника другом, боја и распоред облачића са порукама су били мало искривљени. Међутим, за апликацију којој је било потребно сат и 23 минута да се заврши, нећемо је сувише оштро судити.
ЦхатГПТ: Одличан помоћник за кодирање
ЦхатГПТ је очигледно моћан помоћник за кодирање. То што цхатбот може да прикаже импресиван код из једноставних, а понекад и не тако јасних упутстава, сведочи о његовој вештини кодирања.
Наравно, још увек има пуно недостатака. Проблем са ограниченим прозором контекста и његовом способношћу да повеже логику из више независно изграђених компоненти је велики проблем. Међутим, цхатбот вам може помоћи да брзо направите прилично сложене веб апликације ако знате како се сналазите.