Jak používat ChatGPT k psaní kódu

obrázek1.pngJedním z nejzajímavějších objevů ChatGPT je, že dokáže psát docela dobrý kód. Vyzkoušel jsem to v únoru, když jsem ho požádal, aby napsal plugin WordPress, který by moje žena mohla používat na svých webových stránkách. Odvedlo to dobrou práci, ale byl to velmi jednoduchý projekt.

Jak používat ChatGPT k psaní: Resumes| Excel vzorce | Eseje | průvodní dopisy

Jak můžete použít ChatGPT k psaní kódu jako součást každodenní praxe kódování? To je to, co zde prozkoumáme.

Jaké typy kódování může ChatGPT dělat dobře?

O ChatGPT a kódování jsou dvě důležité skutečnosti. První je, že může ve skutečnosti psát užitečný kód. Druhým je, že se může úplně ztratit, spadnout do králičí nory, pronásledovat si vlastní ocas a vyprodukovat naprosto nepoužitelné odpadky.

Zjistil jsem to tvrdě. Poté, co jsem dokončil plugin WordPress, rozhodl jsem se zjistit, jak daleko může ChatGPT zajít. Napsal jsem velmi pečlivou výzvu pro aplikaci pro Mac, včetně podrobného popisu prvků uživatelského rozhraní, interakcí, toho, co bude poskytnuto v nastavení, jak budou fungovat a tak dále. Pak jsem to nakrmil ChatGPT.

ChatGPT odpověděl záplavou textu a kódu. Pak se to zastavilo uprostřed kódu. Když jsem ho požádal, aby pokračoval, vyzvracel ještě více kódu a textu. Požádal jsem o pokračování po pokračování a vyhazovalo více a více kódu. Ale... nic z toho nebylo použitelné . Neurčilo, kam by měl kód jít, jak sestavit projekt, a – když jsem se pozorně podíval na vytvořený kód – vynechal hlavní operace, které jsem požadoval, a nechal v jednoduchých textových popisech, že „logika programu jde sem. "

Po hromadě opakovaných testů mi bylo jasné, že pokud požádáte ChatGPT o dodání kompletní aplikace, selže. Důsledkem tohoto pozorování je, že pokud nevíte nic o kódování a chcete, aby vám ChatGPT něco vytvořilo, selže.

Kde ChatGPT uspěje - a dělá to velmi dobře - je v pomoci někomu, kdo již ví, jak kódovat, vytvářet specifické rutiny a provádět konkrétní úkoly. Nežádejte o aplikaci, která běží na liště nabídek. Ale pokud požádáte ChatGPT o rutinu, abyste umístili nabídku na lištu nabídek a pak ji vložili do svého projektu, půjde to docela dobře.

Také: Jak používat ChatGPT k vytvoření aplikace

Také mějte na paměti, že i když se zdá, že ChatGPT má obrovské množství znalostí specifických pro doménu (a často tomu tak je), chybí mu moudrost . Jako takový může být schopen psát kód, ale nebude schopen napsat kód obsahující nuance pro velmi specifické nebo složité problémy, jejichž pochopení vyžaduje hluboké zkušenosti.

Použijte ChatGPT k ukázce technik, psaní malých algoritmů a vytváření podprogramů. Můžete dokonce získat ChatGPT, aby vám pomohl rozdělit větší projekt na části, a pak ji můžete požádat, aby vám pomohla tyto části nakódovat.

Takže s ohledem na to se podívejme na některé konkrétní kroky, jak používat ChatGPT k psaní kódu.

Jak vám ChatGPT může pomoci napsat kód

1. Zužte a zpřesněte svůj požadavek

Tímto prvním krokem je rozhodnutí, na co se budete ChatGPT ptát – ale zatím se ho na nic neptejte. Rozhodněte se, co chcete, aby vaše funkce nebo rutina dělala, nebo co se chcete naučit začlenit do kódu. Rozhodněte se o parametrech, které chcete předat do svého kódu, a o tom, co chcete získat. A pak se podívej, jak to popíšeš.

Představte si, že za to platíte lidskému programátorovi. Dáváte této osobě dostatek informací, aby mohla pracovat na vašem úkolu? Nebo jste příliš vágní a osoba, které platíte, se spíše zeptá nebo uvede něco, co zcela nesouvisí s tím, co chcete?

Zde je příklad. Řekněme, že chci umět shrnout jakoukoli webovou stránku. Chci to nakrmit něco jako tento článek a získat zpět krátké shrnutí, které je dobře uvážené a vhodné. Jako svůj vstup uvedu URL webové stránky. Jako můj výstup je to blok textu se shrnutím.

2. Použijte ChatGPT k prozkoumání knihoven a zdrojů

Pokračujeme-li ve výše uvedeném příkladu, velmi starým způsobem extrahování dat webové stránky bylo najít text mezi značkami odstavce HTML.

Ale s rozmachem nástrojů AI má větší smysl používat knihovnu AI k vytvoření inteligentního výpisu a shrnutí. Jedním z míst, kde ChatGPT vyniká (a je to také oblast, kterou si můžete snadno ověřit, abyste se vyhnuli jejímu autoritativnímu, ale nesprávnému vzorci chování), je hledání knihoven a zdrojů.

OpenAI (tvůrce ChatGPT) prodává API přístup k motorům GPT-3 a GPT-4 , které budou dělat přesně to, co chceme. Ale v případě tohoto příkladu předpokládejme, že nechceme platit transakční poplatky.

Podívejme se tedy na interakci s ChatGPT, abychom zjistili, jak takový nástroj zdarma používat s projektem, který běží v PHP.

Začal jsem výzvou, která byla navržena tak, aby získala informace o tom, které knihovny budou poskytovat funkce, které jsem chtěl. Knihovna (pro ty z vás, kteří spolu čtou, kteří nejsou programátoři) je soubor kódu, ke kterému má programátor přístup a který za konkrétním účelem dělá hodně těžké práce. Velkou součástí moderního programování je hledání a výběr správných knihoven. Takže toto je dobrý výchozí bod.

V tomto případě se dívám na bloky kódu napsané jinými lidmi, které shrnují text. Zde je moje první výzva:

Popište deset různých knihoven umělé inteligence s otevřeným zdrojovým kódem (a jazyky, se kterými pracují), které mohu použít ke generování souhrnu hlavního základního obsahu jakékoli webové stránky, přičemž ignoruji jakékoli reklamy nebo vložené materiály.

To mi dalo přesně to, co jsem chtěl, včetně zmínky o nabídkách OpenAI. Myslím, že OpenAI by zde fungovalo skvěle, ale pro tento hypotetický projekt nechci počítat na poplatky za API. Takže otázku zúžím.

Jsou některé z nich zdarma?

ChatGPT svou odpovědí zajistil své sázky. Zde je to, co stálo: "Ano, všech deset těchto knihoven umělé inteligence je open source a lze je zdarma používat. Některé z nich však mohou mít limity využití nebo vyžadovat platbu za přístup k dalším funkcím nebo zdrojům." Na základě toho jsem tedy upřesnil svůj dotaz.

Které z těchto knihoven nemají žádné limity využití a nevyžadují žádné další platby nebo licence?

Všimněte si, jak moc je to rozhovor. Nemusím znovu pokládat původní otázku. Jen se vrtám stejným způsobem, jako kdybych měl po ruce odborníka a hledal vysvětlení. V tomto případě mi ChatGPT poskytl osm možností knihovny, ale žádná z nich nezmínila jazyk PHP, který jsem plánoval kódovat. Zde je další výzva:

Mohu některou z těchto 8 knihoven použít s PHP?

Vrátil tři knihovny, ale nebyl jsem si jistý, co každá udělala. Takže další otázka:

Jaký je rozdíl mezi Sumy, Gensim a NLTK?

Stále jsem si nebyl jistý, takže jsem objasnil svůj plán použití a zeptal se:

Pokud chci vytvářet souhrny zpravodajských článků webových stránek, která knihovna by fungovala lépe?

Odpověď, kterou jsem dostal, byla jasná a slibná: „Sumy je speciálně navržena pro sumarizaci textu, což je úkol vytvořit shrnutí, které zachycuje nejdůležitější informace z kusu textu.“ Takže teď nastal čas podívat se, co obnáší použití s PHP. Položil jsem svou poslední otázku k této části projektu:

Můžete vysvětlit, jak používat Sumy z PHP?

Neváhejte a hrajte na svém počítači a vložte tyto výzvy do své instance ChatGPT. Všimněte si, že v kroku 1 jsem se rozhodl, se kterým programovým modulem budu potřebovat pomoc. Poté jsem v tomto kroku vedl rozhovor s ChatGPT, abych se rozhodl, jakou knihovnu použít a jak ji integrovat do svého projektu.

To se nemusí zdát jako programování, ale ujišťuji vás, že je. Programování není jen házení řádků kódu na stránku. Programování znamená zjistit, jak integrovat všechny různé zdroje a systémy dohromady a jak komunikovat se všemi různými součástmi vašeho řešení. Zde mi ChatGPT pomohl udělat integrační analýzu.

Mimochodem, byl jsem zvědavý, zda by stejným způsobem mohl pomoci i Bard od Googlu. Bard ve skutečnosti neumí psát kód, ale poskytl nějaké další poznatky o aspektech plánování programování přes odpovědi ChatGPT. Neváhejte tedy použít více nástrojů k triangulaci odpovědí, které chcete. Tady je ten příběh: Bard vs. ChatGPT: Může vám Bard pomoci s kódováním? Od té doby, co jsem napsal tento článek, Google přidal Bardovi některé možnosti kódování, ale nejsou až tak skvělé. Můžete si o tom přečíst zde: Testoval jsem nové kódovací dovednosti Google Barda. Nedopadlo to dobře.

Následuje kódování.

3. Požádejte ChatGPT, aby napsal příklad kódu

Dobře, tady se zastavíme. Tento článek má název "Jak používat ChatGPT k psaní kódu." A bude! Ale opravdu žádáme ChatGPT, aby napsal příklad kódu. Počkejte. Co?

Také: Co je GPT-4? Zde je vše, co potřebujete vědět

Aby bylo jasno. Pokud nepíšete velmi malou funkci (jako třídič/randomizér řádků, který ChatGPT napsal pro mou ženu), ChatGPT nebude schopen napsat váš konečný kód. Nejprve jej budete muset udržovat. ChatGPT je hrozný v úpravě již napsaného kódu. Hrozné, jako v tom to nedělá. Chcete-li tedy získat nový kód, musíte požádat ChatGPT, aby vygeneroval něco nového. Jak jsem zjistil dříve, i když je vaše výzva prakticky identická, ChatGPT může změnit to, co vám dává, velmi neočekávaným způsobem.

Sečteno a podtrženo: ChatGPT nemůže udržovat váš kód, ani jej vyladit.

To znamená, že to musíte udělat sami. Jak víme, první návrh části kódu je zřídka konečným kódem. Takže i kdybyste očekávali, že ChatGPT vygeneruje konečný kód, byl by to skutečně výchozí bod, takový, kdy jej musíte dotáhnout do konce, integrovat do svého většího projektu, otestovat, vylepšit, odladit atd. .

Také: Požádal jsem ChatGPT, aby napsal krátkou epizodu Star Trek. Vlastně se to povedlo

Ale to neznamená, že ukázkový kód je bezcenný. Daleko od toho. Podívejme se na výzvu, kterou jsem napsal na základě projektu, který jsem popsal dříve. Tady je první část:

Nainstalujte PHP funkci s názvem Summary_article.

Jako vstup bude službě Summary_article předána adresa URL článku na webu souvisejícím se zprávami, jako je ZDNET.com nebo Reuters.com.

Říkám ChatGPT programovací jazyk, který by měl používat. Říkám mu také vstup, ale zároveň poskytuji dvě stránky jako ukázky, které ChatGPT pomohou porozumět stylu článku. Upřímně, nejsem si jistý, zda ChatGPT neignoroval tento kousek pokynů. Dále vám řeknu, jak udělat většinu práce:

Uvnitř Summary_article načtěte obsah webové stránky na zadané URL. Pomocí knihovny Sumy z PHP a jakýchkoli dalších nezbytných knihoven extrahujte hlavní část článku, ignorujte jakékoli reklamy nebo vložené materiály, a shrňte jej do přibližně 50 slov. Ujistěte se, že shrnutí obsahuje celé věty. V případě potřeby můžete poslední větu dokončit nad 50 slov.

Je to velmi podobné tomu, jak bych dal pokyn zaměstnanci. Chtěl bych, aby ten člověk věděl, že se neomezuje pouze na Sumy. Pokud potřebovali jiný nástroj, chtěl jsem, aby ho použili.

Také jsem určil přibližný počet slov, abych vytvořil hranice toho, co jsem chtěl jako shrnutí. Pozdější verze rutiny může toto číslo převzít jako parametr. Pak jsem skončil tím, že jsem řekl, co jsem ve výsledku chtěl:

Jakmile je zpracování dokončeno, kód Summary_article tak vrátí souhrn v prostém textu.

Výsledný kód je poměrně jednoduchý. ChatGPT zavolal na jinou knihovnu (Goose), aby načetla obsah článku. Poté to předal Summy s limitem 50 slov a vrátil výsledek. A je to. Ale jakmile jsou základy napsány, je to pouhá záležitost programování, vrátit se a přidat vylepšení, upravit to, co je předáno dvěma knihovnám, a dodat výsledky.obrázek2.png

Jedna zajímavá poznámka. ChatGPT vytvořil ukázkové volání rutiny, kterou napsal, pomocí adresy URL z doby po roce 2021 (kdy končí datová sada ChatGPT).

Zkontroloval jsem tuto adresu URL na webu Reuters a Wayback Machine a neexistuje. ChatGPT to právě vymyslel.

Nejčastější dotazy

Nahrazuje ChatGPT programátory?

Ne teď - nebo alespoň - ještě ne. ChatGPT programuje na úrovni talentovaného studenta programování prvního ročníku, ale je to líný (jako ten prvák). Mohlo by to snížit potřebu programátorů na velmi základní úrovni, ale na současné úrovni si myslím, že to základním programátorům (a dokonce i programátorům s více zkušenostmi) usnadní život při psaní kódu a vyhledávání informací. Je to rozhodně úspora času, ale existuje jen málo programovacích projektů, které by to zvládlo samo - alespoň nyní. V roce 2030? Kdo ví.

Jak získám odpovědi na kódování v ChatGPT?

Stačí se zeptat. Výše jste viděli, jak jsem použil interaktivní diskusní dialog k zúžení odpovědí, které jsem chtěl. Když pracujete s ChatGPT, neočekávejte, že jedna otázka magicky udělá veškerou vaši práci za vás. Ale použijte ChatGPT jako pomocníka a zdroj a dá vám spoustu velmi užitečných informací. Samozřejmě si tyto informace otestujte – protože, jak říká John Schulman, spoluzakladatel OpenAI: „Největším zájmem jsme byli ohledně faktičnosti, protože model rád věci vymýšlí.“

Pokud k psaní kódu používám ChatGPT, kdo jej vlastní?

Jak se ukazuje, zatím neexistuje mnoho judikatury, která by definitivně odpověděla na tuto otázku. USA, Kanada a Spojené království vyžadují, aby něco, co je chráněno autorským právem, bylo vytvořeno lidskýma rukama, takže kód generovaný nástrojem AI nemusí být chráněn autorským právem. Existují také otázky odpovědnosti založené na tom, odkud pochází školicí kód a jak se výsledný kód používá. ZDNET se na toto téma hluboce ponořil, hovořil s právními experty a vytvořil následující tři články. Pokud vás tento problém znepokojuje (a pokud používáte AI k pomoci s kódem, měli byste být), doporučuji, abyste si je přečetli.

  • Kdo je vlastníkem kódu? Pokud AI ChatGPT pomáhá psát vaši aplikaci, patří vám stále?
  • Pokud používáte kód vygenerovaný AI, jaká je vaše odpovědnost?
  • Ožehavá otázka: Kdo vlastní kód, obrázky a příběhy generované AI?

Jaké programovací jazyky zná ChatGPT?

Většina z nich. Zkoušel jsem to hodně stranou. Testoval jsem běžné moderní jazyky, jako je PHP, Python, Java, Kotlin, Swift, C# a další. Ale pak jsem to nechal napsat kód v obskurních jazycích temné doby, jako je COBOL, Fortran, Forth, LISP, ALGOL, RPG (generátor programu sestav, ne hra na hraní rolí) a dokonce i v assembleru IBM/360.

Jako třešničku na dortu jsem dal tuto výzvu:

Napište sekvenci, která na předním panelu PDP 8/e zobrazí 'Ahoj, světe' v blikajících světlech ASCII

PDP 8/e byl můj úplně první počítač a ChatGPT mi vlastně dal instrukce pro přepínání v programu pomocí přepínačů na předním panelu. Byl jsem ohromen, veselý a trochu jsem se bál.

Jaký je konečný výsledek? ChatGPT může být velmi užitečným nástrojem. Jen tomu nepřipisujte superschopnosti. Dosud.

Příbuzné články

Zobrazit víc >>

Odemkněte sílu AI s HIX.AI!