S automatem ChatGPT si za posledních několik měsíců pohrálo ohromné množství lidí nejrůznějších profesí. Internet se plní tipy, jak z neuronky vytáhnout odpovědi i na docela zapeklité dotazy.
Pojďme si to také vyzkoušet. Potrápíme ho vzorci pro Excel, příkazovou řádkou PowerShell pro Windows, regulárními výrazy a tvorbou, překladem i analýzou kódu v Pythonu a C včetně hledání chyb v syntaxi a sémantice.
Dotazy budeme pokládat výhradně v češtině, anglických ukázek je totiž plný internet. Díky tomu je to zároveň dobrý test jazykových schopností robota.
Vytvoř funkci pro Excel
Vzorce v Excelu jsou strašákem všech strašáků. Přiznám se, že je prakticky nepoužívám, takže se mi moudrost AI parťáka náramně hodila. Dejme tomu, že chci v tabulce vyrobit vyhledávač, který najde hodnotu zadanou do buňky J1 ve sloupci A a vrátí odpovídající hodnotu ze sloupce E. Podívejte se dole na snímek okna programu, ze kterého vše pochopíte.

ChatGPT bez problému porozuměl komplexnímu dotazu v češtině a vyplivnul řešení včetně vysvětlení všech parametrů funkce VLOOKUP.
Má to ale jeden podstatný háček. Excel používám v české lokalizaci, kde jsou přeložené i funkce a VLOOKUP se používá v podobě SVYHLEDAT. K tomu parametry vzorce odděluje středník a nikoliv čárka. Excel bohužel zobrazil jen nicneříkající generickou chybu, takže jsem nakonec stejně pro radu zamířil na Google.

První pokus nevyšel, ale tak jednoduše se nevzdám
S Excelem v ChatGPT proto ještě nekončíme. K vyřešení problému totiž využijeme nejsilnější zbraň automatu, která se skrývá už v jeho názvu!
Pokračování 2 / 12
Nefunguje to, ale pomůže debata s robotem
První selhání bylo do jisté míry naplánované, protože si alespoň můžeme ukázat silnou zbraň technologie od OpenAI. Jelikož má už ve svém názvu „Chat,“ drží kontext debaty a namísto nového pokusu mohu původní dotaz zpřesnit.
Nakonec jsem si dohledal, že funkce VLOOKUP není ani s korektními středníky zrovna nejvhodnější, takže dám automatu povel, aby použil novější funkci XLOOKUP. Tady jsem měl štěstí, protože tuto funkci má ve stejné podobě i český Excel, nepřekládá ji.

Odpověď je sice korektní, ale český Excel používá pro oddělení parametrů středník. Je s podivem, že tento banální začátečnický problém nedokáže Office automaticky opravit ani v roce 2023, a tak dotaz opět upravím.

Heuréka! Konečně máme funkční vzorec a naivní vyhledávač konkrétního parametru v tabulce Excelu. Naprostý začátečník by sice podobně jako já narazil, tomu zkušenějšímu, který už ví, jak mají zhruba vzorce vypadat, ale může ChatGPT pomoci na první dobrou, anebo se výsledku společně doberou v podobné debatě.

Funkční primitivní vyhledávač pomocí vzorečku, který zkonstruoval ChatGPT
Pokračování 3 / 12
Stáhni a ukaž kurzovní lístek v PowerShellu
PowerShell je téměř všemocný nástroj, který má v systému každý majitel počítače s novější verzí Windows. Tento skvělý příkazový řádek nabízí tisíce a tisíce příkazů, ve kterých se ale vyznají snad jen inženýři z Redmondu. Zvládne to ChatGPT a dokážeme s jeho pomocí stáhnout a zobrazit kurzovní lístek ČNB?

Stažený textový soubor kurzovního lístku ČNB je formátovaný jako CSV, přičemž oddělovačem sloupců je znak „|“. Zároveň je třeba ignorovat první řádek s datem. ChatGPT na první dobrou vše pochopil a vyrobil funkční příkaz.

Příkaz, který stáhne a rozřeže kurzovní lístek v CSV a zobrazí jej jako textovou tabulku
Tentokrát to vyšlo, ale je třeba připomenout, že práce s ChatGPT připomíná ten pomyslný vrcholek ledovec. Na sociálních sítích najdete desítky a stovky ukázek, co všechno dokáže, ovšem často tomu předchází hromada pokusů, kdy automat prostě selže.
Svým způsobem je to tedy takový pedagog, který vás nakonec pokusem-omylem naučí to, co po něm vlastně chcete. Třeba zrovna vzorce z Excelu a základy PowerShellu.
Pokračování 4 / 12
Stáhni a zobraz kurzovní lístek v Pythonu
Pojďme ukázat příklad s kurzovním lístkem ČNB v univerzálnějším skriptovacím jazyku Python, který je volitelně dostupný prakticky na všech počítačových platformách a operačních systémech.

ChatGPT použil pro stažení dat oblíbenou knihovnu Requests, jinak si ale vystačil se zabudovanými funkcemi.Mimochodem každá interpretace zadání vygeneruje opět jiný kód. Když jsem to tedy zkusil podruhé, ChatGPT do hry zapojil další oblíbenou knihovnu pro práci s tabulkami Pandas. Ta je pro takto jednoduchý scénář nadbytečná, ale může se vyplatit zeptat se robota několikrát a potom si vybrat.

Stažení kurzovního lístku, jeho rozřezání a zobrazení hodnot oddělených tabulátorem
Funguje to až na jednu drobnost, kterou bychom dopilovali dalším dotazováním. Robot podmínku „ignoruj první řádek“ použil v kódu dvakrát, takže ve výstupu chybí uvedení data, což je sice v pořádku, ale také hlavička tabulky s názvy sloupců.
Pokračování 5 / 12
Přelož příkaz v PowerShellu do Pythonu
Silnou zbraní ChatGPT vedle generování programového kódu je i jeho překlad do jiných jazyků. Dejme tomu, že chceme přeložit do Pythonu opět příkaz v PowerShellu. Ten znovu stáhne kurzovní lístek, ale tentokrát v něm vyhledá řádky obsahující text „EUR.“

Překlad kódu z jednoho jazyka do druhého je už královská disciplína, která vyžaduje naprosté porozumění vstupu, aniž by se z toho stala tak trochu tichá pošta.
S tímto mentálním nastavením je tedy úspěch už to, když ChatGPT vygeneruje alespoň něco. Na první pokus to třeba dělá trošku jinou věc, ale poslouží to alespoň jako dobrý základ. V tomto případě byl použitelný až pátý výsledek, dialog s robotem jsem ale pro přehlednost skryl.

Výborně, přesně toto jsme chtěli
Pokračování 6 / 12
Vytvoř regulární výraz pro vyhledání data
Na regulárních výrazech si už vylámal zuby nejeden expert a pro domácí kodéry je to často naprosté peklo. Takzvané regexy jsou přitom téměř všudypřítomné jako textové vzory pro pokročilé vyhledávání. Jak si s nimi poradí ChatGPT? Zavelíme, aby vytvořil regex pro vyhledání data ve formátu dd.mm.yyyy.

Zkušení regexeři už vidí, že ChatGPT sice odpověděl funkčním výrazem, který je ale příliš primitivní. Vyhledá cokoliv ve formátu čč.čč.čččč, kde znak č představuje číslici – takže i neplatné datum 32.13.2023. Můžete si to ověřit třeba v mém oblíbeném editoru regulárních výrazů RegExr.

RegExr potvrdil, že je vyhledávač data příliš obecný a nebere v potaz platný rozsah
Neházejme ale flintu do žita, vždyť se přece bavíme s chatbotem a dotaz můžeme zpřesnit. Ukážeme si to opět na samostatném listu.
Pokračování 7 / 12
Vedeme dialog a vylepšujeme dotaz
ChatGPT drží kontext debaty v aktuálním vlákně, takže pokud se nám první výsledek nelíbí, můžeme dotaz víc specifikovat, aniž bychom začínali zase od nuly.

Uf, trošku se nám to protáhlo, letmým pohledem na výsledek je ale patrné, že ChatGPT do výrazu doplnil několik dalších filtrů. Ověříme to opět v editoru regulárních výrazů RegExr s textem, který obsahuje neplatné datum 32.13.2023.

Chybné datum regex ignoruje
Výborně, tento regex je už chytřejší a označí jen platné datum ve formátu dd.mm.yyyy, takže třeba 24.12.2022 jako na obrázku níže.

To validní už najde a označí
Možná jste si všimli, že náš regulární výraz stále není dokonalý. Různé měsíce mají různou platnou délku a filtr zároveň omezuje letopočet jen na roky 1900 až 2099. Výraz pro rok ve znění (19|20)\d\d totiž můžeme přeložit do češtiny jako: číslo 19, nebo 20 následované dvěma číslicemi. Další konverzací s chatbotem se ale opět dobereme kýženého výsledku.
Pokračování 8 / 12
V jakém jazyku je napsaný tento dlouhý kód?
ChatGPT zvládne ještě jednu skvělou věc. Díky tomu, že umí kód tvořit, dokáže jej zpravidla i docela dobře vysvětlit.
Schválně jestli pochopí obsah mého primitivního textového programu v C pro Windows, který se po spuštění spojí skrze USB se stolním multimetrem Multicomp Pro MP730424 a začne vypisovat a případně i ukládat naměřené hodnoty do textového souboru CSV. Začneme nejprve zlehka a zeptáme se, co je to za programovací jazyk.

Fajn, bezchybná odpověď. V další kapitole se ale chatbota zeptáme, co program vlastně dělá.
Pokračování 9 / 12
Vysvětli, co dělá tento dlouhý kód
V dalším kroku chceme po ChatGPT srozumitelný popis životního cyklu programu, jehož zdrojový kód mu opět celý zkopíruji do chatu. Kvůli jeho délce totiž už ztrácí kontext a příliš se nechytal, když jsem jej žádal o to, aby použil již ten, který má na začátku vlákna z předchozího dotazu.

Perfektní, nemám slov! ChatGPT bezchybně popsal celý životní cyklus programu, přičemž z anglických stručných komentářů v kódu doplnil i to, že se jedná o multimetr.
Když textový popisek výše srovnáte s obrázky programu v reálném chodu, jistě mi dáte za pravdu, že tady nelze vznést jedinou námitku. Byl jsem zvědavý právě na analýzu (byť jednoduchého) kódu v C s využitím Win32 API, protože mnohem populárnější Javascript a Python zná ChatGPT poměrně dobře a měl k němu při úvodním učení mnohem více dat – přinejmenším celý GitHub.


Program v akci
Pokračování 10 / 12
Kde je v kódu syntaktická chyba?
Analytické schopnosti ChatGPT jsou občas opravdu ohromující, kód totiž dokáže nejen projít a vysvětlit, ale odhalí i případné chyby. Pojďme to ukázat opět v Pythonu, který má nastudovaný asi nejlépe. Python používá pro hodnotu pravdy slovo True. Já v nekonečné smyčce níže použiji chybné true. Odhalí to?

ChatGPT základní syntaktickou – formální – chybu okamžitě odhalil, vše vysvětlil a ukázal korektní variantu. Sice nemá správné odsazení bloků, ale to mu odpustíme.
Pokračování 11 / 12
Kde je v kódu sémantická chyba
No dobrá, za detekci špatného zápisu kódu má automat za 1★, dokáže ale ChatGPT odhalit i sémantickou – významovou – chybu?
Dejme tomu, že jsme předchozí program upravili tak, aby vypisoval zprávu „Máme rádi ChatGPT,“ dokud je proměnná „i“ menší než 10, přičemž ji ve smyčce v každém cyklu navýšíme o 1. Jenže omylem proměnnou navýšíme o hodnotu -1, takže se bude naopak snižovat a smyčka bude prakticky nekonečná.

Opět skvělá práce, chatbote, byť je třeba přihlédnout k tomu, že se jedná opravdu o jednoduchý příklad. Podle ohlasů na sociálních sítí se však ChatGPT občas podaří odhalit i mnohem sofistikovanější bubáky a potenciální zranitelnosti, které by mohl zneužít záškodník třeba ke kybernetickému útoku. My si vystačíme s touto pitomostí, kterou s trochou vůle pochopí i vaše čivava.
Pokračování 12 / 12
Pozor na růžové brýle!
Na závěr si připomeňme jedno velké ALE! Internet je plný ukázek, ve kterých ChatGPT dosahoval ohromujících výsledků. Není to ale pravidlo a je třeba k němu takto přistupovat!
Programátoři a experti všeho druhu nadšeně zveřejňují, co všechno ChatGPT dokázal, ale to je opravdu vrcholek ledovce. Zdaleka nefunguje vždy na první dobrou a zdárné odpovědi předcházely třeba i desítky dotazů, se kterými se už na webu nikdo nepochlubil.


Takto vypadala příprava článku ve skutečnosti. ChatGPT je kvůli enormnímu zájmu prakticky neustále přetížený a často vyskakují chybová hlášení
Ostatně, ukázali jsme si to už na příkladu s Excelem v úvodu článku. Jelikož jej opravdu neovládám, nakonec mi hledání správné odpovědi s chatbotem zabralo dlouhé desítky minut. V tomto případě by byl prostý dotaz do Googlu, nebo rovnou do služeb jako StackOverflow a Quora, asi mnohem efektivnější.
Při ladění korektní odpovědi pomocí doplňujících příkazů je zároveň ChatGPT pod enormní zátěží, a tak si na odpovědi počkáte třeba i desítky sekund. Anebo rovnou vyskočí omluva, že je služba přetížená.
Jak pracuji s ChatGPT
Marek Lutonský
Protože nejsem vývojář a programuji, jen když si něco potřebuji udělat, zapomínám syntaxi. Plete se mi R, Python, Apps Script, VBA… nikdy nevím, kde mají být čárky, kde odsazení, jak se zrovna tady dělá smyčka. Takže i když poznám situace, kdy by mi pomohlo nějaké makro, často stejně tu automatizovatelnou operaci naklikám ručně. Než bych kód poskládal, budu to mít rychleji hotové tradičním způsobem.
Už ne, díky ChatGPT. Zeptám se a dostanu kód. Projdu ho – tím se mimochodem učím –, laděním po krocích zjistím, jestli dělá to, co chci. A pak už jen pustím. Třeba tady, kdy jsem chtěl odstranit ochranu ze všech listů tabulky Google. Postupně asi z deseti tabulek, kdy bych se uklikal.

Zkuste si na ChatGPT vzpomenout, když řešíte nějaký problém s kódem. Může hodně pomoci. Na druhou stranu je někdy nutné uznat, že se při konverzaci s robotem točíte v kruhu a nevede k výsledku. Pak je lepší začít znovu od začátku, nebo to třeba vzdát, že tentokrát to s AI nevyšlo.
Tento článek je součástí balíčku PREMIUM+
Odemkněte si exkluzivní obsah a videa bez reklam na devíti webech.
Chci Premium a Živě.cz bez reklam
Od 41 Kč měsíčně