Použití ChatGPT k programování v Pythonu, C a Javě

click fraud protection

ChatGPT je děsivě dobrý v psaní kódu.

Všichni slyšeli ChatGPT v tomto stádiu. Je to chatbot s umělou inteligencí, který využívá modely zpracování přirozeného jazyka k vytváření odpovědí na složité otázky. Tyto odpovědi nemusí být nutně vždy přesné, ale mají tendenci být dostatečně podrobné, abyste si mohli ověřit fakta odpovědi, které vám poskytuje poměrně snadno. Co kdybyste si vzali ChatGPT a zkusili s ním napsat kód?

Jak se ukázalo, je to něco, co můžete dělat s různým stupněm úspěchu v závislosti na jazycích, které chcete používat, a na tom, čeho s nimi chcete dosáhnout. Otestoval jsem to, abych viděl, jak dobře by se v různých programovacích jazycích dařilo plnit různé úkoly. Nebudu také provádět žádné změny v kódu, který ChatGPT vytváří, pouze jej povedu k vytvoření pracovního kódu, pokud kód, který vytvoří, nefunguje.

K testování ChatGPT jsem použil tři jazyky, které již znám: Python, C a Java. Výsledky byly obzvláště překvapivé, protože se s Pythonem trochu potýkal kvůli abstraktní povaze toho, o co jsem ho žádal, ale C a základní Java si poradil s lehkostí. já mám také

vytvořil úložiště GitHub se všemi zde dostupnými kódy, takže si to můžete sami vyzkoušet.

Automatická kontrola stránek v Pythonu

Python je můj oblíbený programovací jazyk pro práci, a to díky výkonu, který má, a jeho jednoduchosti použití. V minulosti jsem v Pythonu napsal mnoho nástrojů pro automatizaci částí mého pracovního postupu a moje bakalářská práce z informatiky byla dokonce kompletně zpracována v Pythonu. Požádal jsem ChatGPT, aby napsal program, který by mohl pravidelně kontrolovat změny na webové stránce, a většinou se to povedlo.

Problém s výše uvedeným kódem, který mi dává, je ten, že nesimuluje skutečný prohlížeč. Webové stránky zjišťují ve vašem prohlížeči parametr zvaný „user agent“ a ten určuje, jaký typ prohlížeče používáte nebo zda jste robot. Mnoho webů nebude přijímat připojení, která nedefinují uživatelského agenta, a narazil jsem na to, když jsem to ukázal na XDA. Požádal jsem ho, aby k požadavku přidal vlastní hlavičky, aby simuloval skutečný prohlížeč, a vyhověl.

Výše uvedený kód funguje pro statické webové stránky, ale problém je v tom, že velká část obsahu, který čtete online, je dynamická. Pokud stránka vrátí aktuální čas, například někde na stránce, pak výše uvedený kód bude vždy při každém obnovení říkat, že se stránka změnila. Když jsem na to upozornil ChatGPT, bylo to zmatené a dalo mi to zcela nesprávné řešení problému.

Výše uvedené je nesprávné vysvětlení toho, jak hash funguje. Smysl hashe je v tom, že malá změna vstupu bude mít za následek velký rozdíl v hashe, protože dva hashe jsou v zásadě nesrovnatelné. Když jsem mu řekl, že to bylo nesprávné tvrzení naznačovat, že hash je nejlepší způsob, jak porovnávat a vyhledávat změny, odpovědělo mi s omluvou a dalo mi něco, dělal práce.

Jediný problém, který jsem s výše uvedeným kódem objevil, je ten, že u větších webů je výpočetně nákladné, protože k porovnání a výpočtu rozdílu používá zpracování přirozeného jazyka mezi nimi. Přesto 5% práh ve změněném obsahu je pro většinu webů dostačující, pokud chcete zkontrolovat aktualizace, a v případě potřeby můžete práh upravit. Chvíli to trvalo, ale nakonec se to povedlo.

Existuje mnoho důvodů, proč byste mohli chtít webovou škrabku, jako je tento, a přestože existují nástroje, které to dokážou, je skvělé vytvořit si vlastní. Můžete je použít ke sledování zásilek nebo v mém případě ke skenování nových nemovitostí, které se pronajímají na místních stránkách nemovitostí.

Generátor hesel v C

Vzhledem k tomu, že zabezpečení je v poslední době v módě, je důležité používat bezpečná hesla a také používat dvoufaktorové ověřování. Pokud se potýkáte se zabezpečenou částí hesla, je docela snadné napsat generátor hesel v C. ChatGPT si s tím poradil docela snadno a jediný problém, který jsem objevil, byl ten, že když jsem jej požádal o vytvoření generátoru hesel, neimportoval knihovnu String C. Řekl jsem mu to a ono to na začátku přidalo do importů.

Zvýšil jsem globální proměnnou MAX_LENGTH na 32 znaků místo 16 a vygenerovalo mi to následující heslo: aW3H0E(&FPQvG8B@4*()+4yRKTKB#U0O. Dá se říct, že to funguje!

Kalkulačka v Javě

Docela základní program, se kterým má mnoho lidí zkušenosti v Javě, je vytvoření kalkulačky. Je to jedna z prvních výzev, kterým budou počítačoví vědci čelit ve své programátorské kariéře, bez ohledu na to, jaký jazyk si osvojí jako první. Požádal jsem ChatGPT, aby napsal kalkulačku v Javě, která by používala alespoň dvě třídy, a na první pokus to fungovalo perfektně.

Toto je třída kalkulačky:

Toto je hlavní třída:

Vytvoření obou těchto tříd v mém IDE, IntelliJ a spuštění hlavní třídy má za následek dokonale fungující kalkulačka program, který přebírá dvě čísla a operátor pro sčítání, odčítání, násobení, popř divize.

ChatGPT je v programování slušný

I když bych se nespoléhal na to, že ChatGPT udělá vše za vás, je jasné, že dokáže odvést docela dobrou práci při vytváření programů a zohledňování kritiky, když se vyskytnou problémy. Překvapilo mě, když jsem viděl, že navrhuje hašovací algoritmus jako způsob, jak rozeznat drobné změny na webové stránce, ale kromě toho se vůbec nepotýkal se základními úkoly. I v případě programu Python měl hned od začátku správný nápad a na statičtějších stránkách by fungoval perfektně.

ChatGPT samozřejmě v dohledné době nenahradí programátory, ale je na cestě stát se velmi dobrým nástrojem v pracovní síle. Kopilot GitHubu, například využívá GPT technologie, která lidem pomáhá psát kód, a postupem času bude jen vyspělejší. I když jste začínající programátor, tento druh nástroje vám může potenciálně pomoci učit se, pokud mu můžete plně důvěřovat, ale někdy dělá podivné chyby, jak jsme viděli.

Příklady zde uvedené jsou samozřejmě velmi základní a většina programátorů by je dokázala napsat poměrně snadno, ale o to nejde. Je děsivě dobrý ve vytváření řešení jednoduchých úkolů a zdá se, že zvládá slušně i složitější úkoly. Jsme nadšeni, že uvidíme, kam se nástroje jako tyto budou v budoucnu ubírat a pomohou lidem zlepšit jejich dovednosti.