Díky tomu může kdokoli vytvořit hru, webovou aplikaci nebo rozšíření, aniž by ovládal jakýkoli programovací jazyk. Codex doteď fungoval pouze na základě zadávání příkazů v kódu. To mu sice umožňovalo vykonávat řadu užitečných programovacích úkonů, ale nebylo to nic, s čím by člověk, který není kodér, dokázal snadno komunikovat.
To by se teď mělo změnit spolu s novým programovacím rozhraním Codexu, které dokáže interpretovat běžné požadavky typu "zařiď, aby se míč odrážel od stran obrazovky" nebo "stáhni tato data pomocí veřejného API a seřaď je podle data” a převést je do funkčního kódu v řadě programovacích jazyků.
Stačí vědět, co chcete
Spoluzakladatelé OpenAI Greg Brockman (technický ředitel) a Wojciech Zaremba (vedoucí Codexu) postavili v nové verzi API od základu jednoduchou hru a následně odborné veřejnosti předvedli, co se děje takzvaně “za oponou” neboli “v kódu”.
"Programování je o tom mít vizi a rozdělit ji na kousky, a pak pro tyto kousky vytvořit kód," vysvětlil Brockman. Hlavním cílem Codexu je pak umožnit programátorům, aby trávili více času spíše s první částí než s tou druhou.
Copy/paste
Obrovské množství kódu je koneckonců jen duplikováním nebo přímým kopírováním toho, co už před vámi udělali jiní - může to být samozřejmě kreativní, ale nikdo neuplatňuje svou představivost při provádění základních věcí, jako je třeba nasazení webového serveru pro otestování části kódu.
Brockman to při zmiňované předváděcí akci udělal právě pomocí napsání jednoduché věty v API Codexu. Zadání znělo: “Vytvoř webovou stránku, která…”. O vteřinu později se na obrazovce objevil tucet řádků v JavaScriptu, který přesně tohle dělal naprosto standardním způsobem.
Cestou k jednoduchosti
“Tohle je podle mě na programování úplně nejhorší," řekl Brockman. “I když jsem nějaký kód k jednoduchému příkazu napsal už nesčetněkrát, pořád ho úplně nepamatuju a ani nemusím. Místo toho můžu tyhle věci dělat mnohem jednodušeji, s menším počtem interakcí.”
Webový server, ovládání klávesnicí nebo animace a manipulaci s objekty do svého kódu někdo zahrne třeba padesátkrát nebo stokrát. A protože je Codex “vyškolen” v podstatě na veřejně přístupných kódech na GitHubu a dalších repozitářích, zná všechny standardní postupy.
Chybí vám funkce? Napište si ji
Do Codexu je zároveň integrováno API GPT-3, díky kterému pochopí, že když řeknete "zmenši to a ořízni" a pak "nech horizontální polohu ovládat šipkami doleva a doprava”, mluvíte pořád o “té stejné věci”.
Když pak Brockman napsal slovní příkaz, ve kterém požadoval, aby aplikace "přiměla kámen spadnout z nebe", systém se neptal, co je to "nebe", přestože nebylo nějak definováno. Nejenže nechal balvan spadnout z horní části obrazovky, ale rychlost pádu se zvětšovala jako u normálního objektu - nejlepší odhad API, co "spadnout" a "nebe" znamenají, totiž vyplynul ze znalosti použití těchto výrazů v různých kontextech.
Různá rozšíření by si pak člověk mohl “napsat” například pro Microsoft Word, pro který už v Codexu “zásuvný modul” Zaremba zkoušel navrhnout. "Myslíme si, že můžeme nabídnout nový způsob interakce se stávajícím softwarem," řekl Zaremba, který před lety vytvořil omezenou verzi tohoto řešení pro svou doktorskou práci. Jednoduchých příkazů by se pak dalo využít při editování velkého množství textu.
Stačilo by pak třeba napsat: “Udělej všechny texty stejnou velikostí a písmem a dvojité mezery udělej jednoduché" a program by to udělal. Pak byste mu zadali příkaz "udělej všechny nadpisy 24 bodů a tučné”, písmo by se zvětšilo, a tak dále.
Překladač programovacích jazyků
Kromě výše zmíněných funkcí Codex také dokáže převádět kód z jednoho jazyka do druhého - podobně jako to dokáží klasické jazykové překladače.
Brockman řekl, že stejně jako v případě GPT-3 se s novou verzí Codexu pohybují teprve na povrchu toho, co všechno je možné, a věří, že je zapojení vývojáři překvapí tím, s čím vším přijdou.
Beta verze Codexu bude stejně jako u GPT-3 neveřejná, ale vývojáři se mohou přihlásit a popsat autorům svůj projekt. Tím se dostanou na “waitlist” a tým Codex následně posoudí, zda je do programu zařadí.
Poté, co projde beta verze tohoto programovatelného rozhraní testováním, měla by být dále zdokonalována a následně nabídnuta k dispozici veřejnosti ve své placené verzi. Termín zveřejnění i cena však zatím zůstávají ve hvězdách.