Použitie ChatGPT na programovanie v Pythone, C a Java

click fraud protection

ChatGPT je strašne dobrý v písaní kódu.

Každý o tom počul ChatGPT v tomto štádiu. Je to chatbot poháňaný AI, ktorý využíva modely spracovania prirodzeného jazyka na vytváranie odpovedí na zložité otázky. Tieto odpovede nemusia byť nevyhnutne vždy presné, ale majú tendenciu byť dostatočne podrobné na to, aby ste si mohli overiť fakty, ktoré odpovede vám poskytuje pomerne ľahko. Čo keby ste si vzali ChatGPT a pokúsili sa s ním napísať kód?

Ako sa ukázalo, je to niečo, čo môžete robiť s rôznym stupňom úspechu v závislosti od jazykov, ktoré chcete používať, a od toho, čo s nimi chcete dosiahnuť. Otestoval som ho, aby som zistil, ako dobre by sa mu darilo v rôznych programovacích jazykoch na dokončenie rôznych úloh. Tiež nebudem robiť žiadne zmeny v kóde, ktorý vytvára ChatGPT, iba ho povediem k vytvoreniu pracovného kódu, ak kód, ktorý vytvorí, nefunguje.

Na testovanie ChatGPT som použil tri jazyky, ktoré už poznám: Python, C a Java. Výsledky boli obzvlášť prekvapivé, pretože to trochu bojovalo s Pythonom kvôli abstraktnej povahe toho, čo som od neho žiadal, ale ľahko si poradil s C a základnou Javou. mám tiež

vytvoril úložisko GitHub so všetkým tu dostupným kódom, aby ste si to mohli vyskúšať sami.

Automatická kontrola stránok v Pythone

Python je môj obľúbený programovací jazyk na prácu, a to vďaka sile, ktorú má, a jednoduchosti použitia. V minulosti som v Pythone napísal veľa nástrojov na automatizáciu častí môjho pracovného toku a moja bakalárska práca z informatiky bola dokonca robená výhradne v Pythone. Požiadal som ChatGPT, aby napísal program, ktorý by mohol pravidelne kontrolovať zmeny na webovej stránke a väčšinou sa to podarilo.

Problém s vyššie uvedeným kódom, ktorý mi dáva, je ten, že nesimuluje skutočný prehliadač. Webové stránky kontrolujú vo vašom prehliadači parameter nazývaný „user agent“ a ten definuje, aký typ prehliadača používate alebo či ste robot. Mnoho webových stránok nebude akceptovať pripojenia, ktoré nedefinujú používateľského agenta, a narazil som na to, keď som to ukázal na XDA. Požiadal som ho, aby k žiadosti pridal vlastné hlavičky na simuláciu skutočného prehliadača a vyhovelo.

Vyššie uvedený kód funguje pre statické webové stránky, ale problémom je, že veľká časť obsahu, ktorý čítate online, je dynamická. Ak stránka vráti aktuálny čas, napríklad niekde na stránke, potom vyššie uvedený kód vždy povie, že stránka sa zmenila pri každom obnovení. Keď som na to upozornil ChatGPT, bolo to zmätené a dalo mi úplne nesprávne riešenie problému.

Vyššie uvedené je nesprávne vysvetlenie toho, ako hash funguje. Zmyslom hashu je, že malá zmena vstupu bude mať za následok veľký rozdiel v hashove v tom, že dva hashe sú v podstate neporovnateľné. Keď som mu povedal, že to bolo nesprávne tvrdenie, že som mal naznačiť, že hash je najlepší spôsob na porovnávanie a vyhľadávanie zmien, odpovedalo mi s ospravedlnením a dalo mi niečo, čo urobil práca.

Jediný problém, ktorý som zistil s vyššie uvedeným kódom, je, že pre väčšie webové stránky je to tak je výpočtovo nákladný, pretože používa spracovanie prirodzeného jazyka na porovnanie a výpočet rozdielu medzi nimi. Napriek tomu je 5 % prah v zmenenom obsahu pre väčšinu webových stránok dosť dobrý, ak chcete skontrolovať aktualizácie, a ak je to potrebné, prah môžete upraviť. Chvíľu to trvalo, ale nakoniec sa to podarilo.

Existuje mnoho dôvodov, prečo by ste mohli chcieť webovú škrabku, ako je tento, a hoci existujú nástroje, ktoré to dokážu, je skvelé vytvoriť si vlastnú. Môžete ich použiť na sledovanie balíkov alebo v mojom prípade na skenovanie nových nehnuteľností, ktoré sa prenajímajú na miestnych stránkach nehnuteľností.

Generátor hesiel v C

Keďže bezpečnosť je v poslednom čase v móde, je dôležité, aby ste používali bezpečné heslá a používali aj dvojfaktorové overenie. Ak zápasíte s zabezpečenou časťou hesiel, je celkom jednoduché napísať generátor hesiel v jazyku C. ChatGPT to zvládol celkom jednoducho a jediný problém, ktorý som objavil, bol ten, že keď som ho požiadal o vytvorenie generátora hesiel, neimportoval knižnicu String C. Povedal som mu to a ono to na začiatku pridalo do importu.

Zväčšil som globálnu premennú MAX_LENGTH na 32 znakov namiesto 16 a vygenerovalo mi to nasledujúce heslo: aW3H0E(&FPQvG8B@4*()+4yRKTKB#U0O. Dá sa povedať, že to funguje!

Kalkulačka v Jave

Celkom základný program, s ktorým má veľa ľudí skúsenosti v Jave, je vytvorenie kalkulačky. Je to jedna z prvých výziev, ktorým budú počítačoví vedci čeliť vo svojej programátorskej kariére, bez ohľadu na to, aký jazyk si osvoja ako prvý. Požiadal som ChatGPT, aby napísal kalkulačku v Jave, ktorá by používala aspoň dve triedy, a na prvý pokus to fungovalo perfektne.

Toto je trieda kalkulačky:

Toto je hlavná trieda:

Vytvorenie oboch týchto tried v mojom IDE, IntelliJ a spustenie hlavnej triedy vedie k dokonale fungujúcemu kalkulačka program, ktorý preberá dve čísla a operátor na sčítanie, odčítanie, násobenie, príp divízie.

ChatGPT je slušný v programovaní

Aj keď by som sa nespoliehal na to, že ChatGPT urobí všetko za vás, je jasné, že dokáže odviesť celkom dobrú prácu pri vytváraní programov a zohľadňovaní kritiky, keď sa vyskytnú problémy. Bol som prekvapený, keď som videl, že navrhuje hašovací algoritmus ako spôsob, ako rozlíšiť medzi menšími zmenami na webovej stránke, ale okrem toho vôbec nezápasil so základnejšími úlohami. Aj v prípade programu Python mal hneď od začiatku správnu myšlienku a na statickejších stránkach by fungoval perfektne.

Samozrejme, ChatGPT v dohľadnej dobe presne nenahradí programátorov, ale je na ceste stať sa veľmi dobrým nástrojom v pracovnej sile. Kopilot GitHubu, napríklad využíva GPT technológia, ktorá pomáha ľuďom písať kód, a časom bude len pokročilejšia. Dokonca aj keď ste začiatočník programátor, tento druh nástroja by vám potenciálne mohol pomôcť naučiť sa, ak mu môžete plne dôverovať, ale niekedy robí zvláštne chyby, ako sme videli.

Samozrejme, tu uvedené príklady sú veľmi základné a väčšina programátorov by ich vedela napísať pomerne ľahko, ale o to nejde. Je desivo dobrý pri vytváraní riešení jednoduchých úloh a zdá sa, že zvláda aj zložitejšie úlohy. Sme nadšení, že uvidíme, kam sa nástroje ako tieto dostanú v budúcnosti a pomôžu ľuďom zlepšiť ich zručnosti.