Nagrania spotkań to niedostatecznie wykorzystywane źródło wiedzy. Trudno je przeszukiwać, ponowne przeglądanie zajmuje dużo czasu, a materiały są rozproszone po dyskach zespołów, przez co cenne wnioski często pozostają niezauważone.
Podczas jednodniowego hackathonu trzyosobowy zespół stworzył Callombię. To wewnętrzna platforma, która automatycznie transkrybuje, oznacza tagami i podsumowuje nagrane rozmowy, a następnie dzieli je na klipy i umieszcza w przeszukiwalnym repozytorium przypominającym YouTube, dostępnym dla wszystkich biur na świecie.
Rozwiązanie, w całości stworzone za pomocą Codex, wykorzystuje wyszukiwanie semantyczne oparte na embeddingach OpenAI i podobieństwie cosinusowym, aby znajdować odpowiednie fragmenty nawet bez dokładnych słów kluczowych. Całość uzupełniają chatbot RAG i system powiadomień.
Rozwiązanie, którego opracowanie jeszcze niedawno zajęłoby tygodnie, powstało w siedem godzin. Pokazuje to, jak tworzenie oprogramowania od podstaw z wykorzystaniem AI i agentów programistycznych takich jak Codex może radykalnie skrócić cykl rozwoju produktu oraz przełożyć wewnętrzne hackathony na realną wartość biznesową.
Jeśli masz podobnie jak ja, rzadko wystarcza Ci czasu (albo uwagi), by wracać do nagrań spotkań. Często dlatego, że wymaga to przeszukiwania nieuporządkowanych dysków zespołów, przewijania niezbyt ciekawych pogawędek i prób rzeczywistego słuchania podczas odpisywania na e-maile i wiadomości.
Ale może wcale nie musi tak być? Może dałoby się stworzyć coś, co całkowicie zmieni sposób korzystania z nagrań spotkań? Ta myśl przyświecała naszemu ostatniemu projektowi hackathonowemu.
W ciągu jednego dnia 50 osób z naszych zespołów inżynieryjnych, wdrożeniowych i operacyjnych zmierzyło się z problemami zgłoszonymi w całej firmie: od skalowania procesów rekrutacyjnych i usprawnienia tworzenia SoW, przez ocenę kondycji projektów i generowanie prototypów na żywo, po wydobywanie wiedzy z nagrań spotkań.
Podczas tego hackathonu opartego na Codex stworzyliśmy Callombię. Callombia to firmowy odpowiednik YouTube, który zmienia każdą rozmowę w stale aktualne, przeszukiwalne źródło wiedzy. Każda rozmowa jest automatycznie transkrybowana, oznaczana tagami i podsumowywana, a następnie dzielona na klipy tematyczne i dodawana do repozytorium uporządkowanego według kanałów (klientów) i tematów (obszarów specjalizacji w AI). Dzięki temu każdy członek zespołu z Londynu, Edynburga, Singapuru czy Australii może natychmiast przejść do interesujących go fragmentów rozmów.
Znajomy interfejs użytkownika, zgodny z identyfikacją marki, ułatwia intuicyjne odkrywanie treści, a wyszukiwanie semantyczne (i oczywiście chatbot AI oparty na RAG) pomaga znaleźć dokładnie to, czego się szuka. System powiadomień pozwala też współpracownikom subskrybować wybrane tematy i otrzymywać informacje o nowych, istotnych dla nich klipach.
Najciekawszy w Callombii nie jest jednak sam produkt ani nagroda w wysokości 2 tys. funtów za wygranie hackathonu (tak, chwalimy się), lecz to, że całość stworzyliśmy w zaledwie siedem godzin w składzie dwóch inżynierów i lidera wdrożenia. Rok temu nie byłoby to możliwe. Postępy w rozwoju agentów programistycznych znacznie przyspieszyły cały proces tworzenia produktów, a ten hackathon okazał się doskonałym poligonem do zbadania ich nierównomiernie rozłożonych możliwości. Jak więc wykorzystaliśmy Codex?
Zamiast po prostu spisywać długą listę wymagań, zaczęliśmy od przedstawienia wspólnego spojrzenia na problem i wizję Callombii — w formie polecenia. Celowo pozostawiliśmy opis ogólny, aby model mógł wykonać swoją pracę i wykazać się kreatywnością:
Po 10 minutach wymiany uwag włączyliśmy tryb planowania, aby doprecyzować wymagania i wyznaczyć techniczny kierunek prac. Tryb planowania przypomina odpowiadanie na pytania irytującego znajomego, który — na szczęście — przemyślał każdy możliwy scenariusz. Gdy uzgodniliśmy między innymi liczbę filmów, wybór między wyszukiwaniem semantycznym a słowami kluczowymi oraz architekturę, Codex utworzył plik Markdown, który stał się podstawą dalszych prac nad projektem.


Gdy mieliśmy już plan, kolejnym krokiem było stworzenie kluczowych komponentów niezbędnych do działania Callombii. Oznaczało to zbudowanie procesu przekształcającego nagrania rozmów w przeszukiwalne zasoby:
Importowanie filmów i transkrypcji,
Dzielenie ich na istotne fragmenty,
Wzbogacanie ich o podsumowania i tagi,
Udostępnianie ich przez interfejsy API, z których mógł korzystać frontend.
Ed skupił się na przekształceniu surowych nagrań i danych z transkrypcji w użyteczny format, natomiast Nico pracował głównie nad warstwą wyszukiwania, dzięki której można było odnajdywać odpowiednie fragmenty. Dzięki Codex obaj znacznie szybciej niż ręcznie przygotowali modele danych, skrypty do ekstrakcji oraz niezbędną infrastrukturę backendową. W efekcie otrzymaliśmy znacznie więcej niż transkrypcję dołączoną do filmu. Otrzymaliśmy konkretne fragmenty: część dotyczącą Tesco, aktualizację strategii, dyskusję o rekrutacji czy dokładnie te 90 sekund rozmowy, które ktoś naprawdę chce obejrzeć.
Szczególnie interesująca okazała się warstwa wyszukiwania. Chcieliśmy, aby po wpisaniu czegoś w rodzaju “financial performance,” “Tesco roadmap” lub “conversation evals” użytkownik trafiał do najbardziej odpowiednich klipów, nawet jeśli podczas rozmowy nie padły dokładnie te słowa. W tym celu utworzyliśmy fragmenty zawierające znaczniki czasu, podsumowania, tekst transkrypcji i metadane. Mając jasno określoną architekturę i duże wsparcie ze strony Codex, połączyliśmy temat, podsumowanie i transkrypcję w jedno wejście, a następnie użyliśmy modelu text-embedding-3-small OpenAI do wygenerowania embeddingów dla każdego fragmentu. Embeddingi zapisaliśmy w bazie danych, a podobieństwo cosinusowe wykorzystaliśmy do porównywania zapytania użytkownika z każdym fragmentem. W ten sposób powstała warstwa wyszukiwania semantycznego zamiast prostego wyszukiwania według słów kluczowych.
Rozwiązanie zapewniało wyjątkowo trafne wyniki i podczas prezentacji hackathonowej nadawało produktowi wrażenie „magii”. Wiedzieliśmy jednak, że wraz ze wzrostem liczby filmów to podejście przestanie być skalowalne, ponieważ porównywanie każdego zapytania ze wszystkimi fragmentami stanie się z czasem zbyt kosztowne. Naturalnym kolejnym krokiem byłoby wdrożenie wydajniejszych strategii wyszukiwania, takich jak Hierarchical Navigable Small World, aby ograniczyć liczbę porównań i utrzymać krótkie czasy odpowiedzi wraz z rozrastaniem się zbioru. Gdy ta funkcja zaczęła działać, Callombia coraz mniej przypominała bibliotekę multimediów, a coraz bardziej system zarządzania wiedzą.
Jak na każdym dobrym hackathonie, również ten element wymagał kolejnych poprawek: początkowe granice fragmentów były zbyt niedokładne, niektóre znaczniki czasu wymagały dopracowania, część tagów była zbyt ogólna, a pliki transkrypcji i nagrań nie zawsze prawidłowo się pokrywały. Właśnie wtedy ujawniła się jednak prawdziwa wartość rozwiązania. Codex pozwolił nam szybko udoskonalać system, zamiast tracić czas na konfigurację i ponowne wykonywanie pracy. Ostatecznie mieliśmy backend obsługujący klipy, krótkie fragmenty i rzeczywiście użyteczne wyszukiwanie semantyczne. To właśnie wtedy Callombia zaczęła przypominać prawdziwy produkt, a nie tylko hackathonowe demo.
Podczas gdy Ed i Nico tworzyli warstwę importowania danych oraz warstwę inteligencji, ja zajmowałem się frontendem. Korzystając z naszego szablonu full-stack, szybko uruchomiłem pierwszą wersję witryny bez napisania ani jednego wiersza kodu. Po wydaniu polecenia otwarcia witryny lokalnie w przeglądarce przekazywałem proste uwagi w punktach, stopniowo dopracowując projekt do oczekiwanej postaci.
Po mniej więcej godzinie takiej wymiany miałem rozwiązanie, z którego byłem całkiem zadowolony — mimo braku jakiegokolwiek doświadczenia w projektowaniu interfejsów. Choć produkt końcowy z pewnością nie jest idealny, to całkiem udana pierwsza wersja, która pozwala użytkownikom zrozumieć jego działanie.


Aby mieć pewność, że pod koniec dnia powstanie działające rozwiązanie, podzieliliśmy się pracą. Oczywiście po kilku godzinach częściowo niezależnej pracy każde z nas miało własną lokalną gałąź z mnóstwem konfliktów.
Zamiast poświęcać czas, którego nie mieliśmy, na skrupulatne rozwiązywanie konfliktów, daliśmy Codex pełną swobodę działania w repozytoriach, aby sam je naprawił. Choć na razie nie zalecalibyśmy takiego podejścia przy tworzeniu oprogramowania klasy korporacyjnej, jego skuteczność w środowisku o niewielkim ryzyku zrobiła na nas ogromne wrażenie i pozwoliła zaoszczędzić wiele godzin.
Ostatnim etapem hackathonu było nagranie prezentacji Callombii dla jury. Odruchowo chcieliśmy uruchomić Loom i nagrać prezentację, ale uznaliśmy, że będzie to prawdziwy test dla Codex i zadanie nieco wykraczające poza jego obecne możliwości. A więc… Napisaliśmy polecenie, podaliśmy link do witryny Callombii, dołączyliśmy nagranie mojego głosu z platformy deweloperskiej OpenAI i poprosiliśmy, by zajął się resztą.
Pierwsza próba była imponująca — Codex napisał scenariusz prezentacji, nagrał ekran, dodał mój głos i właściwie spełnił wszystkie założenia. Nie byliśmy jedynie zadowoleni z synchronizacji narracji z nagraniem prezentacji, więc wydaliśmy mu polecenie: “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.”
W odpowiedzi Codex podzielił narrację i nagranie na krótsze fragmenty, po czym wykonał zadanie niemal bezbłędnie — akurat przed 17:30, gdy nadszedł czas na świętowanie przy piwie i pizzy.
Wiemy, że Callombia rozwiązuje problem, z którym mierzy się większość firm. W szybko rozwijającej się firmie trudno uczestniczyć w każdej rozmowie, ale przekazywane podczas nich cenne spostrzeżenia są bezcenne. Teraz musimy tylko wdrożyć ją na produkcję.
Płynie z tego jednak szersza lekcja dotycząca pełniejszego wykorzystania AI oraz korzyści z połączenia wiedzy inżynieryjnej i produktowej w celu rozwiązywania wspólnych problemów. Wychodząc poza zwykły rytm pracy i współpracując między zespołami w atmosferze lekkiej rywalizacji, opracowaliśmy kilka rozwiązań, które po niewielkich poprawkach mogłyby trafić na produkcję. Regularne organizowanie takich wydarzeń pozwoli nam zadbać, aby nasze wewnętrzne procesy były równie sprawne jak rozwiązania tworzone dla klientów.