Проект в статусе «успешный прототип». Дальнейшее развитие — список идей и порядок реализации.
Общий прогресс: 7/17 пунктов (41%)
Извлекать ссылку из сообщения, даже если рядом есть текст. Текст игнорировать.
Реализация: bot.py — функция extract_url() успешно извлекает URL из смешанных сообщений.
Добавить парсер для портала infostart.ru — статьи по 1С и интеграциям.
Реализация: scraper.py — полный парсер с поддержкой форматов /1c/articles/[ID]/ и /public/[ID]/, множественные селекторы для надежности. Добавлено в коммите 536258a.
Парсить не только README, но и другие .md файлы из репозитория: docs/, ARCHITECTURE.md, CONTRIBUTING.md и т.д.
Реализация: scraper.py — ищет README, ARCHITECTURE, CONTRIBUTING, DEVELOPMENT, SETUP, INSTALL, USAGE, API, CHANGELOG в корне и директории docs/. Добавлено в коммите 536258a.
Добавить проверку на доступность модели перед ответом с понятным логированием. Сейчас бот падает если модель недоступна.
Реализация: summarizer.py — функция check_model_availability() проверяет доступность Ollama и наличие OpenAI API ключа, выдает понятные сообщения об ошибках.
Подписки на хабы, /feed за последние сутки и ежедневный дайджест за вчера: «Лучшее на Хабре» + «Твои хабы», листание «Ещё 10 ▶», полное саммари по кнопке. Статьи Хабра узнаются по номеру, у них сохраняются хабы и теги, для старых статей — фоновый бэкфилл.
Реализация: habr_api.py (клиент публичного API Хабра), habr_store.py, hubs.py, feed.py, digest.py, habr_backfill.py; в bot.py — команды /subscribe, /subscriptions, /feed, /digest, /digest_now. Выпущено тремя этапами.
Не входит: новости Хабра, подписки на теги, другие источники (Инфостарт, GitHub).
Замена файлового хранения на SQLite. Причины:
- Изоляция данных по пользователям (
user_id) - Связи между сущностями (статьи ↔ идеи)
- Подготовка к RAG
Реализация: database.py — полноценная SQLite база данных с таблицами:
articles— статьи с метаданнымиideas— пользовательские идеиidea_articles— связь статей с идеями, оценка релевантности, подтверждение пользователя
Группировка статей по темам. Пользователь создаёт Идею, привязывает к ней статьи. Каждый пользователь видит только свои Идеи.
Реализация: bot.py + database.py — полный функционал:
/new_idea— создание новой идеи с названием и описанием/ideas— просмотр списка идей пользователя- Привязка статей к идеям при обработке (автоматическое предложение)
- Просмотр статей внутри идеи
- Редактирование и удаление идей
- Отвязка статей от идей
Парсинг PDF-статей с arxiv. Краткое изложение статьи. По запросу делается перевод статьи.
Извлечение транскрипции из YouTube-роликов и генерация пересказа.
Варианты реализации:
youtube-transcript-api— Python-библиотека для получения субтитров (если доступны)yt-dlp+ Whisper — скачать аудио и распознать через Whisper (для роликов без субтитров)
Особенности:
- Субтитры бывают автоматические (YouTube) и авторские — приоритет авторским
- Длинные ролики разбивать на чанки для суммаризации
- Сохранять таймкоды ключевых моментов
Применение:
- Технические доклады и туториалы
- Подкасты и интервью по теме идеи
При парсинге страницы анализировать контент на наличие блоков кода (теги <pre>, <code>). В базе данных отмечать булевым полем has_code, что статья содержит примеры кода.
Применение:
- Для Хабра и InfoStart — основной источник технических статей с кодом
- Оптимизация контекста при генерации дайджестов
- Возможность фильтрации статей с кодом
Сбор всех статей, привязанных к Идее, и передача их в языковую модель для формирования обзора.
Алгоритм:
- Получить все статьи идеи из БД
- Для каждой статьи:
- Если
has_code = True: передать полный текст статьи (контекст важен для понимания кода) - Если
has_code = False: передать только саммари статьи (экономия контекста)
- Если
- Сформировать промпт: «Проанализируй собранные материалы по теме X. Расскажи, можно ли применить собранную информацию на практике. Выдели статьи, которые нужно прочитать полностью.»
Ожидаемый результат:
- Обзор прочитанных материалов
- Рекомендации по применению
- Приоритизация статей для самостоятельного изучения
Векторная база для каждой Идеи. Связка: SQLite хранит структуру и метаданные, векторная БД — поисковый индекс по эмбеддингам.
Возможность задавать вопросы по накопленной базе: «Какие подходы к RLHF я читал?», «Что писали про интеграцию 1С с LLM?»
Анализ изображений из статей через vision-модель. Скриншоты с кодом — распознать и сохранить. Декоративные картинки — игнорировать.
Формирование поста по статье, отправка на модерацию, публикация в Telegram-канал после согласования.
MCP-сервер study-agent-code с инструментами для агентной работы с кодовой базой идей.
Tools:
list_idea_code(idea_id)— каталог сниппетов идеи (manifest)get_snippet(snippet_id)— полный код сниппета с контекстомsearch_code(query, idea_id?, language?)— поиск по коду/описаниямget_idea_context(idea_id)— описание идеи + список статей
Зависимости: Требует реализации 3.2 (извлечение кода) в расширенном виде — отдельная таблица code_snippets.
Применение:
- Агентная генерация кода на основе собранных примеров
- Экономия токенов: модель запрашивает только нужный код
- Особенно полезно для 1С — модели знают его плохо, нужен полный контекст
После реализации RAG — MCP-tool для семантического поиска по базе знаний.
Не включено в roadmap как отдельный пункт. См. Блок 5.