Zkraje prázdnin začalo OpenAI postupně uvolňovat zdaleka nejočekávanější funkci svého textového robůtka ChatGPT. V tuto chvíli by už měl mít přístup k technologii Code interpreter každý předplatitel prémiové verze ChatGPT Plus.
Pokud vás už chatboti možná trošku omrzeli, těch 20 dolarů na měsíční test stojí za to, Code interpreter je totiž rozhodně zábavnější než letní nabídka Netflixu a HBO dohromady.
Za pětistovku na měsíc
Zhruba za pětistovku (20 dolarů předplatné + 4,2 dolarů daň) získáte nejpokročilejší chatbotový motor GPT-4, který je ale navíc vyzbrojený interpretem Pythonu.

Aktivace funkce Code interpreter Beta
Pokud vůbec neprogramujete a už chcete mávnout rukou, že vás žádný Python nezajímá, strčte zase ruku do kapsy, programovat totiž nebudete vy, ale robot.
K čemu je to vlastně dobré? To si ukážeme na několika následujících listech, ve kterých si stručně vysvětlíme, jak se s tím pracuje, kde to skřípe a v čem je to zase další (byť stále nicotný) krůček k mýtické AGI – univerzální umělé inteligenci, která bude jednou umět úplně všechno.

Výběr z několika verzí AI v placeném ChatGPT Plus
Robote, naprogramuj a ukaž obrázek
Začneme ukázkou, která byla před nástupem Code interpreteru prakticky nemyslitelná. Dáme povel ChatGPT, aby vytvořil – tedy naprogramoval – rastrový obrázek. Běhové prostředí totiž nemá po ruce jen základní instalaci Pythonu, ale také desítky nejpoužívanějších knihoven pro všechny typické operace. Jednou z nich je knihovna Pillow/PIL pro práci s pixely:

ChatGPT naprogramoval a zobrazil barevný přechod v Pythonu
Před příchodem Code interpreteru mohl ChatGPT pouze vymyslet kód, ale neuměl jej spustit. Teď dokáže dokonce zobrazit i grafický výsledek. Pomocí barevného modelu HSL/HSV a složky odstínu (hue) jsme si vytvořili kompletní barevný přechod RGBR.
Pokračování 2 / 12
Robote, jak jsi ten obrázek nakreslil?
ChatGPT je maximálně transparentní, takže se samozřejmě můžete podívat na zdrojový kód, pomocí kterého robot vytvořil barevný přechod v první ukázce. Stačí rozbalit roletku Show work:

Každý krok je transparentní a můžeme si projít kód, který ChatGPT vytvořil a poté spustil
Code interpreter je díky tomu skvělý učitel programování. Sice v tuto chvíli umí jen Python, ale ten patří k nejoblíbenějším jazykům a jeho přinejmenším základní znalost by měla být mezi ajťáky stejně samozřejmá jako schopnost zavázat si tkaničky u bot.
Při učení jen mějte na paměti, že kvalita kódu může být občas diskutabilní. Nemusí být nejrychlejší a nejmenší z hlediska zátěže systému, jedinou podmínkou je totiž to, aby byl vůbec funkční a skončil bez chyby.
Pokračování 3 / 12
Programování jako konverzace
Práce s chatboty je založená na dialogu – konverzaci. Generativní AI má i v případě GPT-4 k dokonalosti ohromný kus cesty před sebou a chybuje poměrně často. Když tedy Code interpreter poprvé naprogramuje nějaký nesmysl, prostě mu to řekněte.
Stejně tak můžeme jako u jiných chatů naprogramované dílo dále rozvíjet a pracovat s odvozenými výsledky, které robot získal spuštěním. Ukážeme si to na dalších listech.

Další operace už probíhají nad dočasně vytvořeným obrázkem a nemusí se vše opakovat
Všimněte si, že si Code interpreter drží v paměti objekt již vygenerovaného obrázku, takže ho jen otočí a za okamžik zase zobrazí. Nemusí znovu zpracovávat celý kód včetně generování barevné škály.
Tato paměť běhového prostředí je nicméně velmi náročná, takže i časově omezená. Kdybych se chtěl ke konverzaci vrátit za pár hodin, budu muset začít od začátku, paměť a všechna dočasně vytvořená data totiž vyprší.
Pokračování 4 / 12
Tady máš moje data a nakresli graf
Vyzkoušeli jsme si programování bitmap, Code interpreter si ale oblíbili především datoví analytici všeho druhu, robot totiž může pracovat i s daty, které mu nahrajeme v souboru.

ChatGPT může pracovat i s rozměrnými daty (desítky MB) ve formě souboru
Pošlu do ChatGPT textový soubor s teplotami u mě na balkoně po patnácti minutách a za posledních 48 hodin a požádám robota, aby nakreslil základní graf. Soubor má český formát CSV. Hodnoty jsou oddělené středníkem a reálná čísla používají desetinnou čárkou. Jak se s tím robot popere?

Dialog s robotem a vnořený dialog robota se sebou samotným, na jehož konci je graf vytvořený pomocí knihovny Matplotlib
Všimněte si, že robot v prvním kroku vytvořil kód a spustil jej, nicméně nastala chyba. Robot proto podle typu chyby žádá o upřesnění. V tomto případě chce znát přesný formát zadaného data.
Jen pro představu, každý řádek v souboru má tuto podobu: 14:09;14.7. 2023;31,5 a robot nedokázal vyřešit mezeru mezi měsícem a dnem a rokem.
Po upřesnění formátu už veškerou práci robot dokončí. Celá práce se tedy může skládat hned z několika podprogramů – skriptů v Pythonu – a ChatGPT si může i desítky sekund povídat sám se sebou a hledat korektní řešení tak dlouho, dokud interpret Pythonu nebude vracet žádné chybové hlášení.
Pokračování 5 / 12
Označ teploty vyšší než 35 stupňů Celsia
Prosté zobrazení grafu z CSV souboru zvládne každý tabulkový procesor, kouzlo chatbota ale spočívá v tom, že nad daty můžeme vést dialog stejně jako u generování bitmapy s barevnou škálou. V dalším kroku tedy dáme ChatGPT povel, aby libovolným způsobem označil ty datové body grafu, ve kterých teplota přesáhla 35 stupňů Celsia.

Označené body, kde teplota přesáhla 35 stupňů Celsia
Toto je už poctivější datově-analytický dialog s robotem, jeden prostý povel v češtině totiž nahradil hned několik dílčích operací, které bychom museli provést třeba v Excelu. ChatGPT Code interpreter přitom umí pracovat se vstupními soubory o velikosti až několika desítek MB!
Pokračování 6 / 12
Vytvoř tabulku s teplotami nad 35 stupňů Celsia
Code Interpeter samozřejmě dokáže výsledky vynést i do tabulky, a protože vedeme dialog a AI si drží komplexní kontext jak smyslu samotné debaty, tak již v Pythonu zpracovaných dat, stačí jen napsat:

V Pythonu zpracovaná data tentokrát ve formě tabulky
Díky držení kontextu nemusíme znovu opakovat, o jaká data nám jde. ChatGPT ví, že v předchozím kroku vypočítal extrémní hodnoty, a tak zobrazí právě jejich časovou tabulku.
Hmm, těch dat je ale hromada a ChatGPT nabídl jen náhled. Co s tím? To si ukážeme na dalším listu.
Pokračování 7 / 12
Vytvoř soubor CSV s extrémními hodnotami
ChatGPT vyzbrojený Code interpreterem umí soubory nejen nahrávat z našeho počítače, ale také je vytvářet a nabídnout ke stažení. Občas to sice zlobí a soubor nelze napoprvé stáhnout, v našem případě se to ale povedlo na jedničku:

ChatGPT vytvořil soubor s hodnotami a nabídl odkaz k jeho stažení
A takto vypadá náhled vytvořeného a následně staženého souboru:

Hotový CSV soubor s extrémními hodnotami teplot v anglickém formátu
Pokračování 8 / 12
Robote, teď načteme můj výpis z banky
Fajn, s teplotami z mé domácí meteostanice to byla legrace, robot totiž dostal data s velmi primitivní strukturou. Jak si ale poradí s měsíčním výpisem z banky? Nejprve jsem mu předložil výpis v PDF, kde měl ale problémy s hledáním vhodné knihovny pro Python, která podporuje načítání tohoto formátu dat.

Na výpisu v PDF si robot vylámal zuby, banka ale naštěstí nabízí i výpis v XML (níže)
Moje banka nicméně umožňuje výpis uložit i jako složité XML. Tak jdeme na to. Nejprve se podívejte na surový výřez s objektem transakce, se kterou se bude muset ChatGPT poprat:

XML objekt dílčí transakce
Je opravdu složitý, a tak budeme XML načítat postupně, abychom se vyvarovali chyb. Každá transakce je uložená v tagu <transaction> a ty jsou vnořené do tagu <transactions>, který je konečně součástí kořenového tagu <statement>. Robote, vidíš tuto datovou strukturu?

ChatGPT Code interpreter korektně načet z XML pole transakcí, takže jsme na dobré cestě
Výborně, robot si s XML poradil na jedničku. Mimochodem, zvolil knihovnu lxml pro práci s XML v Pythonu.
Na dalším listu ChatGPT instruujeme, kde je v záznamu částka transakce a její název.
Pokračování 9 / 12
Částka transakce je v atributu amount, popis v tagu trn-message
U každé transakce nás zajímá popis/název a samozřejmě částka. Aby to nebylo tak jednoduché, zatímco částka je uložená přímo v hlavičce tagu v jeho atributu amount, popis až ve vnořeném tagu <trn-messages> a <trn-message>. Robot se s tím ale popral na jedničku:

Konverzací v přirozené češtině jsme si vyrobili dekodér výpisu bankovních transakcí
Výborně, ChatGPT potvrdil, že už umí číst naše transakce, takže teď už se konečně můžeme ptát na nějaké praktické dotazy. Začněme tím, že jej pro kontrolu necháme vypsat do tabulky prvních pět transakcí:

Právě jsem chatbota proměnil v aplikaci, která umí analyzovat můj měsíční výpis z banky
Funguje to na jedničku, na dalším listu si ale ukážeme opět něco složitějšího. Budeme chtít po chatbotovi, aby z výpisu vydoloval jen ty transakce, které odpovídají nějaké podmínce.
Pokračování 10 / 12
Kolikrát jsem si koupil kávu u Kofi Kofi?
Půlku výplaty s trochou nadsázky utratím při cestě do redakce za ledovou kávu do ruky u vozíčků Kofi Kofi. Pokud to jde, používám bezhotovostní platbu, takže by všechny tyto ranní nákupy měly být součástí výpisu:

Uf, to je ale ledových káv do ruky
A jéje, opravdu tolik? Bojím se ten poslední dotaz napsat, bude to totiž nejspíše zároveň i odpověď na otázku zbytku rodiny, proč už deset let odkládám rekonstrukci kuchyně:

Buď zruším Netflix, nebo omezím kávu
Podobným způsobem se můžeme dotazovat prakticky na cokoliv, no a díky tomu, že se bavíme s chatbotem, nepotřebujeme k tomu ani znalost programování, ani vzorečků z Excelu. On to prostě nějak udělá.
Pokračování 11 / 12
Kolikrát jsem byl v Lidlu?
Jelikož už má robot všechny transakce v paměti a rozumí dotazům v přirozené češtině, pochopí i smysl otázky „Kolikrát jsem byl v samoobsluze Lidl?“ Jednoduše si domyslí, že přítomností na nějakém místě v tomto kontextu myslím to, že jsem tam provedl karetní transakci, a tak zcela správně vyhledá ty, které obsahují v popisu řetězec „Lidl.“

Kolikrát jsem byl v Lidlu, aneb z bankovního výpisu lze vytáhnout opravdu vše
A samozřejmě na upřesňující dotaz zobrazí i kompletní tabulku:

Tabulka útrat v Lidlu
A do třetice ještě porovnání s předchozím Kofi Kofi:

Nad zpracovanými daty už může Code interpreter provádět i komplexnější výpočty
GPT-4 vyzbrojený interpretem Pythonu je tedy opravdu velmi praktický pomocník a výpočetní stroj, se kterým se možnosti a schopnosti debatní AI doslova astronomicky rozšiřují. Co neví sám velký jazykový model GPT-4, to si prostě doprogramuje.
Na úplný závěr se ale připravte na studenou sprchu. Code interpreter totiž sice funguje, ale rozhodně ne vždy a má hromadu omezení.
Pokračování 12 / 12
Skvělé, ale stále beta s hromadou omezení
Díky Code interpeteru může ChatGPT pracovat s informacemi, které nejsou součástí jeho základních znalostí a dokáže věrohodným a transparentním způsobem řešit úlohy. Má to ale své limity.
Tím prvním je zakázaný přístup k internetu. Robot při programování nemůže stahovat informace z webu, což je velká škoda, byť by se tím pádem z něho mohla snadno stát nebezpečná zbraň. Mohl by třeba na povel naprogramovat aplikaci, která rovnou rozešle spam, způsobí hackerský útok a tak podobně.

Code interpreter nemá z bezpečnostních důvodů přístup k webu
Jepičí život kontextu
Druhým a pro praktické používání mnohem důležitějším limitem je jepičí život kontextu. Stručně řečeno, jakmile si dáte chvíli pauzu a vrátíte se k rozpracované konverzaci, už to dost možná nebude fungovat.
Stalo se to i mně. Když jsem se po pár minutách vrátil ke svému bankovnímu výpisu, ChatGPT už nedokázal zpracovat ani jeden další program v Pythonu, protože v mezidobí z paměti zmizel zdrojový XML soubor.

Code interpreter potřebuje hromadu paměti pro nahraná data a program, cenou je tedy jepičí život, pokud si dáte na pár minut pauzu
Pokud se to stane, je to problém, dílčí operace totiž ani nelze sekvenčně spustit znovu jedna za druhou, abychom se vrátili do bodu, kdy vše ještě fungovalo, protože se bavíme s velkým jazykovým modelem – s umělou inteligencí –, jehož výstupem je vždy (pouze) ten nejpravděpodobnější text.
Stručně řečeno, výstup všech mezikroků může být pokaždé trošku jiný a jednotlivé kroky by už na sebe nemusely funkčně navazovat. Jediným řešením je trvalá paměť pro celý kontext konkrétní konverzace, to by ale znamenalo, že by musel OpenAI na svých serverech ke každé z nich alokovat až několik GB v RAM, respektive na permanentním úložišti. To je samozřejmě vzhledem k počtu uživatelů naprosté sci-fi.
Nemohu zaručit, že budou ukázky fungovat
A protože je každá odpověď AI do jisté míry dílem náhody, jak zrovna dopadl průchod ohromnou neuronovou sítí GPT-4, dokonce vám nemohu ani garantovat to, že když moje dnešní ukázky zopakujete ve svém vlastním prohlížeči, zachová se robot na první dobrou úplně stejně. Ne! Může klidně naprogramovat nefunkční nesmysl, který neodkáže opravit.
A ty chyby budou časté, přes veškerou snahu je to totiž opravdu stále jen betaverze a výsledky je třeba pečlivě kontrolovat.
Na stranu druhou, kdyby mi někdo před pouhým rokem tvrdil, čím se budu bavit v létě 2023, asi se jen pousměju a poklepu na čele. V tomto světle se už teď těším, co úžasného budou umět ChatGPT, Bard, nový Bing a další zase za dalších dvanáct měsíců.
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ě