From aadd142e262a93e7a69e38f0c0478d1ec50f7a23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D0=BB=D0=BE=D0=BD=D0=BE=D0=B2=D0=B0=20=D0=90=D0=BD?= =?UTF-8?q?=D0=BD=D0=B0?= Date: Wed, 20 May 2026 02:35:18 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=BB=D0=BE=D0=BD=D0=BE=D0=B2=D0=B0=20?= =?UTF-8?q?=D0=90=D0=BD=D0=BD=D0=B0=20=D0=BE=D1=82=D1=87=D1=91=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + b2b/slonova_anna.md | 203 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 204 insertions(+) create mode 100644 .gitignore create mode 100644 b2b/slonova_anna.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..723ef36 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.idea \ No newline at end of file diff --git a/b2b/slonova_anna.md b/b2b/slonova_anna.md new file mode 100644 index 0000000..64d62e8 --- /dev/null +++ b/b2b/slonova_anna.md @@ -0,0 +1,203 @@ +## Слонова Анна + +### Индивидуальное задание + +Разработка инструментов для автоматического написания с использованием искусственного интеллекта отчёта по встрече на +основе аудиозаписи. + +### План выполнения + +| № п/п | Место проведения | Тема | Период выполнения | +|-------|--------------------------------|---------------------------------------------------------------|-----------------------| +| 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-файл с отчётом по встрече на +основе одной или нескольких аудиозаписей, причём весь процесс от считывания аудио до создания результирующего файла +происходит полностью автоматически за счёт использования написанных скриптов и большой языковой модели, являющейся +частью ассистента. + +Обобщая всё вышесказанное, в процессе прохождения ознакомительной практики были получены навыки реализации различных +способов решений применимых в жизни задач с использованием искусственного интеллекта: ИИ-агент, взаимодействующий с +пользователем посредством чат-бота, и навык для уже готовых ИИ-ассистентов - а также проведён анализ каждого из +подходов; изучены различные ИИ-ассистенты, сделано их сравнение; разработаны два решения для бизнес-задачи +автоматической генерации отчётов по проведённой встрече на основе аудиозаписи, в которых применялись разнообразные +подходы к процессу транскрибации и форматы взаимодействия с пользователем, и каждое из которых работает успешно. +Прохождение ознакомительной практики позволило обучающемуся получить новые знания и расширить свой опыт работы в +предметной области искусственного интеллекта, что значительно повысило его квалификацию и компетентность, развило +профессиональные навыки и дало базу знаний для дальнейшей работы в этой сфере. \ No newline at end of file