Codex od OpenAI v praxi: AI, která opravdu šahá do kódu

Často určitě slyšíte o AI agentech, ale většinou to je jen buzzword a věc daleké budoucnosti. Tak to ale v praxi vůbec není. V tomto článku se podíváme na nový nástroj, který pro vás zvládne pracovat už dnes bez potřeby nastavovat cokoliv a většinou v jediném promptu. Modul Codex od OpenAI (Codex) umí nejen analyzovat a komentovat kód, ale také ho přímo upravovat a provádět v něm změny. Ačkoliv nejde o kouzelnou krabičku řešící vše za vás, jeho schopnosti při reálné práci s repositářem rozhodně stojí za pozornost.

Open AI

Co Codex vlastně umí?

Model Codex je rozšířením ChatGPT, dostupném pro uživatele s Plus verzí. Na rozdíl od klasického rozhraní ChatGPT ale pracuje jako samostatný nástroj zaměřený na kód. Zvládá: 

  • automaticky propojit vaši session s GitHubem, 
  • nastavit prostředí pro spouštění kódu, 
  • paralelně pracovat na více úkolech, 
  • provádět i navrhnout změny v kódu a přímo připravovat commity 

Z hlediska inteligence Codex není nutně „chytřejší“ než GPT-4o, ale z pohledu integrace do programátorského workflow jde o silný posun vpřed. 

Jak Codex funguje: praktická ukázka 

Po spuštění Codexu přes seznam Custom GPTs nastavíte přístup ke GitHubu a vyberete repositář, ve kterém chcete pracovat. Nebojte se, bez vašeho souhlasu s ním Codex nic neudělá, a i pokud ho požádáte o změny, tak vás nechá je schválit.  

Na testování využijeme jeden veřejně dostupný repozitář od platformy Streamlit zaměřený na jednoduchou analýzu dat: streamlit/GDP-Dashboard 

Na funkční verzi aplikace se můžete podívat zde: GDP dashboard · Streamlit 

Codex si kód automaticky natáhne, znalyzuje ho a vy pak můžete jen zadávat konkrétní úkoly. 

My jsme nejdříve zkusili: 

  • „Vysvětli strukturu kódu nováčkovi.“ 
  • „Najdi a oprav chybu ve vybrané části.“ 
  • „Navrhni úpravu komentářů a testů.“ 

 

Po zadání úkolů Codex: 

  • přímo analyzoval strukturu repozitáře, 
  • rozpoznal klíčové soubory, 
  • navrhl změny v kódu včetně dokumentace, 
  • vytvořil pull request a zahrnul komentáře ke změnám. 

Instrukce byly stručné, pár vět na každý úkol. Na rozdíl od klasického ChatGPT si Codex umí načíst celý repositář a má tak okamžitě kontext. Například jsme zadali tento úkol: 

„Vysvětli databázi kódu nováčkovi. Jaká je její obecná struktura, co je důležité vědět a jaké jsou tipy na další věci, které je třeba se naučit?“ 

Zde se můžete na celý chat podívat:
https://chatgpt.com/s/cd_68409fdc3ca4819192f1012aab313410 

Výsledek byl překvapivě dobrý. Codex výstižně popsal strukturu, upozornil na klíčové soubory a dokonce připravil vizuální přehled obsahu repozitáře. Přepnul sice do angličtiny, ale to není nic, co by přidání instrukcí o českém jazyce nevyřešilo.

Vyzkoušeli jsme i další doporučené dotazy od Open AI: 

  • „Vyber si část základny kódu, která se ti zdá důležitá, a najdi a oprav chybu.“ 

https://chatgpt.com/s/cd_6840a13fdaa48191b2fa25965d869cd5 

  • „Projdi databázi kódu, najdi problémy a navrhni jednu úlohu na opravu překlepu, jednu úlohu na opravu chyby, jednu úlohu na opravu komentáře ke kódu nebo nesrovnalosti v dokumentaci a jednu úlohu na vylepšení testu.“ 

https://chatgpt.com/s/cd_6840a16aba088191943b130adca82054 

Codex v těchto případech efektivně identifikoval slabá místa a vygeneroval návrhy na úpravy. Tyto výstupy by sice zvládl i klasický ChatGPT, ale Codex má výhodu v automatickém načtení kódu a hlubším kontextu díky integraci s GitHubem. Podívejme se teď na to, co opravdu dokáže! 

Zkouška ohněm: úpravy v kódu 

Abychom opravdu otestovali použitelnost Codexu, zadali jsme konkrétní úpravu: přidat statistický boxplot s HDP pro každou zemi. 

„Můžeš na stránku přidat boxplot (tím myslím statistický boxplot, ne sloupcový graf)? Linechart mi nepřijde moc technický. Chci jeden box pro každou zemi. Data boxů jsou podle GDP každé země.“ 

Codex: 

  • správně pochopil zadání, 
  • navrhl implementaci pomocí vybrané knihovny (původně bez upřesnění), 
  • provedl změny v kódu i v requirements.txt, 
  • připravil pull request včetně komentářů. 

Výsledek není ideální, protože je použita neobvyklá knihovna a graf je na zvláštním místě. Codex ale stejně jako každý Chatbot nemá problém přijmout další instrukce: 

„Pokud je to možné, použij knihovnu matplotlib. Chci, aby boxplot byl hned za linechartem.“ 

Zde pak výstup: 

Codex prompt pochopil a graf upravil podle požadavků. Překvapivě také sám aktualizoval requirements soubor, aby zajistil instalaci potřebné Python knihovny, což nebylo výslovně uvedeno v promptu. Pull request vytvořil automaticky včetně odkazu na konverzaci, komentářů a návrhu ke schválení. 

Ukázka změn na GitHubu: 

 

Od nás pak stačí jen zkontrolovat, odsouhlasit a máme hotovo! Náš boxplot je po dvou promptech přidaný, plně funkční a interaktivní jako další elementy stránky: 

Shrnutí a doporučení 

Codex od OpenAI přináší užitečný posun pro vývojáře, analytiky a datové týmy, které pracují s kódem. Neřeší vše za vás, ale šetří čas při: 

  • rozboru a dokumentaci kódu, 
  • návrzích změn, 
  • testování úprav, 
  • správě repositářů.

Skvěle se hodí pro interní nástroje, datové aplikace, rapid prototyping i údržbu existujících projektů. Největší výhodou je, že se plně integruje do prostředí GitHubu – výsledky tak máte rovnou v gitu včetně odůvodnění a komentářů. 

Codex si nás zatím získal. Pokud ho sami testujete, budeme rádi za vaši zpětnou vazbu a doufáme že vás potěší stejně jako nás! 

Doporučené odkazy a zdroje 

Autor: Ondřej Bronec

Přihlaste se k odběru našeho Newsletteru!

Získejte pravidelný příliv zajímavých informací ze světa datových technologií přímo do své schránky.

Každý měsíc:

  • Aktuální novinky o inovacích v oblasti Business Intelligence a datových technologií.

  • Exkluzivní pozvánky na odborné akce, semináře a workshopy.

  • Případové studie a praktické příklady z reálných projektů.

  • Inspirace a tipy pro vaši datovou strategii.

Mohlo by vás zajímat

Číst další

Chcete nás kontaktovat?

Drop files here or
Max. file size: 100 MB.
    This site is registered on wpml.org as a development site. Switch to a production site key to remove this banner.