Umělá inteligence GPT-4 získala schopnost spouštět programový kód. Z ChatGPT Plus se tak stal univerzální výpočetní stroj. Pustím ho na svá meteorologická data a výpis z banky

Umělá inteligence GPT-4 získala schopnost spouštět programový kód. Z ChatGPT Plus se tak stal univerzální výpočetní stroj. Pustím ho na svá meteorologická data a výpis z banky

Aktivace funkce Code interpreter Beta

Aktivace funkce Code interpreter Beta

Výběr z několika verzí AI v placeném ChatGPT Plus

Výběr z několika verzí AI v placeném ChatGPT Plus

ChatGPT naprogramoval a zobrazil barevný přechod v Pythonu

ChatGPT naprogramoval a zobrazil barevný přechod v Pythonu

Stačí rozbalit roletku a můžeme si projít kód, který ChatGPT vytvořil a poté spustil

Stačí rozbalit roletku a můžeme si projít kód, který ChatGPT vytvořil a poté spustil

Další operace už probíhají nad dočasně vytvořeným obrázkem a nemusí se vše opakovat

Další operace už probíhají nad dočasně vytvořeným obrázkem a nemusí se vše opakovat

ChatGPT může pracovat i s rozměrnými daty (desítky MB) ve formě souboru

ChatGPT může pracovat i s rozměrnými daty (desítky MB) ve formě souboru

Dialog s robotem a vnořený dialog robota se sebou samotným, na jehož konci je graf vytvořený pomocí knihovny  Matplotlib

Dialog s robotem a vnořený dialog robota se sebou samotným, na jehož konci je graf vytvořený pomocí knihovny Matplotlib

Označené body, kde teplota přesáhla 35 stupňů Celsia

Označené body, kde teplota přesáhla 35 stupňů Celsia

V Pythonu zpracovaná data tentokrát ve formě tabulky

V Pythonu zpracovaná data tentokrát ve formě tabulky

ChatGPT vytvořil soubor s hodnotami a nabídl odkaz k jeho stažení

ChatGPT vytvořil soubor s hodnotami a nabídl odkaz k jeho stažení

Hotový CSV soubor s extrémními hodnotami teplot v anglickém formátu

Hotový CSV soubor s extrémními hodnotami teplot v anglickém formátu

Na výpisu v PDF si robot vylámal zuby, banka ale naštěstí nabízí i výpis v XML (níže)

Na výpisu v PDF si robot vylámal zuby, banka ale naštěstí nabízí i výpis v XML (níže)

XML objekt dílčí transakce

XML objekt dílčí transakce

ChatGPT Code interpreter korektně načet z XML pole transakcí, takže jsme na dobré cestě 

ChatGPT Code interpreter korektně načet z XML pole transakcí, takže jsme na dobré cestě 

Konverzací v přirozené češtině jsme si vyrobili dekodér výpisu bankovních transakcí

Konverzací v přirozené češtině jsme si vyrobili dekodér výpisu bankovních transakcí

Právě jsem chatbota proměnil v aplikaci, která umí analyzovat můj měsíční výpis z banky 

Právě jsem chatbota proměnil v aplikaci, která umí analyzovat můj měsíční výpis z banky 

Uf, to je ale ledových káv do ruky

Uf, to je ale ledových káv do ruky

Kubo, opravdu chceš každý měsíc utrácet takové peníze za ranní kávu?

Kubo, opravdu chceš každý měsíc utrácet takové peníze za ranní kávu?

Kolikrát jsem byl v Lidlu, aneb z bankovního výpisu lze vytáhnout opravdu vše

Kolikrát jsem byl v Lidlu, aneb z bankovního výpisu lze vytáhnout opravdu vše

Tabulka útrat v Lidlu

Tabulka útrat v Lidlu

Nad zpracovanými daty už může Code interpreter provádět i komplexnější výpočty

Nad zpracovanými daty už může Code interpreter provádět i komplexnější výpočty

Code interpreter nemá z bezpečnostních důvodů přístup k webu

Code interpreter nemá z bezpečnostních důvodů přístup k webu

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

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

Aktivace funkce Code interpreter Beta
Výběr z několika verzí AI v placeném ChatGPT Plus
ChatGPT naprogramoval a zobrazil barevný přechod v Pythonu
Stačí rozbalit roletku a můžeme si projít kód, který ChatGPT vytvořil a poté spustil
24
Fotogalerie

ChatGPT Code interpreter je magie! AI mi prošmejdila výpis z banky a data z domácí meteostanice

  • Umělá inteligence GPT-4 získala schopnost spouštět programový kód
  • Z ChatGPT Plus se tak stal univerzální výpočetní stroj
  • Pustím ho na svá meteorologická data a výpis z banky

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.

d2939cca-4e7f-4310-b920-99debed9b5fc
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.

69f75b20-b45b-43da-9443-77fe2c151e36
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:

a3207fe5-f0c2-4399-a157-778c1e768c8c
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:

8f6e5996-37e5-442a-84b1-180d3a9e972b
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.

ebe1af00-7662-4890-909f-c0441fb5a86c
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.

71195364-d8ff-4593-9ff7-64e13a56f3b1
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? 

44630bbd-b80a-4a2f-b9f9-17e501f6117d
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. 

e44448ff-45d9-446d-b978-1d06788a8351
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:

80a0c6f9-4b36-4e6e-8b54-7f5ead713c55
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:

7404f0f3-1d2d-4d85-865e-7c6d3f77a125
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:

cb6978a1-a40b-47e5-8c60-094b904c70de
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.

89f0da27-bc41-4c03-b107-aef6245f0e9b
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:

dcfffdd5-e705-4b45-a462-9611e8579062
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?

d660fa16-68cb-4b06-9ef2-499214b1f626
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:

19a35fad-6c0d-475f-ba2b-369d2b6eeb6a
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í:

af455c06-01e6-40af-ba58-78137582d7bc
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:

e97861a1-3c48-4595-9977-a9f6026cbbd2
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ě:

c23b1ab1-0c7c-42a4-8e84-e274ac45ab19
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.“

80ccdc7a-7333-4526-9dfe-ea9f2eac69f9
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:

e22eac15-8d93-4e3b-8cff-0ddb78980225
Tabulka útrat v Lidlu

 A do třetice ještě porovnání s předchozím Kofi Kofi:

eca1de8a-3357-4334-88a4-ff306b166e9c
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ě.

04f6986d-cd2a-4635-a0e8-25a6395363e2
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.

6dc49596-16b9-4800-beaf-5eb5b3e7c47a
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ů.

Určitě si přečtěte

Články odjinud