Nahrávky schůzek jsou málo využívaným zdrojem znalostí. Obtížně se v nich vyhledává, jejich opětovné procházení zabírá čas a jsou roztříštěné na týmových discích, takže cenné poznatky často zůstávají bez povšimnutí.
Během jednodenního hackathonu vytvořil tříčlenný tým platformu Callombia. Jde o interní platformu, která automaticky přepisuje, označuje, shrnuje a stříhá nahrané hovory do klipů a ukládá je do prohledávatelného úložiště ve stylu YouTube, dostupného všem pobočkám po celém světě.
Celé řešení vytvořené pomocí Codexu využívá sémantické vyhledávání založené na embeddings od OpenAI a kosinové podobnosti. Dokáže tak najít relevantní okamžiky, i když dotaz neobsahuje přesná klíčová slova. Součástí je také chatbot využívající RAG a systém oznámení.
To, co by dříve trvalo týdny, vzniklo za sedm hodin. Ukázalo se tak, že vývoj od základu postavený na AI a využívající programovací agenty, jako je Codex, může dramaticky zkrátit vývojový cyklus produktu a přinést interním hackathonům skutečnou obchodní hodnotu.
Pokud jste jako já, jen málokdy máte čas (nebo dostatečně dlouhou pozornost) znovu poslouchat nahrávky schůzek. Často totiž musíte prohledávat neuspořádané týmové disky, přeskakovat nepříliš povedenou nezávaznou konverzaci a snažit se opravdu poslouchat, zatímco vyřizujete e-maily a zprávy.
Možná to ale tak být nemusí? Co kdybychom vytvořili něco, co práci s nahrávkami schůzek úplně změní? Právě tato myšlenka stála za naším nedávným hackathonovým projektem.
Během jediného dne řešilo 50 členů našich týmů vývoje, realizace a provozu řadu problémů z různých částí firmy – od škálování náborových procesů přes zefektivnění tvorby specifikací rozsahu prací, sledování stavu projektů a živé generování prototypů až po získávání poznatků z nahrávek schůzek.
Na tomto hackathonu založeném na Codexu jsme vytvořili Callombii. Callombia je firemní YouTube, který z každého hovoru dělá živý a prohledávatelný zdroj informací. Každý hovor se automaticky přepíše, označí a shrne, poté se rozdělí na tematické klipy a přidá do úložiště uspořádaného podle kanálů (klientů) a témat (oblastí specializace na AI). Kdokoli z týmu v Londýně, Edinburghu, Singapuru či Austrálii tak může okamžitě přejít k okamžikům z hovorů, které ho zajímají.
Známé uživatelské rozhraní odpovídající naší značce umožňuje intuitivně objevovat obsah, zatímco sémantické vyhledávání a samozřejmě i AI chatbot využívající RAG pomáhají lidem najít přesně to, co hledají. Díky systému oznámení mohou kolegové také odebírat vybraná témata a dostávat upozornění na nové klipy, které jsou pro ně relevantní.
Na Callombii ale není nejzajímavější samotný produkt ani výhra 2 000 liber za vítězství v hackathonu (jen se trochu chlubíme), nýbrž to, že jsme vše dokázali vytvořit za pouhých sedm hodin ve dvou vývojářích a s jedním vedoucím realizace. Před rokem by to nebylo možné. Zdokonalení programovacích agentů výrazně zrychlilo celý proces vývoje produktů a tento hackathon se stal skvělým testovacím prostředím pro poznávání možností i současných limitů této technologie. Jak jsme tedy Codex využili?
Místo sepisování hromady požadavků jsme nejprve v podobě promptu sdíleli společný pohled na řešený problém a naši vizi Callombie. Záměrně jsme zůstali obecní, aby mohl model převzít práci a uvažovat kreativně:
Po deseti minutách společného dolaďování jsme zapnuli režim plánování, abychom upřesnili požadavky a připravili technickou část vývoje. Režim plánování připomíná odpovídání na otázky otravného kamaráda, který užitečně promyslel každý možný scénář. Jakmile jsme se shodli na počtu videí, sémantickém či klíčovém vyhledávání a použité architektuře, vytvořil soubor Markdown, který se stal základem další práce na projektu.


Jakmile jsme měli plán, dalším krokem bylo vytvořit klíčové součásti, díky nimž měla Callombia skutečně fungovat. To znamenalo vytvořit proces, který z nahraných hovorů udělá prohledávatelné zdroje:
načtení videí a přepisů,
jejich rozdělení na smysluplné úseky,
doplnění shrnutí a značek,
jejich zpřístupnění prostřednictvím API pro frontend.
Ed se zaměřil hlavně na převod nezpracovaných nahrávek a přepisů do použitelného formátu, zatímco Nico pracoval především na vyhledávací vrstvě, která měla jednotlivé okamžiky zpřístupnit. S Codexem oba dokázali vytvořit datové modely, extrakční skripty a potřebné propojení backendu mnohem rychleji než ručně. Výsledkem bylo mnohem víc než jen přepis připojený k videu. Získali jsme konkrétní okamžiky: část o Tescu, informace o aktualizaci strategie, debatu o náboru nebo přesně těch 90 sekund hovoru, které chce někdo skutečně zhlédnout.
Právě u této vyhledávací vrstvy to začalo být obzvlášť zajímavé. Chtěli jsme, aby uživatel mohl zadat například „finanční výsledky“, „plán rozvoje Tesca“ nebo „hodnocení konverzací“ a dostal se k nejrelevantnějším klipům, i když tato přesná slova nikdy nezazněla. Proto jsme vytvořili úseky s časovými značkami, shrnutími, textem přepisu a metadaty. S jasnou představou o architektuře a výraznou pomocí Codexu jsme spojili téma, shrnutí a přepis do jediného vstupu a pomocí modelu text-embedding-3-small od OpenAI vygenerovali embeddings pro každý úsek. Tyto embeddings jsme uložili do databáze a pomocí kosinové podobnosti porovnávali uživatelský dotaz s každým úsekem. Získali jsme tak sémantickou vyhledávací vrstvu namísto prostého hledání klíčových slov.
Řešení dosahovalo mimořádné přesnosti a během hackathonové ukázky dodávalo produktu onen „magický“ dojem. Zároveň jsme věděli, že při dalším růstu počtu videí nebude tento přístup škálovat donekonečna, protože porovnávání každého dotazu se všemi úseky by se časem příliš prodražilo. Přirozeným dalším krokem by bylo zavedení efektivnějších strategií vyhledávání, například Hierarchical Navigable Small World, které by snížily počet porovnání a při růstu korpusu udržely nízkou latenci. Jakmile tato funkce začala fungovat, Callombia působila méně jako knihovna médií a více jako znalostní systém.
Jako na každém dobrém hackathonu bylo nutné i tuto část postupně vyladit: první hranice úseků byly příliš hrubé, některé časové značky potřebovaly zpřesnit, některé štítky byly příliš obecné a soubory s přepisy a nahrávkami ne vždy přesně odpovídaly. Právě zde se ale ukázala skutečná hodnota. Codex nám umožnil systém rychle zdokonalovat, místo abychom uvízli u nastavování a předělávání. Nakonec jsme měli backend schopný zajišťovat klipy, úryvky i skutečně užitečné sémantické vyhledávání. V tu chvíli začala Callombia působit jako skutečný produkt, ne jen jako hackathonová ukázka.
Zatímco Ed a Nico vytvářeli vrstvu pro příjem dat a inteligentní zpracování, já jsem pracoval na frontendu. S využitím naší full-stack šablony jsem dokázal rychle spustit první verzi webu, aniž bych napsal jediný řádek kódu. Požádal jsem ho, aby web otevřel lokálně v mém prohlížeči, a pak jsem pomocí jednoduchých odrážek poskytoval zpětnou vazbu a postupně upravoval návrh podle svých představ.
Asi po hodině společného dolaďování jsem měl něco, s čím jsem byl docela spokojený – a to bez jakýchkoli zkušeností s uživatelským rozhraním či designem. Výsledný produkt rozhodně není dokonalý, ale jde o velmi dobrou první verzi, která lidem umožňuje pochopit, co produkt nabízí.


Abychom na konci dne měli co předvést, rozdělili jsme si práci. Po několika hodinách částečně samostatné práce jsme samozřejmě všichni měli vlastní lokální větve se spoustou konfliktů.
Místo abychom věnovali čas, který jsme neměli, pečlivému procházení a řešení konfliktů, rozhodli jsme se nechat Codex volně pracovat s úložišti a konflikty samostatně opravit. Pro vývoj podnikového softwaru bychom tento postup zatím nedoporučili, ale v prostředí s malým rizikem byla jeho účinnost neuvěřitelná a ušetřila nám mnoho hodin.
Poslední částí hackathonu bylo nahrát ukázku Callombie pro porotu. Instinktivně jsme chtěli nahrávání spustit v Loomu, ale napadlo nás, že by to mohla být skutečná zkouška Codexu a úkol trochu přesahující jeho současné schopnosti. Takže… Napsali jsme prompt, poskytli mu odkaz na web Callombie, připojili nahrávku mého hlasu z vývojářské platformy OpenAI a požádali ho, aby se postaral o zbytek.
První pokus byl velmi působivý – napsal scénář ukázky, nahrál obrazovku, přidal můj komentář a zadání v podstatě splnil. Jediné, s čím jsme nebyli hned spokojeni, byla synchronizace komentáře s nahrávkou ukázky, a tak jsme mu zadali: “MANDATORY: align the voiceover exactly with what is being shown in the demo. There was misalignment (e.g. on the chat page). Triple check alignment of voiceover and the screen-recorded demo at the end. Match it up through whichever means possible.”
Codex v reakci na tento požadavek rozdělil komentář i nahrávku na kratší úseky a úkol zvládl prakticky bezchybně, právě včas na půl šestou a oslavu s pivem a pizzou.
Víme, že Callombia řeší problém, s nímž se potýká většina firem. V rychle rostoucí firmě je obtížné účastnit se každého hovoru, ale střípky užitečných poznatků, které během nich zaznívají, mají nevyčíslitelnou hodnotu. Teď už ji jen musíme nasadit do produkce.
Důležitější ponaučení se však týká přirozeného začlenění AI do práce a přínosu spojení technických i produktových znalostí při řešení společných problémů. Díky vystoupení z běžného pracovního rytmu, spolupráci napříč týmy a lehce soutěživému prostředí jsme vytvořili řadu řešení, která by po několika úpravách mohla zamířit do produkce. Když to budeme dělat pravidelně, mohou být naše interní procesy stejně efektivní jako řešení, která vytváříme pro zákazníky.