Основная навигация

Создание интеллектуального инструмента поиска по встречам с помощью Codex

Узнайте, как Codex помог быстро создать практичное внутреннее решение, превращающее записи встреч компании в доступную для поиска базу знаний.

Краткое резюме

  • Записи встреч — недооценённый источник знаний. В них сложно искать информацию, их долго пересматривать, а сами записи разбросаны по командным дискам, поэтому ценные идеи часто остаются незамеченными.

  • На однодневном хакатоне команда из трёх человек создала Callombia. Это внутренняя платформа, которая автоматически расшифровывает записи звонков, добавляет теги и краткие резюме, нарезает их на фрагменты и помещает в доступный всем международным офисам поисковый репозиторий в стиле YouTube.

  • Решение, целиком созданное с помощью Codex, использует семантический поиск на базе эмбеддингов OpenAI и косинусного сходства, чтобы находить нужные моменты даже без точного совпадения ключевых слов. Его дополняют RAG-чат-бот и система уведомлений.

  • То, на что раньше ушли бы недели, удалось сделать за семь часов. Это показало, как ориентированная на ИИ разработка с такими агентами для программирования, как Codex, может радикально сократить цикл создания продукта и принести реальную пользу бизнесу благодаря внутренним хакатонам.

Если вы похожи на меня, у вас редко находится время (или терпение), чтобы переслушивать записи встреч. Часто для этого приходится искать записи на неупорядоченных командных дисках, проматывать не слишком содержательные разговоры и пытаться действительно слушать, одновременно отвечая на письма и сообщения.

Но, возможно, всё может быть иначе? Что, если создать решение, которое полностью изменит работу с записями встреч? Именно эта идея легла в основу нашего недавнего проекта для хакатона.

Всего за день 50 сотрудников из отделов разработки, реализации проектов и операционной деятельности решали задачи со всего бизнеса: масштабирование процессов найма, упрощение подготовки технических заданий, оценка состояния проектов, создание прототипов в реальном времени и извлечение полезной информации из записей встреч.

На этом хакатоне с использованием Codex мы создали Callombia. Callombia — это YouTube для нашей компании, превращающий каждый звонок в постоянно пополняемый ресурс с возможностью поиска. Каждый звонок автоматически расшифровывается, снабжается тегами и кратким резюме, затем нарезается на тематические фрагменты и добавляется в репозиторий, сгруппированный по каналам (клиентам) и темам (направлениям специализации в области ИИ). Благодаря этому любой сотрудник из Лондона, Эдинбурга, Сингапура или Австралии может мгновенно перейти к интересующим его моментам звонков.

Знакомый интерфейс в фирменном стиле упрощает поиск контента, а семантический поиск и, конечно же, RAG-чат-бот помогают находить именно то, что нужно. Система уведомлений также позволяет коллегам подписываться на определённые темы и узнавать о появлении новых интересующих их фрагментов.

Но самое интересное в Callombia — не сам продукт и не приз в 2000 фунтов за победу на хакатоне (хотя похвастаться приятно), а то, что два инженера и руководитель проекта смогли создать всё это всего за семь часов. Ещё год назад это было невозможно. Развитие агентов для программирования значительно ускорило весь процесс создания продукта, а этот хакатон стал отличным полигоном для изучения неравномерно развивающихся возможностей технологии. Итак, как мы использовали Codex?

Планирование решения

Вместо того чтобы просто составить длинный список требований, мы начали с общего взгляда команды на проблему и концепцию Callombia, сформулировав его в виде промпта. Мы намеренно ограничились общим описанием, чтобы модель сама проработала детали и могла проявить творческий подход:

После десяти минут диалога мы включили режим планирования, чтобы уточнить требования и определить техническую часть разработки. Работа в режиме планирования похожа на ответы тому самому назойливому другу, который (к счастью) заранее продумал все возможные сценарии. Согласовав количество видео, выбор между семантическим поиском и поиском по ключевым словам, а также архитектуру, мы получили файл Markdown, который стал основой дальнейшей работы над проектом.

Снимок экрана, иллюстрирующий планирование решения.

Создание основных компонентов

После подготовки плана мы перешли к созданию основных компонентов, необходимых для работы Callombia. Для этого требовалось выстроить конвейер, превращающий записи звонков в доступные для поиска материалы:

  1. загружать видео и расшифровки;

  2. разбивать их на содержательные фрагменты;

  3. добавлять к ним краткие резюме и теги;

  4. предоставлять доступ к ним через 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 решает проблему, знакомую большинству компаний. В быстро растущей компании сложно присутствовать на каждом звонке, однако крупицы ценных знаний, которыми делятся во время таких разговоров, поистине бесценны. Теперь остаётся лишь запустить решение в рабочей среде.

Но здесь есть и более важный урок о переходе к подходу, ориентированному на ИИ, и пользе от применения инженерных и продуктовых компетенций для решения общих проблем. Выйдя за рамки привычного рабочего цикла и наладив взаимодействие между командами в условиях дружеского соперничества, мы получили целый ряд решений, которые после небольшой доработки можно запустить в рабочей среде. Если проводить такие мероприятия регулярно, наши внутренние процессы будут столь же эффективны, как и решения, которые мы создаём для клиентов.

Автор

George Montagu, Ed Jeffery, Nicolas Franco Gonzalez