Hlavná navigácia

Tvorba inteligentného nástroja na vyhľadávanie v stretnutiach pomocou Codexu

Pozrite si, ako Codex pomohol rýchlo vytvoriť praktické interné riešenie, ktoré mení záznamy firemných stretnutí na prehľadávateľné poznatky.

Zhrnutie pre vedenie

  • Záznamy zo stretnutí sú nedostatočne využívaným zdrojom poznatkov. Ťažko sa v nich vyhľadáva, ich opätovné prezeranie zaberá veľa času a sú roztrúsené na tímových diskoch, takže cenné poznatky často zostávajú nepovšimnuté.

  • Počas jednodňového hackathonu vytvoril trojčlenný tím Callombiu. Ide o internú platformu, ktorá automaticky prepisuje, označuje, sumarizuje a strihá záznamy hovorov do prehľadávateľného repozitára v štýle YouTube, dostupného vo všetkých našich pobočkách po svete.

  • Riešenie, celé vytvorené pomocou Codexu, využíva sémantické vyhľadávanie založené na embeddingoch OpenAI a kosínusovej podobnosti. Dokáže tak nájsť relevantné momenty aj bez presnej zhody kľúčových slov a dopĺňa ho chatbot RAG a systém upozornení.

  • To, čo by kedysi trvalo celé týždne, vzniklo za sedem hodín. Ukázalo sa tak, že vývoj od začiatku postavený na AI a programovacie agenty ako Codex dokážu výrazne skrátiť životný cyklus vývoja produktu a premeniť interné hackathony na skutočnú obchodnú hodnotu.

Ak ste ako ja, len málokedy máte čas (alebo dostatočne dlhú pozornosť) vypočuť si záznamy zo stretnutí. Často je to preto, že musíte prehľadávať neusporiadané tímové disky, preskakovať nezáživné zdvorilostné reči a pokúšať sa naozaj počúvať, zatiaľ čo odosielate e-maily a správy.

Možno to však nemusí byť takéto? Čo keby sme vytvorili niečo, čo úplne zmení prácu so záznamami zo stretnutí? Práve táto myšlienka stála za naším nedávnym hackathonovým projektom.

Za jediný deň sa 50 ľudí z našich tímov vývoja, realizácie a prevádzky pustilo do riešenia problémov z celej firmy: od škálovania náborových operácií, zjednodušenia tvorby SoW a hodnotenia stavu projektov cez živé generovanie prototypov až po získavanie poznatkov zo záznamov stretnutí.

Na tomto hackathone postavenom na Codexe sme vytvorili Callombiu. Callombia je YouTube našej firmy, ktorý každý hovor mení na živý a prehľadávateľný zdroj poznatkov. Každý hovor sa automaticky prepíše, označí a zhrnie, potom sa rozdelí na tematické klipy a pridá do repozitára usporiadaného podľa kanálov (klientov) a tém (oblastí špecializácie na AI). Každý člen tímu v Londýne, Edinburghu, Singapure či Austrálii tak môže okamžite prejsť k momentom z hovorov, ktoré ho zaujímajú.

Známe používateľské rozhranie zladené s našou značkou umožňuje intuitívne objavovanie obsahu, zatiaľ čo sémantické vyhľadávanie (a, samozrejme, AI chatbot RAG) pomáha ľuďom nájsť presne to, čo hľadajú. Vďaka systému upozornení sa kolegovia môžu prihlásiť na odber vybraných tém a dostanú správu vždy, keď pribudnú nové klipy, ktoré sú pre nich relevantné.

Na Callombii však nie je najzaujímavejší samotný produkt ani výhra 2 000 £ za víťazstvo v hackathone (musíme sa pochváliť), ale to, že sme toto všetko dokázali vytvoriť za sedem hodín s dvoma vývojármi a jedným vedúcim realizácie. Pred rokom by to nebolo možné. Zdokonalenie programovacích agentov výrazne urýchlilo celý proces vývoja produktu a tento hackathon bol skvelým testovacím prostredím na preskúmanie hraníc ich nerovnomerných schopností. Ako sme teda využili Codex?

Plánovanie riešenia

Namiesto spísania množstva požiadaviek sme sa najprv podelili o spoločný pohľad na problémovú oblasť a víziu Callombie, ktorý sme použili ako príkaz. Zámerne sme zostali všeobecní, aby sme prácu prenechali modelu a dali mu priestor na tvorivé uvažovanie:

Po desiatich minútach výmeny názorov sme zapli režim plánovania, aby sme spresnili požiadavky a pripravili technickú časť riešenia. Režim plánovania pripomína odpovedanie na otázky otravného kamaráta, ktorý si (našťastie) premyslel každý možný scenár. Keď sme sa dohodli na veciach, ako je počet videí, sémantické vyhľadávanie alebo vyhľadávanie podľa kľúčových slov a použitá architektúra, vytvoril súbor Markdown, ktorý sa stal základom ďalšej práce na projekte.

Snímka obrazovky znázorňujúca plánovanie nášho riešenia.

Tvorba základných komponentov

Keď sme mali plán, ďalším krokom bolo vytvoriť základné komponenty, vďaka ktorým mala Callombia skutočne fungovať. Znamenalo to vytvoriť proces, ktorý zo záznamov hovorov urobí prehľadávateľné zdroje:

  1. načítanie videí a prepisov,

  2. ich rozdelenie na zmysluplné momenty,

  3. obohatenie o zhrnutia a značky,

  4. ich sprístupnenie prostredníctvom API, ktoré mohol využívať frontend.

Ed sa sústredil najmä na prevod pôvodných nahrávok a prepisov do použiteľného formátu, zatiaľ čo Nico pracoval skôr na vyhľadávacej vrstve, ktorá mala tieto momenty sprístupniť. S Codexom dokázali obaja vytvoriť dátové modely, extrakčné skripty a potrebnú backendovú infraštruktúru oveľa rýchlejšie, než by sme to zvládli manuálne. Výsledkom bolo oveľa viac než len prepis pripojený k videu. Získali sme konkrétne momenty: časť o Tescu, aktualizáciu stratégie, diskusiu o nábore či presných 90 sekúnd hovoru, ktoré si niekto naozaj chce pozrieť.

Práve pri vyhľadávacej vrstve to začalo byť mimoriadne zaujímavé. Chceli sme, aby používateľ mohol zadať napríklad “financial performance,” “Tesco roadmap,” alebo “conversation evals” a systém ho nasmeroval k najrelevantnejším klipom, aj keby tieto presné slová nikdy nezazneli. Na tento účel sme vytvorili úseky s časovými značkami, zhrnutiami, textom prepisu a metadátami. S jasnou predstavou o architektúre a výraznou pomocou Codexu sme spojili tému, zhrnutie a prepis do jedného vstupu a pomocou modelu text-embedding-3-small od OpenAI vytvorili embeddingy pre každý úsek. Tieto embeddingy sme uložili do databázy a pomocou kosínusovej podobnosti porovnávali dopyt používateľa so všetkými úsekmi. Namiesto jednoduchého vyhľadávania podľa kľúčových slov tak vznikla sémantická vyhľadávacia vrstva.

Z hľadiska presnosti to fungovalo mimoriadne dobre a počas hackathonovej ukážky to produktu dodalo pocit „čara“. Zároveň sme vedeli, že pri neustálom pribúdaní videí nebude tento prístup škálovateľný donekonečna, pretože porovnávanie každého dopytu so všetkými úsekmi by sa časom príliš predražilo. Prirodzeným ďalším krokom by bolo zavedenie efektívnejších stratégií vyhľadávania, napríklad Hierarchical Navigable Small World, ktoré by obmedzili počet porovnaní a pri rozširovaní korpusu zachovali nízku latenciu. Keď táto funkcia začala fungovať, Callombia už pripomínala menej mediálnu knižnicu a viac znalostný systém.

Ako na každom dobrom hackathone, aj túto časť bolo potrebné postupne vylepšovať: prvé hranice úsekov boli príliš nepresné, niektoré časové značky bolo treba doladiť, niektoré značky boli príliš všeobecné a súbory prepisov a nahrávok sa nie vždy presne zhodovali. Práve tu sa však ukázala skutočná hodnota. Codex nám umožnil systém rýchlo zdokonaľovať namiesto toho, aby sme uviazli pri nastavovaní a prerábaní. Na konci sme mali backend schopný zabezpečiť klipy, úryvky a skutočne užitočné sémantické vyhľadávanie. V tom momente začala Callombia pôsobiť ako reálny produkt, nielen ako hackathonová ukážka.

Tvorba frontendu a používateľského rozhrania

Kým Ed a Nico vytvárali vrstvu na načítanie dát a inteligentnú vrstvu, ja som pracoval na frontende. Pomocou našej full-stack šablóny som dokázal rýchlo spustiť prvú verziu webu bez napísania jediného riadka kódu. Keď som ho požiadal, aby web otvoril lokálne v mojom prehliadači, poskytoval som mu jednoduchú spätnú väzbu v bodoch a postupne upravoval dizajn podľa svojich predstáv.

Asi po hodine takejto výmeny som mal výsledok, s ktorým som bol celkom spokojný — a to bez akýchkoľvek skúseností s používateľským rozhraním či dizajnom. Hoci výsledný produkt rozhodne nie je dokonalý, ide o pomerne dobrú prvú verziu, vďaka ktorej ľudia pochopia jeho podstatu.

Snímka obrazovky znázorňujúca tvorbu frontendu a používateľského rozhrania.

Prepojenie celého kódu

Aby sme mali na konci dňa niečo hotové, rozdelili sme si prácu. Po niekoľkých hodinách viac-menej samostatnej práce mal, samozrejme, každý z nás vlastnú lokálnu vetvu s množstvom konfliktov.

Namiesto dôsledného prechádzania a riešenia konfliktov, na ktoré sme nemali čas, sme nechali Codex voľne pracovať s repozitármi a konflikty vyriešiť samostatne. Hoci by sme takýto postup zatiaľ neodporúčali pri vývoji podnikového softvéru, bolo úžasné vidieť, ako dobre funguje v prostredí s nízkym rizikom, a ušetril nám mnoho hodín.

Celá ukážka

Poslednou časťou hackathonu bolo nahratie ukážky Callombie pre porotu. Inštinktívne sme chceli na nahrávanie otvoriť Loom, no napadlo nám, že by to mohla byť skutočná skúška pre Codex a úloha trochu presahujúca jeho súčasné schopnosti. Takže… Napísali sme príkaz, poskytli mu odkaz na web Callombie, pridali nahrávku môjho hlasu z vývojárskej platformy OpenAI a požiadali ho, aby sa postaral o zvyšok.

Prvý pokus bol veľmi pôsobivý — napísal scenár ukážky, nahral obrazovku, pridal môj komentár a takmer presne splnil zadanie. Jediné, s čím sme neboli okamžite spokojní, bola synchronizácia komentára so záznamom ukážky, preto sme 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 na túto požiadavku zareagoval rozdelením komentára a nahrávky na menšie časti a úlohu zvládol takmer bezchybne — práve včas pred 17:30 a oslavou pri pive a pizzi.

Smerom k práci založenej na AI

Vieme, že Callombia rieši problém, s ktorým sa stretáva väčšina firiem. Zúčastniť sa každého hovoru v rýchlo rastúcej firme je náročné, no cenné postrehy, ktoré na nich zaznejú, sú neoceniteľné. Teraz ju už len musíme nasadiť do produkčného prostredia.

Skrýva sa v tom však aj širšie ponaučenie o práci založenej na AI a o prínose spojenia technických a produktových znalostí pri riešení spoločných problémov. Tým, že sme vystúpili zo zabehnutého pracovného cyklu, spolupracovali naprieč tímami a navyše v mierne súťaživom prostredí, sme dospeli k viacerým riešeniam, ktoré by sa po niekoľkých úpravách dali nasadiť do produkcie. Ak to budeme robiť pravidelne, môžeme zabezpečiť, aby naše interné fungovanie bolo rovnako efektívne ako riešenia, ktoré vytvárame pre zákazníkov.

Autor

George Montagu, Ed Jeffery a Nicolas Franco Gonzalez