Записаните срещи са недостатъчно използван източник на знания. В тях се търси трудно, повторното им преглеждане отнема време, а записите са разпръснати из екипни дискове, затова ценни идеи често остават незабелязани.
По време на еднодневен хакатон екип от трима души създаде Callombia. Това е вътрешна платформа, която автоматично транскрибира, маркира с етикети, обобщава и разделя записаните разговори на откъси в достъпно за всички международни офиси хранилище с търсене, подобно на YouTube.
Решението, изградено изцяло с Codex, използва семантично търсене с вграждания от OpenAI и косинусова близост, за да открива подходящи моменти дори без точните ключови думи, а върху него са добавени RAG чатбот и система за известия.
Нещо, което преди би отнело седмици, беше завършено за седем часа. Това показа как ориентираната към ИИ разработка с агенти за програмиране като Codex може драстично да съкрати жизнения цикъл на продуктовата разработка и да извлече реална бизнес стойност от вътрешните хакатони.
Ако сте като мен, рядко имате време (или достатъчно търпение) да изслушате записите от срещи. Често причината е, че трябва да ровите из неподредени екипни дискове, да прескачате безинтересните разговори и да се опитвате наистина да слушате, докато изпращате имейли и съобщения.
Но може би не е задължително да бъде така? Ами ако създадем нещо, което напълно променя начина, по който използваме записаните срещи? Това беше идеята зад скорошния ни проект за хакатона.
Само за ден 50 души от екипите ни по инженерна разработка, изпълнение и операции се заеха с редица проблеми от различни звена на бизнеса — от мащабиране на процесите по наемане и улесняване на създаването на задания до оценка на състоянието на проектите, генериране на прототипи в реално време и извличане на полезни идеи от записани срещи.
На този хакатон, базиран на Codex, създадохме Callombia. Callombia е YouTube за нашата компания — превръща всеки разговор в актуален ресурс, в който може да се търси. Всеки разговор автоматично се транскрибира, обобщава и получава етикети, след което се разделя на тематични откъси и се добавя в хранилище, организирано по канали (клиенти) и теми (области на специализация в ИИ). Така всеки член на екипа в Лондон, Единбург, Сингапур или Австралия получава незабавен достъп до важните за него моменти от разговорите.
Познатият интерфейс в стила на марката прави откриването на съдържание интуитивно, а семантичното търсене (и разбира се, RAG чатботът с ИИ) помага на хората да намират точно каквото търсят. Системата за известия също позволява на колегите ни да се абонират за определени теми и да бъдат уведомявани при публикуване на нови подходящи за тях откъси.
Но най-впечатляващото в Callombia не е самият продукт, нито наградата от 2000 британски лири за победата в хакатона (трябва да се похвалим), а фактът, че изградихме всичко това само за седем часа с двама инженери и ръководител по изпълнението. Преди година това не беше възможно. Подобренията при агентите за програмиране значително ускориха целия процес на продуктова разработка, а този хакатон се оказа чудесна среда за изследване на неравномерните граници на възможностите им. И така, как използвахме Codex?
Вместо просто да опишем множество изисквания, започнахме, като споделихме общото си виждане (под формата на подкана) за проблема и визията за Callombia. Умишлено оставихме описанието общо, за да дадем възможност на модела да свърши работата и да мисли творчески:
След десет минути обсъждане включихме Plan Mode, за да конкретизираме изискванията и да набележим техническата част на разработката. Plan Mode напомня на отговаряне на въпросите на онзи досаден приятел, който (за щастие) е обмислил всеки възможен сценарий. След като уточнихме неща като броя на видеоклиповете, избора между семантично търсене и търсене по ключови думи и архитектурата, която ще използваме, системата създаде Markdown файл, послужил за основа на проекта.


След като имахме план, следващата стъпка беше да изградим основните компоненти, чрез които Callombia действително да работи. Това означаваше да създадем процес за превръщане на записаните разговори в ресурси с възможност за търсене:
Импортиране на видеоклипове и транскрипции,
Разделянето им на смислово обособени моменти,
Обогатяването им с резюмета и етикети,
Предоставянето им чрез API за използване от клиентската част.
Ед се съсредоточи върху преобразуването на необработените записи и транскрипции в използваем формат, а Нико — върху слоя за извличане, чрез който тези моменти да могат да бъдат откривани. С Codex двамата успяха да изградят моделите на данни, скриптовете за извличане и свързващата логика в сървърната част много по-бързо, отколкото бихме могли ръчно. Така получихме много повече от транскрипция, прикачена към видеоклип. Получихме конкретни моменти: частта за Tesco, актуализацията на стратегията, обсъждането на наемането или точно онези 90 секунди от разговора, които някой действително иска да гледа.
Именно при слоя за извличане нещата станаха особено интересни. Искахме човек да може да въведе нещо като „financial performance“, „Tesco roadmap“ или „conversation evals“ и да бъде насочен към най-подходящите откъси дори ако тези точни думи никога не са били изричани. За тази цел създадохме фрагменти с времеви маркери, резюмета, текст от транскрипцията и метаданни. С ясна архитектура и много помощ от Codex обединихме темата, резюмето и транскрипцията в един вход и използвахме модела text-embedding-3-small на OpenAI, за да генерираме вграждания за всеки фрагмент. Съхранихме тези вграждания в базата си данни и използвахме косинусова близост, за да сравняваме потребителската заявка с всеки фрагмент. Така получихме слой за семантично извличане вместо обикновено търсене по ключови думи.
Това осигури изключително висока точност и придаде на продукта усещането за „магия“ по време на демонстрацията на хакатона. Същевременно знаехме, че този подход няма да се мащабира безкрайно, ако броят на видеоклиповете продължи да расте, защото сравняването на всяка заявка с всеки фрагмент в крайна сметка би станало твърде скъпо. Естествената следваща стъпка би била да въведем по-ефективни стратегии за извличане, като Hierarchical Navigable Small World, за да намалим броя на сравненията и да запазим ниско времето за реакция с разрастването на корпуса. След като тази функционалност заработи, Callombia започна да прилича по-малко на медийна библиотека и повече на система за знания.
Както при всеки добър хакатон, и тази част изискваше подобрения: първоначалните граници на фрагментите бяха твърде неточни, някои времеви маркери се нуждаеха от прецизиране, част от етикетите бяха прекалено общи, а файловете с транскрипциите и записите невинаги съвпадаха добре. Но именно тук се прояви и стойността. Codex ни позволи бързо да усъвършенстваме системата, вместо да затъваме в настройване и преработване. В крайна сметка имахме сървърна част, която можеше да осигурява откъси, кратки извадки и наистина полезно семантично търсене. Тогава Callombia започна да изглежда като истински продукт, а не просто като демонстрация от хакатон.
Докато Ед и Нико изграждаха слоя за импортиране и интелигентните функции, аз разработвах клиентската част. С нашия шаблон за цялостна разработка успях бързо да създам първа версия на уебсайта, без да напиша нито един ред код. След като го помолих да отвори уебсайта локално в браузъра ми, подавах кратка обратна връзка в точки и постепенно насочвах дизайна към желания резултат.
След около час обсъждане имах резултат, от който бях доста доволен — и то без никакъв опит в потребителските интерфейси или дизайна. Макар крайният продукт определено да не е съвършен, това е доста добра първа версия, която помага на хората да разберат продукта.


За да сме сигурни, че в края на деня ще имаме готов резултат, разпределихме работата помежду си. Разбира се, след няколко часа относително самостоятелна работа всеки от нас имаше собствен локален клон с куп конфликти.
Вместо да отделяме време, с което не разполагахме, за старателно преглеждане и разрешаване на конфликтите, решихме просто да дадем на Codex достъп до хранилищата и да го оставим да се справи сам. Макар засега да не бихме препоръчали това за разработка на корпоративен софтуер, ефективността му в среда с нисък риск е невероятна и ни спести много часове.
Последната част от хакатона беше да запишем демонстрация на Callombia за журито. Първоначалният ни импулс беше да отворим Loom за записа, но решихме, че това може да бъде истинско изпитание за Codex и задача малко извън настоящите му възможности. И така… Написахме подкана, дадохме му връзка към уебсайта на Callombia, добавихме запис на гласа ми в платформата за разработчици на OpenAI и го помолихме да свърши останалото.
Първият опит беше изключително впечатляващ — Codex беше написал сценарий за демонстрацията, записал екрана, добавил гласа ми зад кадър и като цяло изпълнил заданието. Единственото, от което не останахме веднага доволни, беше синхронизирането на гласа с демонстрационния запис, затова му зададохме: “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 раздели гласа и записа на по-малки части и изпълни задачата почти безупречно — точно навреме за 17:30 ч. и празнуването с бира и пица.
Знаем, че Callombia решава проблем, с който се сблъскват повечето компании. Трудно е да присъстваш на всеки разговор в бързо разрастваща се компания, но ценните прозрения, споделяни в тези разговори, са безценни. Сега остава само да внедрим системата в продукционна среда.
Но тук има и по-важен урок за работата с ИИ по подразбиране, както и за ползата от насочването на инженерната и продуктовата експертиза към общи проблеми. Като излязохме от обичайния си работен ритъм и си сътрудничихме между екипите в умерено състезателна среда, стигнахме до няколко решения, които с известни доработки могат да бъдат внедрени в продукционна среда. Ако правим това редовно, можем да гарантираме, че вътрешните ни процеси са също толкова ефективни, колкото решенията, които изграждаме за клиентите.