Practice_reports/b2b/slonova_anna.md

32 KiB
Raw Permalink Blame History

Слонова Анна

Индивидуальное задание

Разработка инструментов для автоматического написания с использованием искусственного интеллекта отчёта по встрече на основе аудиозаписи.

План выполнения

№ п/п Место проведения Тема Период выполнения
1 ООО “Группа компаний “Иннотех” Инструктаж. 09.02.2026-09.02.2026
2 ООО “Группа компаний “Иннотех” Изучение ИИ-ассистентов. Анализ возможностей и рисков. 10.02.2026-06.03.2026
3 ООО “Группа компаний “Иннотех” Разработка чат-бота. 07.03.2026-16.04.2026
4 ООО “Группа компаний “Иннотех” Изучение структуры навыков и написания скриптов. 17.04.2026-29.04.2026
5 ООО “Группа компаний “Иннотех” Разработка навыка для Hermes. 30.04.2026-25.05.2026
6 ООО “Группа компаний “Иннотех” Тестирование и сравнение решений. Анализ перспектив развития. 26.05.2026-06.06.2026
7 ООО “Группа компаний “Иннотех” Оформление отчета. Подведение итогов. 07.06.2026-07.06.2026

Отзыв руководителя

Обучающаяся группы М8О-101БВ-25 Слонова Анна Дмитриевна проходила ознакомительную практику в ООО “Группа компаний “Иннотех”. За время практики студент изучил принципы работы современных ИИ-ассистентов с открытым исходным кодом, провёл их сравнительный анализ, выявил сильные стороны и потенциальные риски. В соответствии с индивидуальным заданием разработаны два решения для автоматической генерации отчётов по аудиозаписям встреч: чат-бот для мессенджера Element с асинхронной обработкой запросов и навык для ИИ-ассистента Hermes, включающий набор shell-скриптов для транскрибации, объединения записей и нескольких источников и генерации итогового PDF-отчёта через LLM.

За время прохождения практики практикант проявил высокий уровень самостоятельности, аналитическое мышление, умение аргументированно выбирать технологические решения; продемонстрировал ответственное отношение к работе, способность системно описывать результаты и предлагать пути дальнейшего развития проектов. В ходе практики были показаны уверенные навыки программирования на Python, асинхронной разработки, работы с LLM, аудио-транскрибацией, создания ботов в Matrix и написания shell-скриптов, а также понимание вопросов безопасности ИИ-агентов.

Рекомендуемая оценка «Отлично». Материалы, изложенные в отчёте обучающегося, полностью соответствуют индивидуальному заданию.

Отчёт обучающегося по практике

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

Основной целью и задачей практики, общей для проектной команды, было изучение ИИ-агентов и ассистентов и разработка на их основе различных средств оптимизации бизнес-процессов. Индивидуальное задание обучающегося состояло в разработке средств для автоматической генерации отчёта по проведённой встрече на основе аудиозаписи.

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

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

Первым этапом выполнения ознакомительной практики было изучение принципов работы современных ИИ-ассистентов на примере проектов с открытым исходным кодом OpenClaw, Hermes и иных подобных. Особенность и уникальность данных ассистентов заключается в высокой степени их универсальности, достигаемой за счёт возможности выполнения shell-команд, доступа к файловой системе и т.п. инструментарию, с мыслительным процессом посредством большой языковой модели. Также большой потенциал данных систем заключается в расширении их функционала посредством написания навыков - совокупности скриптов и инструкций для LLM, как их запускать, зачем они нужны, в каких случаях стоит это делать.

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

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

Следующим шагом стала разработка простого ИИ-агента, реализующего функционал чат-бота для автоматической генерации отчётов в мессенджере Element, использующем протокол Matrix. Данный мессенджер был выбран по причине простоты создания в нём ботов и взаимодействия с ними, что является удобным для разработки решения, которое потом можно перенести в любой другой мессенджер по желанию.

Разработка велась на языке Python с использованием библиотеки matrixnio, позволяющей реализовать взаимодействие с мессенджером. Первым делом чат-бот считывает отправленные пользователем сообщения и группирует их. Так как возможности отправки нескольких вложений в одном сообщении или текстовой подписи к медиа-вложениям выбранный мессенджер не имеет, группировка велась исходя из времени отправки, чтобы отправленные за небольшой промежуток времени сообщения рассматривались в совокупности. Подобная группировка позволила реализовать генерацию отчётов на основе сразу нескольких аудиозаписей, а также текстовых комментариев к ним, воспринимаемых как единое целое, несмотря на изначальную недостаточность возможностей мессенджера. Далее полученные аудиозаписи транскрибируются, переводясь в текст для возможности дальнейшей обработки посредством большой языковой модели.

Транскрибация ведётся с использованием библиотеки faster-whisper, позволяющей локально развернуть на устройстве модель машинного обучения для автоматического распознавания речи. Данная библиотека предоставляет несколько вариантов моделей, различающихся по весу, времени и качеству работы. В ходе разработки были опробованы различные варианты модели с целью поиска оптимального варианта, дающего баланс между скоростью и качеством работы - транскрибация должна быть на уровне, достаточном для последующей генерации на её основе отчёта, однако высококачественное распознавание речи занимает длительное время, а модель имеет большой вес; при этом определённая доля ошибок в транскрибации критичной являться не будет благодаря возможностям большой языковой модели, которая сможет уловить смысл содержания исходя из общего контекста транскрибации, даже если некоторые из слов окажутся распознаны неправильно. Исходя из этого была выбрана модель small, обеспечивающая достаточное качество распознавания для верной транскрибации большей части речи и при этом являющейся более легковесной и быстрой, чем иные модели. Также были установлены настройки модели, позволяющие повысить качество распознавания речи на русском языке, так как созданный продукт нацелен на отечественный рынок, и основным языком на совещаниях и встречах будет являться русский.

Далее на основе текстовых сообщений и транскрипций аудиозаписей формируется единый запрос, предоставляемый большой языковой модели вместе с указанными инструкциями для написания отчёта, содержащего в себе ключевые моменты, итоги и ход встречи, а также перечень принятых решений. LLM генерирует отчёт исходя из данной ей информации, оформляя его в виде html-страницы для возможности дальнейшего перевода в pdf-формат. Созданный отчёт конвертируется в pdf-файл, после чего отправляется пользователю. Агент написан с использованием принципов асинхронного программирования, что позволяет ему выполнять несколько задач одновременно, благодаря чему пользователь не вынужден ждать, когда будет готов один отчёт, прежде чем отправить сообщения с данными для генерации другого.

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

Возможными перспективами развития агента являются адаптация чат-бота под иные мессенджеры для охвата большего числа пользователей, добавление различных типов отчётов и их оформления на выбор пользователя, работа с распознаванием и генерацией изображений: схемы, диаграммы, графики и т.д.

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

Структура навыка включает в себя файлы-скрипты, пригодные для запуска в shell, программно реализующие функционал и логику навыка, а также описание с инструкциями для ИИ-ассистента, позволяющие большой языковой модели понять, что делает навык, в каких случаях его применять и руководство по запуску скриптов. Скрипты навыка включают в себя скрипт транскрибации, создающий транскрипцию аудиофайла посредством запроса к удалённому серверу; скрипт для более быстрой транскрибации больших файлов с использованием разбиения файла на части - чанки; скрипт для объединения нескольких .wav файлов в один .mp3 файл; скрипт для объединения полученных распознаваний чанков в единую транскрипцию; скрипт, включающий в себя запуск вышеперечисленных скриптов в нужном порядке и с определёнными условиями, что реализует полный пайплайн транскрипции. Также присутствует файл с ключевыми словами, что позволяет улучшить качество автоматического распознавания речи без значимых затрат памяти. Описание навыка содержит примеры фраз пользователя, при которых должен вызываться навык, руководство по запуску скриптов и инструкции по генерации отчёта.

Когда LLM видит в запросе пользователя фразу, схожую по семантике с примерами, указанными в описании, в соответствии с инструкциями запускаются скрипты, в результате работы которых создаётся текстовый файл с полной транскрипцией аудиозаписи. Далее полученная транскрипция передаётся большой языковой модели, которая в соответствии с предоставленными ей инструкциями и требованиями автоматически генерирует на основании переданной транскрипции отчёт о прошедшей встрече.

Полный процесс генерации отчёта реализован в скрипте generate_report.sh, внутри которого реализована правильная последовательность вызовов других скриптов, нацеленных на выполнение одной подзадачи, в соответствии со входными условиями. Скрипт проверяет существование в указанной пользователем директории .wav файлов - исходных аудиозаписей встречи. Далее вызывается скрипт transcribe.sh, автоматически создающий транскрипции на основе всех обнаруженных в директории аудиофайлов. После этого вызывается скрипт merge_transcriptions.py, объединяющий все транскрипции вместе на основе кодов времени.

Скрипт transcribe.sh при его вызове обнаруживает все .wav файлы в исходной директории, разделяя их на источники: стерео-записи и записи с петличного микрофона - на основе названий. Каждый из обнаруженных файлов-источников конвертируется в .mp3 формат для уменьшения их веса, что влияет на скорость и эффективность работы скрипта в дальнейшем. Аудиозаписи, относящиеся к одному и тому же источнику, объединяются в один файл. После этого для каждого из файлов происходит транскрибация посредством отправки запроса на удалённый сервер, где развёрнута модель whisper для автоматического распознавания речи. Для навыка был выбран данный способ, а не локальное развёртывание модели, как в случае с чат-ботом, так как клиент устанавливает ИИ-ассистент на собственном компьютере, в отличие от чат-бота, разворачиваемого на сервере. Тогда локальная установка модели позволяла произвести более тонкую настройку. Однако такой способ транскрибации является затратным по производительности, сильно зависит от характеристик устройства, наличия GPU. Для использования в ИИ-ассистенте, работающем на персональном устройстве клиента, лучше подходит способ с использованием обращения к удалённому серверу посредством URL запроса, так как он гарантирует высокую скорость транскрибации вне зависимости от характеристик устройства клиента и не требует высокой производительности. Ответ сервера сохраняется, и на его основе формируются два файла : один с метками времени, другой без них.

Скрипт merge_transcriptions.py позволяет объединить все полученные транскрипции в один файл в случае, когда используется несколько источников. При этом записи с петличного микрофона считаются основными, комнатная запись же помечается отдельной меткой в итоговой транскрипции. Скрипт проходит по различным расшифровкам текста, оценивает смещение по времени, корректирует временные метки по необходимости и на их основе объединяет транскрипции в одну, сохраняя её в файл.

Однако удалённый сервер может иметь ограничения на максимальную длительность обрабатываемого аудио, из-за чего длинные записи не получится обработать уже описанными скриптами. Для этого случая предусмотрен скрипт transcribe_chunked.sh, требующий отдельного вызова, что указано в инструкции для ИИ-ассистента. Суть подхода заключается в разбиении длинной записи на более короткие части - чанки. Скрипт определяет длительность исходного файла и находит паузы тишины длительностью не менее 0.5 секунд, чтобы избежать в дальнейшем проблем с транскрибацией в моменте разделения. С учётом выявленных пауз определяются точки разреза аудиозаписи на чанки. Продолжительность одного чанка около 10 минут: среди найденных пауз ищутся такие, чтобы максимально приблизиться к указанной длине записи. После разделения каждый чанк транскрибируется отдельно, принцип работы аналогичен описанному для transcribe.sh. Далее полученные транскрипции чанков объединяются в один итоговый файл.

После получения транскрипции аудиозаписей LLM передаётся содержимое итогового файла, на его основе большая языковая модель составляет отчёт в формате Markdown и сохраняет в файл. Далее файл .md, в котором сохранён сгенерированный отчёт, конвертируется в формат pdf. Итого в результате работы навыка ИИ-ассистент создаёт pdf-файл с отчётом по встрече на основе одной или нескольких аудиозаписей, причём весь процесс от считывания аудио до создания результирующего файла происходит полностью автоматически за счёт использования написанных скриптов и большой языковой модели, являющейся частью ассистента.

Обобщая всё вышесказанное, в процессе прохождения ознакомительной практики были получены навыки реализации различных способов решений применимых в жизни задач с использованием искусственного интеллекта: ИИ-агент, взаимодействующий с пользователем посредством чат-бота, и навык для уже готовых ИИ-ассистентов - а также проведён анализ каждого из подходов; изучены различные ИИ-ассистенты, сделано их сравнение; разработаны два решения для бизнес-задачи автоматической генерации отчётов по проведённой встрече на основе аудиозаписи, в которых применялись разнообразные подходы к процессу транскрибации и форматы взаимодействия с пользователем, и каждое из которых работает успешно. Прохождение ознакомительной практики позволило обучающемуся получить новые знания и расширить свой опыт работы в предметной области искусственного интеллекта, что значительно повысило его квалификацию и компетентность, развило профессиональные навыки и дало базу знаний для дальнейшей работы в этой сфере.