17 марта 2026 года компания Kagi запустила «Small Web» в своих мобильных приложениях. Это курируемая коллекция более чем 30 000 некоммерческих сайтов, созданных людьми: личные блоги, веб-комиксы, независимые видео. Идея проста: вернуть пользователям интернет, где не гоняются за кликами и рекламой, а делятся мыслями и опытом. Для выпускника ИТ-направления это не просто новость, а отражение важного тренда — борьбы с «мусорным» контентом и AI-сгенерированными страницами. Именно здесь открывается пространство для инженерных и исследовательских ВКР: от алгоритмов фильтрации до проектирования каталогов, от API до мобильных клиентов. В статье разберём, как этот кейс превратить в полноценную тему диплома и какие технические детали помогут успешно защититься.
Актуальность: Kagi доказывает, что кураторские списки востребованы: люди хотят находить живой контент в обход алгоритмов соцсетей. Вы можете спроектировать собственный рекомендательный сервис, который будет ранжировать сайты по «человечности».
Цель ВКР: создать модуль персональных рекомендаций для каталога некоммерческих ресурсов (аналог Small Web).
Задачи:
Структура: Глава 1 — анализ предметной области и сравнение с Kagi, Глава 2 — архитектура и алгоритмы, Глава 3 — тестирование и метрики (precision@k, NDCG).
Актуальность: Kagi вручную отбирает сайты, но это масштабируется с трудом. Ваша ВКР может предложить автоматическую фильтрацию, отделяющую «живой» контент от машинного.
Цель: классификатор веб-страниц, который определяет, написан ли материал человеком.
Задачи:
Структура: Глава 1 — анализ проблемы контент-фильтрации, Глава 2 — проектирование пайплайна, Глава 3 — эксперименты и эволюция точности.
Актуальность: Kagi сделала Small Web доступным с телефонов. Офлайн-режим — логичное развитие: пользователь путешествует, экономит трафик или живёт в зоне с нестабильной связью.
Цель: сервис кэширования и синхронизации каталога сайтов для Android/iOS.
Задачи:
Структура: Глава 1 — обзор мобильных приложений с офлайн-режимом, Глава 2 — архитектура хранения и синхронизации, Глава 3 — интеграция и метрики производительности.
Не превращайте аналитику в реферат «история поисковых систем». Возьмите конкретные проблемы из кейса Kagi: ручная модерация, масштабируемость, защита от ботов, принципы ранжирования. Сравните минимум 2–3 подхода. Например, алгоритмы краулинга и фильтрации контента в Apache Nutch, в коммерческих поисковиках и в собственной разработке Kagi.
Обоснование стека делайте через критерии качества. Подойдёт стандарт ISO/IEC 25010: функциональность, производительность, совместимость, безопасность. Сделайте сравнительную таблицу:
| Критерий | Apache Nutch | Собственный REST-сервис | Гибрид с Nutch |
|---|---|---|---|
| Сложность настройки | Высокая | Средняя | Средняя |
| Гибкость алгоритмов | Низкая | Высокая | Высокая |
| Производительность краулинга | Высокая | Разработка своими силами | Использование готового |
| Соответствие ГОСТ 34.602-89 | Не документирован | Полностью контролируется | Контролируется |
Такая таблица наглядно показывает, почему вы выбрали, например, собственный лёгкий модуль классификации вместо монолитного Nutch. Для мобильной части можно рассмотреть паттерн backend-for-frontend (BFF) и Kubernetes для развертывания — это распространённый вопрос на защите.
Здесь пригодятся UML-диаграммы. Не обязательно рисовать все 14 видов — достаточно диаграммы вариантов использования, последовательности и компонентов.
Пример проектирования для темы 1. Покажите последовательность обработки запроса пользователя:
Мобильный клиент → API Gateway (Kong) → Сервис рекомендаций (FastAPI) → ML-модуль (ONNX Runtime) → Redis-кэш → реляционная БД (PostgreSQL)
Опишите, как ваш сервис взаимодействует с каталогом Like Kagi. Важно показать, что вы понимаете жизненный цикл данных: ревизия каталога, проверка ссылок, извлечение фичей, добавление в индекс.
Для тем, связанных с развертыванием, добавьте конфигурацию Kubernetes: Deployment с горизонтальным автомасштабированием (HPA), Service, Ingress. Для наблюдаемости — OpenTelemetry, чтобы собирать трейсы и метрики. Это сразу показывает зрелость архитектуры. Не забудьте сделать диаграмму развертывания в формате C4 model (уровень контейнеров).
В любой ВКР с разработкой обязательна глава тестирования. Для сервиса курирования интернет-контента нужны две группы метрик:
Для нагрузочного тестирования используйте Apache JMeter или k6. Создайте тестовые данные — возьмите 1000 реальных блогов из открытых датасетов (Common Crawl) и 1000 AI-сгенерированных страниц (можно сгенерировать через GPT-2). Опишите, как вы обеспечивали чистоту эксперимента и какие метрики считали. В выводе сравните с базовым решением (например, обычный полнотекстовый поиск без классификатора).
В рамках бакалаврской или магистерской работы достаточно классического ML-стек: TF-IDF + RandomForest на 20–30 тысячах документов. Для BERT-подхода можно использовать предобученную модель rubert-tiny, она запустится на CPU и не потребует огромных вычислительных ресурсов.
Код обязателен для дипломов, связанных с разработкой ПО. Но его роль может быть минимальной: прототип сервиса, скрипты для сбора и анализа данных, тесты. Если ваша тема чисто исследовательская, уточните у руководителя — иногда достаточно оформления результатов экспериментов.
Используйте датасеты Common Crawl (несколько терабайт, но можно взять выборку), реестры доменов из каталога Webring, а для «нечеловеческого» контента — сгенерируйте тексты через opensource-модели
Maintain две диаграммы: use-case (функциональные требования) и component (архитектура). Нотация — UML 2.5, инструменты Draw.io или PlantUML. Подпишите название диаграммы, укажите, какой уровень C4 она представляет. Не рисуйте диаграммы классов для всех сущностей — это избыточно.
Не знаете, как написать ВКР, связанную с курированием контента или поисковыми системами? Мы разберём вашу тему, составим план и поможем с реализацией за 120 часов. Первая консультация — бесплатно. Оставьте заявку на сайте, и мы предложим варианты, которые точно устроят вашего руководителя.
Источник: Kagi brings its ‘small web’ of a human-only internet to mobile devices (опубликовано 2026-03-17)