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


После подготовки плана мы перешли к созданию основных компонентов, необходимых для работы Callombia. Для этого требовалось выстроить конвейер, превращающий записи звонков в доступные для поиска материалы:
загружать видео и расшифровки;
разбивать их на содержательные фрагменты;
добавлять к ним краткие резюме и теги;
предоставлять доступ к ним через API для фронтенда.
Эд в основном занимался преобразованием исходных записей и расшифровок в пригодный для работы формат, а Нико сосредоточился на слое поиска, который позволял находить нужные моменты. С помощью Codex они смогли гораздо быстрее, чем при ручной работе, развернуть модели данных, скрипты извлечения и внутреннюю серверную инфраструктуру. В результате мы получили гораздо больше, чем просто расшифровку, прикреплённую к видео. Мы получили отдельные моменты: раздел о Tesco, обновление стратегии, обсуждение найма — те конкретные 90 секунд звонка, которые действительно хочется посмотреть.
Особенно интересным оказался именно слой поиска. Мы хотели, чтобы пользователь мог ввести, например, «финансовые показатели», «дорожная карта Tesco» или «оценка диалогов» и сразу перейти к наиболее релевантным фрагментам, даже если эти точные слова в разговоре не звучали. Для этого мы создали фрагменты с временными метками, краткими резюме, текстом расшифровки и метаданными. Опираясь на чёткую архитектуру и активно используя Codex, мы объединили тему, краткое резюме и расшифровку в единые входные данные, а затем применили модель OpenAI text-embedding-3-small для создания эмбеддингов каждого фрагмента. Мы сохранили эти эмбеддинги в базе данных и использовали косинусное сходство для сопоставления запроса пользователя с каждым фрагментом. Так мы получили семантический слой поиска вместо обычного поиска по ключевым словам.
Такой подход обеспечил очень высокую точность и придал продукту ощущение «магии» во время демонстрации на хакатоне. В то же время мы понимали, что с ростом числа видео это решение не сможет масштабироваться бесконечно: сопоставление каждого запроса с каждым фрагментом со временем станет слишком затратным. Логичным следующим шагом стало бы внедрение более эффективных стратегий поиска, например 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 решает проблему, знакомую большинству компаний. В быстро растущей компании сложно присутствовать на каждом звонке, однако крупицы ценных знаний, которыми делятся во время таких разговоров, поистине бесценны. Теперь остаётся лишь запустить решение в рабочей среде.
Но здесь есть и более важный урок о переходе к подходу, ориентированному на ИИ, и пользе от применения инженерных и продуктовых компетенций для решения общих проблем. Выйдя за рамки привычного рабочего цикла и наладив взаимодействие между командами в условиях дружеского соперничества, мы получили целый ряд решений, которые после небольшой доработки можно запустить в рабочей среде. Если проводить такие мероприятия регулярно, наши внутренние процессы будут столь же эффективны, как и решения, которые мы создаём для клиентов.