Practice_reports/media-skill/efremova_anastasia.md
2026-05-18 23:54:07 +03:00

185 lines
16 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Черновик журнала практики — Ефремова Анастасия Михайловна
## Данные обучающейся
ФИО: Ефремова Анастасия Михайловна
Учебная группа: М8О-105БВ-25
Направление подготовки: 02.03.02 Фундаментальная информатика и информационные технологии
Вид практики: ознакомительная
Сроки практики: 09.02.2026 - 07.06.2026
Место прохождения практики: ООО «ГРУППА КОМПАНИЙ "ИННОТЕХ"»
Руководитель практики от МАИ: Булакина Мария Борисовна
Индивидуальное задание: разработка и сопровождение проекта `media-skill`, предназначенного для генерации и обработки медиа-контента с использованием инструментов искусственного интеллекта.
## 1. План выполнения индивидуального задания
| № | Место проведения | Тема / этап | Период выполнения |
|---|---|---|---|
| 1 | ООО «ГРУППА КОМПАНИЙ "ИННОТЕХ"» | Инструктаж по технике безопасности, знакомство с целями практики и структурой проекта | 09.02.2026 |
| 2 | ООО «ГРУППА КОМПАНИЙ "ИННОТЕХ"» | Изучение репозитория `media-skill`, анализ структуры модулей и сценариев запуска | 10.02.2026 - 23.02.2026 |
| 3 | ООО «ГРУППА КОМПАНИЙ "ИННОТЕХ"» | Анализ функциональности проекта: генерация изображений, мемов, видео, озвучки, удаление фона, анализ изображений | 24.02.2026 - 16.03.2026 |
| 4 | ООО «ГРУППА КОМПАНИЙ "ИННОТЕХ"» | Работа с Git-репозиторием: проверка веток, синхронизация с удалённым репозиторием, разрешение конфликтов | 17.03.2026 - 06.04.2026 |
| 5 | ООО «ГРУППА КОМПАНИЙ "ИННОТЕХ"» | Приведение проекта к аккуратному состоянию: очистка временных файлов, настройка `.gitignore`, удаление неактуальных веток | 07.04.2026 - 27.04.2026 |
| 6 | ООО «ГРУППА КОМПАНИЙ "ИННОТЕХ"» | Изучение subagent-интеграции, файлов `SKILL.md`, `SUBAGENT.md`, `ACP.md` и сценариев локального запуска | 28.04.2026 - 18.05.2026 |
| 7 | ООО «ГРУППА КОМПАНИЙ "ИННОТЕХ"» | Подготовка материалов отчёта, описание выполненных работ и полученных результатов | 19.05.2026 - 06.06.2026 |
| 8 | ООО «ГРУППА КОМПАНИЙ "ИННОТЕХ"» | Оформление отчёта. Подведение итогов | 07.06.2026 |
## 2. Отзыв руководителя практики
Обучающаяся группы М8О-105БВ-25 Ефремова Анастасия Михайловна проходила практику в ООО «ГРУППА КОМПАНИЙ "ИННОТЕХ"».
В ходе практики обучающаяся изучила структуру проекта `media-skill`, предназначенного для генерации и обработки медиа-контента. Были рассмотрены основные части проекта: сценарии генерации изображений и видео, модуль создания мемов, инструменты для работы с озвучкой, модуль удаления фона, анализ изображений, а также файлы, отвечающие за интеграцию проекта как локального subagent-инструмента.
Практикантка выполнила работы по анализу состояния Git-репозитория, синхронизации локальной версии с удалённым репозиторием, разрешению конфликта при обновлении ветки `master`, очистке временных и сгенерированных файлов, настройке правил `.gitignore`, удалению неактуальных локальных и удалённых веток. По итогам работы основная ветка проекта была приведена к чистому и синхронизированному состоянию.
За время прохождения практики обучающаяся показала навыки работы с системами контроля версий, умение анализировать структуру существующего программного проекта, аккуратно разрешать конфликты, поддерживать порядок в репозитории и документировать выполненные действия.
Материалы, изложенные в отчёте обучающейся, полностью соответствуют индивидуальному заданию, рекомендуемая оценка «отлично».
## 3. Отчёт обучающейся по практике
### 3.1. Цель и задачи практики
Целью практики являлось знакомство с реальным программным проектом, изучение его структуры, инструментов разработки и сопровождения, а также выполнение практических задач по приведению репозитория к рабочему и аккуратному состоянию.
В рамках практики были поставлены следующие задачи:
- изучить назначение проекта `media-skill`;
- проанализировать структуру репозитория и основные модули;
- разобраться с принципами запуска проекта и интеграции в виде локального subagent-инструмента;
- проверить состояние веток и удалённого репозитория;
- выполнить синхронизацию локальной и удалённой версий;
- устранить временные и сгенерированные файлы, мешающие работе с репозиторием;
- настроить правила игнорирования служебных файлов;
- удалить неактуальные ветки после проверки их состояния;
- подготовить материалы для отчёта.
### 3.2. Общая характеристика проекта
Проект `media-skill` представляет собой набор инструментов для генерации и обработки медиа-контента. Он объединяет несколько направлений работы с изображениями, видео и аудио. В проекте присутствуют модули для генерации изображений, создания мемов, подготовки коротких видео, работы с озвучкой, удаления фона с изображений, анализа фото и обработки клипов.
В корне проекта расположены основные управляющие файлы:
- `entry.py` - основной входной сценарий для запуска пользовательских запросов;
- `SKILL.md` - описание возможностей проекта как навыка;
- `SUBAGENT.md` - инструкция для использования проекта в режиме локального субагента;
- `ACP.md` и `acp_server.py` - материалы и код, связанные с Agent Communication Protocol;
- `.gitignore` - правила исключения локальных и сгенерированных файлов из Git.
Также проект содержит отдельные директории по направлениям:
- `image-generation` - генерация и редактирование изображений;
- `meme-gen` - создание мемов;
- `story-gen` - генерация сценариев и трендовых идей;
- `video-generation` - генерация видео;
- `voice` - озвучка и работа с аудио;
- `ffmpeg-editing` - обработка видео через FFmpeg;
- `remove-background` - удаление фона;
- `face-analyzer` - анализ изображений;
- `clip-extractor` - извлечение клипов из видео.
### 3.3. Анализ состояния репозитория
На первом этапе было проверено локальное состояние репозитория. Проект находился в каталоге `C:\Users\HONOR\media-skill`. Удалённый репозиторий был настроен на адрес:
```text
https://git.lambda.coredump.ru/media-skill/media-skill.git
```
Изначально локальная рабочая ветка отличалась от удалённой. Также в рабочем дереве находились временные файлы, появившиеся после запуска сборщика трендов: лог `trend_collector.log`, временные файлы в каталоге `story-gen/scripts/trends`, а также изменённый файл `trends_cache.json`.
Перед синхронизацией были проверены:
- текущая ветка;
- локальные ветки;
- удалённые ветки;
- последние коммиты;
- незакоммиченные изменения;
- содержимое временных файлов.
### 3.4. Очистка временных файлов
После анализа было установлено, что часть изменений относится не к исходному коду проекта, а к результатам локального запуска скриптов. Такие файлы не должны попадать в основной репозиторий, так как они усложняют проверку изменений и создают лишний шум в истории Git.
Были удалены сгенерированные файлы трендов, временный лог `trend_collector.log`, директории `__pycache__`, а также временный swap-файл Git-редактора. Изменение файла `trends_cache.json` было возвращено к состоянию из репозитория.
Это позволило получить чистое рабочее дерево и подготовить проект к безопасной синхронизации с удалённым репозиторием.
### 3.5. Настройка `.gitignore`
В процессе работы был улучшен файл `.gitignore`. В него было добавлено правило:
```gitignore
*.log
```
Это правило исключает локальные лог-файлы из отслеживания Git. Также была исправлена некорректная строка:
```gitignore
tests/`
```
Она была заменена на корректное правило:
```gitignore
tests/
```
В результате файл `.gitignore` стал аккуратнее, а риск случайного добавления временных файлов в репозиторий уменьшился.
### 3.6. Синхронизация с удалённым репозиторием
После восстановления доступа к удалённому репозиторию была выполнена синхронизация с сервером. Удалённая ветка `master` содержала новые коммиты, поэтому локальная ветка была приведена к актуальному состоянию через `fetch` и `rebase`.
Во время rebase возник конфликт в файле `SUBAGENT.md`. Конфликт произошёл из-за того, что локальная ветка и серверная ветка содержали разные версии инструкции для subagent-режима. После анализа было принято решение оставить более актуальную серверную версию, так как она уже отражала новую структуру локального subagent-запуска. Старый конфликтующий коммит был пропущен, а чистящие коммиты были применены поверх свежей версии `master`.
После этого изменения были отправлены в удалённый репозиторий.
### 3.7. Работа с ветками
В ходе работы были проверены локальные и удалённые ветки. Локальные ветки, которые уже были слиты в `master`, были удалены. После синхронизации также были удалены неактуальные удалённые ветки:
- `feature/deepagents-media-agent`;
- `feature/tts-generator`;
- `wip/story-gen`;
- `feat/subagent-support`.
После удаления веток на сервере осталась актуальная основная ветка `master`, указывающая на последний коммит:
```text
8acf419 chore: tidy gitignore patterns
```
Финальное состояние репозитория:
```text
master...origin/master
working tree clean
```
### 3.8. Полученные результаты
По итогам практической работы были достигнуты следующие результаты:
- найден локальный каталог проекта `media-skill`;
- подтверждена связь с удалённым репозиторием;
- проверено состояние локальных и удалённых веток;
- очищены временные и сгенерированные файлы;
- настроены правила игнорирования логов и тестовых артефактов;
- разрешён конфликт при синхронизации с удалённой веткой;
- локальный `master` синхронизирован с `origin/master`;
- удалены неактуальные ветки;
- репозиторий приведён к чистому и удобному для дальнейшей работы состоянию.
### 3.9. Вывод
В ходе практики были получены и закреплены навыки работы с реальным Git-репозиторием, анализа структуры программного проекта, сопровождения существующего кода и аккуратного разрешения конфликтов. Также была изучена организация проекта, связанного с генерацией и обработкой медиа-контента, и рассмотрены особенности подготовки такого проекта к запуску в режиме локального subagent-инструмента.
Выполненная работа позволила привести репозиторий `media-skill` к стабильному состоянию, упростить дальнейшую разработку и подготовить основу для оформления итогового отчёта по практике.