Ключевое изменение Phase 1: Вместо сложных дайджестов с AI-саммари, MVP фокусируется на простом подходе: фильтрация + форвардинг важных постов.
Первый MVP сможет просто фильтровать и форвардить важные посты, а сложные дайджесты и персонализация добавятся в Phase 2.
Преимущества подхода:
- Быстрый запуск - меньше зависимостей и сложности
- Полный контекст - пользователь получает оригинальные посты без изменений
- Простая реализация - используется стандартный
forward_messageAPI- Меньше AI затрат - базовая классификация без complex саммари
- Создать миграции для основных таблиц
-
telegram_users(id, username, delivery_frequency, content_format, filter_strictness, timezone) -
channels(telegram_id, username, title, description, subscribers_count) -
subscriptions(telegram_user_id, channel_id, priority, active) -
posts(channel_id, telegram_message_id, text, media_urls, published_at, is_important, importance_score, is_ad, is_duplicate_of) -
user_digests(telegram_user_id, status, scheduled_for, sent_at, posts_analyzed_count, posts_included_count) -
user_digest_items(user_digest_id, post_id, position)
-
- Добавить индексы
-
index_telegram_users_on_username(unique) -
index_channels_on_telegram_id(unique) -
index_posts_on_channel_id_and_published_at -
index_posts_on_is_important -
index_subscriptions_on_telegram_user_id_and_channel_id(unique)
-
- Запустить миграции
- Настроить telegram-bot-ruby gem
- Создать
config/initializers/telegram.rb - Создать базовый
TelegramWebhookController - Добавить routes для webhook
- Протестировать подключение к Telegram
- Настроить ruby_llm gem
- Создать
config/initializers/ruby_llm.rb - Настроить API ключи (OpenAI/Anthropic/другие)
- Создать базовый wrapper
lib/ai/classifier.rb - Протестировать подключение к AI API
- Настроить Solid Queue
- Создать конфигурацию для разных типов джобов
- Настроить приоритеты очередей
- Создать базовый ApplicationJob
- Создать
app/models/telegram_user.rb - Добавить enum для
delivery_frequency - Добавить enum для
content_format - Добавить enum для
filter_strictness - Добавить associations (has_many :subscriptions, :user_digests)
- Добавить validations
- Добавить scopes (active_telegram_users, by_delivery_time)
- Написать unit тесты
- Создать
app/models/channel.rb - Добавить associations (has_many :subscriptions, :posts)
- Добавить validations (telegram_id uniqueness)
- Добавить scopes (active_channels, by_subscribers)
- Добавить методы для работы с Telegram API
- Написать unit тесты
- Создать
app/models/subscription.rb - Добавить associations (belongs_to :telegram_user, :channel)
- Добавить validations (uniqueness, priority range)
- Добавить scopes (active, by_priority)
- Написать unit тесты
- Создать
app/models/post.rb - Добавить associations (belongs_to :channel)
- Добавить validations
- Добавить scopes (important, not_ads, unique, recent)
- Добавить методы для работы с метаданными
- Написать unit тесты
- Создать
app/models/user_digest.rb - Добавить enum для
status - Добавить associations (belongs_to :telegram_user, has_many :user_digest_items, has_many :posts through: :user_digest_items)
- Добавить validations
- Добавить scopes (pending, sent, failed)
- Написать unit тесты
- Создать
app/models/user_digest_item.rb - Добавить associations (belongs_to :user_digest, :post)
- Добавить validations
- Написать unit тесты
- Создать
app/controllers/telegram_webhook_controller.rb(используем единый контроллер вместо отдельных) - Реализовать приветственное сообщение
- Реализовать создание пользователя в БД
- Добавить краткую инструкцию по использованию
- Добавить inline кнопки для быстрого старта
- Написать integration тесты
- Создать
app/controllers/telegram/commands/channel_controller.rb(реализовано в основном контроллере) - Реализовать
/add @channelnameкоманду - Добавить валидацию канала через Telegram API
- Создать подписку в БД
- Добавить feedback пользователю (успех/ошибка)
- Написать integration тесты
- Реализовать
/listкоманду вTelegramWebhookControllerчерезSubscriptionCommandsconcern - Показать список подписок с приоритетами
- Добавить inline кнопки для управления (удалить, изменить приоритет)
- Написать integration тесты
- Реализовать
/remove @channelnameкоманду - Удалить подписку из БД
- Добавить подтверждение действия (реализовано через callback queries)
- Написать integration тесты
- Создать
app/controllers/telegram/commands/settings_controller.rb - Реализовать
/settingsкоманду - Показать текущие настройки
- Добавить inline меню для изменения:
- Частоты доставки (delivery_frequency)
- Формата контента (content_format)
- Строгости фильтрации (filter_strictness)
- Сохранять изменения в БД
- Написать integration тесты
- РЕАЛИЗОВАТЬ SettingsAgent по спецификации Spec 001:
- Создать
app/services/telegram/settings_agent.rb - Реализовать методы
show_settingsиupdate_setting - Добавить валидацию настроек и значений
- Интегрировать с TelegramWebhookController
- Написать полные unit тесты (TDD подход)
- Добавить кеширование и логирование производительности
- Создать
ПРИМЕЧАНИЕ: Упрощенная версия AI-функциональности для MVP. Полная AI-инфраструктура с персонализацией будет в Phase 2.
- Создать
app/services/content/ai_classifier.rb - Настроить базовое подключение к AI API (OpenAI/Anthropic)
- Реализовать
classify(post)с простым промптом - Базовая классификация: важно/не важно/реклама
- Сохранять результаты в
post.importance_scoreиpost.is_ad - Добавить базовое кеширование результатов
- Написать service тесты
- Добавить
importance_score(integer, 0-100) в Post модель - Добавить
is_ad(boolean) в Post модель - Добавить
classification_reasoning(text) в Post модель - Добавить индексы на новые поля
- Обновить scopes:
-
important- посты с importance_score > порога -
not_ads- посты где is_ad = false
-
- Написать unit тесты
- Создать
app/jobs/content/classify_job.rb - Вызывать AIClassifier для новых постов
- Сохранять результаты классификации
- Обрабатывать ошибки AI API с retry логикой
- Логировать базовые метрики (success rate, latency)
- Написать job тесты
- Создать
lib/telegram_client/api_wrapper.rb - Реализовать метод получения постов из канала
- Добавить обработку ошибок (rate limits, недоступность канала)
- Создать
lib/telegram_client/channel_fetcher.rb - Реализовать парсинг постов (текст, медиа, метаданные)
- Написать unit тесты
- Создать
app/jobs/channels/monitor_job.rb - Реализовать логику получения активных каналов
- Вызвать ChannelFetcher для каждого канала
- Запланировать ProcessPostJob для новых постов
- Добавить логирование
- Написать job тесты
- Настроить периодический запуск MonitorJob (каждые 5-10 минут)
- Использовать Solid Queue recurring jobs или cron
- Протестировать выполнение
- Создать
app/jobs/content/process_post_job.rb - Сохранить пост в БД
- Нормализовать контент
- Извлечь метаданные
- Запланировать ClassifyJob
- Написать job тесты
- Создать спецификацию
docs/Specs/051_FETCHPOSTJOB_TIMESTAMP_Specification.md - Создать план реализации
docs/Implementation/Spec_FETCHPOSTJOB_TIMESTAMP_Implementation.md - Создать миграцию для добавления
last_successful_update_atв Channel модель - Создать Concern
ChannelUpdatableс методами:-
mark_as_successfully_updated- обновление времени -
stale?- проверка актуальности канала -
last_update_formatted- форматированное время -
freshness_status- статус актуальности
-
- Подключить Concern к модели Channel
- Модифицировать
Channels::FetchPostsJobдля сохранения времени после успешного выполнения - Добавить локализацию в
config/locales/ru.yml - Провести тестирование функциональности
- РЕАЛИЗАЦИЯ ЗАВЕРШЕНА - время успешного обновления сохраняется для всех каналов
ПРИМЕЧАНИЕ: Простая фильтрация на основе базовой AI-классификации. Расширенная персонализация будет в Phase 2.
- Создать
app/services/content/filter.rb - Реализовать фильтрацию постов по
importance_score - Учитывать
filter_strictnessпользователя - Фильтровать рекламу (
is_ad = true) - Базовая фильтрация по ключевым словам
- Написать service тесты
- Создать
app/services/content/filtered_posts_query.rb - Реализовать получение отфильтрованных постов для пользователя
- Учитывать время последней отправки
- Применять фильтры по важности и рекламе
- Сортировать по важности и времени
- Написать service тесты
- Создать
app/services/content/filter.rb - Реализовать базовую фильтрацию постов:
- Фильтрация рекламы (простые правила + базовый AI)
- Фильтрация по ключевым словам
- Учет строгости фильтрации пользователя
- Написать service тесты
- Создать
app/services/content/forwarder.rb - Реализовать форвардинг отфильтрованных постов
- Использовать
bot.forward_messageдля отправки постов - Добавить валидацию прав доступа к каналу
- Обрабатывать ошибки (нет прав, пост удален)
- Написать service тесты
- Создать
app/jobs/content/deliver_posts_job.rb - Получить отфильтрованные посты для пользователя
- Отправить посты через forwardMessage в формате списка
- Обработать ошибки (нет прав, пост удален, канал недоступен)
- Добавить retry логику для временных ошибок
- Написать job тесты
- Создать
app/services/content/scheduler.rb - Реализовать логику определения времени отправки
- Учитывать delivery_frequency пользователя
- Учитывать timezone пользователя
- Планировать DeliverFilteredPostsJob для пользователей
- Написать service тесты
- Настроить периодический запуск ContentScheduler (каждый час)
- Протестировать автоматическую отправку отфильтрованных постов
- Создать
app/controllers/telegram/commands/content_controller.rb - Реализовать
/contentкоманду (получить новые посты сейчас) - Запустить DeliverFilteredPostsJob немедленно
- Отправить отфильтрованные посты пользователю
- Добавить feedback (успех/пусто/нет новых постов)
- Написать integration тесты
- Создать
app/controllers/telegram/commands/help_controller.rb - Реализовать
/helpкоманду - Показать список всех доступных команд
- Добавить краткое описание функционала
- Написать integration тесты
- Создать
app/services/telegram/commands_scanner.rb - Реализовать автоматическое сканирование контроллеров и concerns
- Извлекать методы команд (заканчивающиеся на
!) - Определять пользовательские и административные команды
- Получать описания из локализации
- Написать unit тесты
- Создать
app/services/telegram/commands_manager.rb - Реализовать установку команд через Telegram Bot API
- Добавить валидацию формата команд
- Обработку ошибок API и логирование
- Синхронизацию команд при необходимости
- Написать unit тесты
- Добавить команду
/set_commandsв TelegramWebhookController - Добавить callback
show_commandsдля просмотра команд - Реализовать защиту прав доступа (только для администраторов)
- Добавить клавиатуру для управления командами
- Написать integration тесты
- Создать
lib/tasks/telegram.rake - Реализовать задачи
telegram:set_commands,telegram:show_commands - Добавить валидацию
telegram:validate_commands - Добавить синхронизацию
telegram:sync_commands - Добавить комплексную настройку
telegram:setup - Поддержка DRY_RUN模式和 переменных окружения
- Добавить описания команд в
config/locales/ru.yml - Создать ключи для всех команд (start, help, settings, add, remove, list, debug, channels, set_commands)
- Добавить локализацию для сообщений об успехе/ошибках
- Обновить help команду с новыми административными командами
- Создать спецификацию
docs/Specs/045_Telegram_Bot_Commands_Specification.md - Создать документацию реализации
docs/Implementation/Spec_045_Telegram_Bot_Commands_Implementation.md - Обновить ROADMAP с выполненными задачами
- Создать comprehensive тесты для всех компонентов
- Создать спецификацию
docs/Specs/010_Special_Commands_for_Follower_User_Management_Specification.md - Создать план реализации
docs/Implementation/Spec_010_Special_Commands_for_Follower_User_Management_Implementation.md - Добавить gem
phonelibдля валидации номеров телефонов - Создать
app/controllers/concerns/telegram/follower_user_commands.rb - Реализовать 4 команды:
/fadd,/fremove,/flist,/fconfirm - Настроить валидацию и нормализацию телефонных номеров через Phonelib
- Реализовать проверку прав доступа (только для администраторов)
- Создать unit и integration тесты для всех команд
- Обновить локализацию сообщений в
config/locales/ru.yml - РЕАЛИЗАЦИЯ ЗАВЕРШЕНА - все команды работают корректно, тесты проходят
- Настроить глобальный rescue для контроллеров
- Добавить логирование ошибок
- Настроить уведомления об ошибках (опционально: Bugsnag)
- Добавить user-friendly сообщения об ошибках
- Настроить structured logging (JSON)
- Добавить correlation IDs
- Логировать все API запросы (Telegram, AI)
- Логировать выполнение jobs
- Написать end-to-end тест: онбординг → добавление канала → получение дайджеста
- Написать тесты для всех bot команд
- Протестировать error scenarios
- Обновить README с инструкциями по настройке
- Документировать все environment variables
- Создать примеры использования команд
- Настроить production environment
- Настроить credentials для API ключей
- Настроить database для production
- Настроить Solid Queue workers
- Задеплоить на production (Kamal/Heroku/VPS)
- Протестировать бота в production
- Настроить мониторинг (uptime, logs)
✅ УСПЕШНО ВЫПОЛНЕНО: Полная миграция с tdlib-ruby на telegram-mtproto-ruby. Все проблемы с зависимостями решены.
🎯 Результат: telegram-mtproto-ruby работает в production, обеспечивая доступ к Telegram через pure MTProto 2.0.
🚀 Преимущества: Нет конфликтов зависимостей, совместимость с Rails 8, production-ready решение.
- Обновить
app/models/concerns/telegram_credentials.rbдля MTProto сессий - Создать
create_mtproto_sessionметод с реальными данными сессии- Сохранять
api_id,api_hash,phone_number,created_atв JSON - Использовать зашифрованные поля для безопасности
- Сохранять
- Создать
restore_mtproto_sessionметод для восстановления сессий- Парсинг JSON и обработка ошибок
- Graceful degradation при поврежденных данных
- Создать
save_mtproto_sessionметод с поддержкой форматов (Hash/String) - Создать
clear_mtproto_sessionметод для очистки сессий
- Добавить валидацию MTProto сессий
- Создать
has_valid_mtproto_session?метод проверки обязательных полей - Создать
session_created_atметод для отслеживания времени создания - Создать
session_expired?метод (сессии истекают через 24 часа) - Создать
refresh_session_if_neededметод для автоматического обновления
- Сохранить TDLib методы с депрекационными предупреждениями
-
create_tdlib_session→ вызываетcreate_mtproto_sessionс warning -
restore_tdlib_session→ вызываетrestore_mtproto_sessionс warning -
save_tdlib_session→ вызываетsave_mtproto_sessionс warning -
clear_tdlib_session→ вызываетclear_mtproto_sessionс warning
- Создать комплексные тесты для MTProto функциональности
- Создать
test/models/concerns/telegram_credentials_mtproto_test.rb- Тесты создания/восстановления/валидации сессий
- Тесты управления сроком жизни сессий
- Тесты backward compatibility
- Тесты обработки ошибок
- Создать
test/integration/telegram_credentials_integration_test.rb- Полный цикл работы с сессиями
- Интеграция с ApplicationConfig
- Создать документацию реализации
- Создать
docs/Implementation/MTProto_Session_Management_Implementation.md- Описание всех методов и форматов
- Инструкции по интеграции с telegram-mtproto-ruby
- Результаты тестирования и рекомендации
- Проверить интеграцию с существующими MTProto сервисами
- Проверить совместимость с
Telegram::UserClientMtproto - Проверить совместимость с
Telegram::AuthorizationServiceMtproto - Валидировать формат сессий для telegram-mtproto-ruby gem
- Полная замена tdlib-ruby на telegram-mtproto-ruby в production
- Обновлена архитектурная документация (C4 модель)
- Обновлена MTProto документация с актуальными данными
- Создана итоговая документация по миграции
- Все тесты проходят, система работает в production 24/7
🎉 Миграция на MTProto-ruby успешно завершена!
- ✅ Все проблемы с зависимостями решены
- ✅ Система работает в production через pure Ruby MTProto 2.0
- ✅ Полная совместимость с Rails 8
- ✅ Комплексная документация обновлена
- ✅ Тестовый coverage 100% для MTProto компонентов
ВАЖНО: Расширенная AI-инфраструктура для персонализации на основе истории пользователя.
- Установить ruby_llm Rails integration:
rails generate ruby_llm:install - Расширить существующую таблицу
chats- Добавить
telegram_user_id(foreign key) - Добавить
session_type(enum: classification, summarization, personalization, digest_generation) - Добавить
status(enum: active, archived) - Добавить
context(jsonb для хранения контекста сессии)
- Добавить
- Обновить модель
Chat(уже используетacts_as_chat)- Добавить связь
belongs_to :telegram_user - Добавить enum для session_type и status
- Добавить store_accessor для context
- Добавить связь
- Добавить индексы:
-
index_chats_on_telegram_user_id_and_session_type -
index_chats_on_status -
index_chats_on_context(GIN)
-
- Написать unit тесты для расширенной модели Chat
- Добавить
has_many :chatsв TelegramUser модель - Реализовать
chat_for(type)- получить или создать чат - Реализовать
build_initial_context- построить начальный контекст - Реализовать
recent_feedback_summary- сводка последнего фидбека - Написать unit тесты для новых методов
- Создать
app/services/ai/chat_manager.rb - Реализовать
with_contextблок для работы с чатом - Реализовать управление контекстным окном (sliding window)
- Реализовать выбор важных сообщений из истории
- Реализовать архивацию старых сообщений (> 90 дней)
- Реализовать compacting истории для больших чатов (> 100 сообщений)
- Написать service тесты
- Создать базовый
app/schemas/base_schema.rb - Создать
app/schemas/post_classification_schema.rb-
importance_score(number, 0-100) -
is_ad(boolean) -
is_fluff(boolean) -
reasoning(string) -
topics(array of strings) -
duplicate_check(object: is_likely_duplicate, similarity_score)
-
- Создать
app/schemas/summary_schema.rb - Создать
app/schemas/duplicate_detection_schema.rb - Написать тесты для всех схем
- Создать базовый
app/tools/base_tool.rb - Создать
app/tools/classify_post_tool.rb- Определить параметры (importance_score, is_ad, is_fluff, topics, reasoning)
- Реализовать метод
execute
- Создать
app/tools/detect_duplicate_tool.rb - Создать
app/tools/extract_topics_tool.rb - Написать тесты для всех инструментов
- Создать
app/services/ai/context_builder.rb - Реализовать
system_promptдля разных типов сессий - Реализовать
relevant_history- выбор релевантных сообщений - Реализовать стратегии:
- Sliding window (последние N сообщений)
- Importance-based (важные сообщения)
- Few-shot examples (примеры из фидбека)
- Реализовать
feedback_context- контекст из фидбека пользователя - Реализовать
analyze_feedback_patterns- анализ паттернов - Добавить кеширование построенного контекста
- Написать service тесты
- Обновить Post модель для использования JSONB поля
classification_data - Добавить массив
topics(jsonb array) - Добавить
classification_reasoning(text) - Добавить
classified_by_session_id(foreign key к Chat) - Добавить GIN индексы на JSONB и array поля
- Обновить scopes для работы с JSONB:
-
important- использоватьclassification_data->>'importance_score' -
not_ads- использоватьclassification_data->>'is_ad' -
by_topic- использоватьtopics && ARRAY[?]
-
- Написать unit тесты
- Создать
app/jobs/ai/cleanup_chats_job.rb - Реализовать архивацию неактивных чатов (> 90 дней)
- Реализовать удаление старых архивных чатов (> 180 дней)
- Реализовать compacting больших активных чатов
- Настроить периодический запуск (раз в день)
- Написать job тесты
- Создать
Deduplication Service - Использовать AI embeddings для поиска похожих постов
- Реализовать кластеризацию дубликатов
- Выбирать лучший вариант из дубликатов
- Обновить Post модель (is_duplicate_of)
ВАЖНО: Эта фаза использует AI Sessions для персонализации Использует накопленную историю для улучшения классификации
- Создать
app/models/feedback.rb - Добавить belongs_to :telegram_user, :post
- Добавить enum sentiment: { dislike: -1, neutral: 0, like: 1 }
- Добавить after_create callback для обновления AI Session
- Реализовать метод
update_personalization_session - Добавить индексы на telegram_user_id, post_id, created_at
- Написать unit тесты
- Создать
app/controllers/telegram/commands/feedback_controller.rb - Добавить inline кнопки 👍/👎 к форварднутым постам
- Реализовать обработку callback queries
- Сохранить feedback в БД
- Запланировать PersonalizationUpdateJob
- Отправить подтверждение пользователю
- Написать integration тесты
- Добавить метод
add_feedback_example(post, feedback)в Chat - Хранить последние 20 примеров фидбека в metadata['feedback_examples']
- Обновлять updated_at при добавлении фидбека
- Написать unit тесты
- Создать
app/services/personalization/few_shot_builder.rb - Реализовать
build_examples- построение few-shot примеров - Сбалансировать liked и disliked примеры (по 5 каждого)
- Форматировать примеры в user/assistant пары
- Написать service тесты
- Создать
app/jobs/personalization_update_job.rb - Получить Chat персонализации для пользователя
- Проанализировать новый фидбек через AI
- Обновить понимание предпочтений в истории чата
- Обновить UserPreference если нужно
- Написать job тесты
- Создать
app/models/user_preference.rb - Добавить belongs_to :telegram_user
- Добавить JSONB поля для хранения:
-
topic_weights- персональные веса тем -
channel_weights- веса каналов -
adjusted_importance_threshold- динамический порог важности -
personalization_data- дополнительные данные персонализации
-
- Реализовать
initialize_topic_weights - Реализовать
adjust_topic_weight(topic, feedback) - Реализовать
weighted_importance_score(post)- пересчет оценки - Добавить индексы на topic_weights, channel_weights (GIN)
- Написать unit тесты
- Создать
app/services/personalization/threshold_adjuster.rb - Реализовать
adjusted_threshold- динамическая корректировка - Реализовать
base_threshold_for_strictness- базовые пороги - Реализовать
calculate_personal_adjustment- анализ фидбека - Учитывать паттерны лайков/дизлайков за последние 7 дней
- Корректировка порога на основе несоответствий
- Написать service тесты
- Обновить AIClassifier для использования Few-Shot Builder
- Добавлять few-shot примеры в контекст перед классификацией
- Использовать ThresholdAdjuster для динамических порогов
- Использовать UserPreference.weighted_importance_score
- Логировать влияние персонализации на оценки
- Написать integration тесты
- Создать
app/services/personalization/feedback_analyzer.rb - Реализовать анализ паттернов фидбека:
- Топ понравившихся тем
- Топ отклоненных тем
- Средняя оценка понравившихся постов
- Correlation между AI-оценкой и фидбеком
- Использовать результаты в ContextBuilder
- Написать service тесты
- Протестировать полный flow персонализации:
- Пользователь дает фидбек (лайк/дизлайк)
- Feedback сохраняется и обновляет Chat
- PersonalizationUpdateJob обрабатывает фидбек
- Следующая классификация учитывает фидбек
- Оценки постов изменяются на основе истории
- Протестировать улучшение точности:
- Measure correlation до персонализации
- Measure correlation после 10+ фидбеков
- Verify improvement > 15%
- Создать
StatsController(/stats команда) - Показывать статистику пользователя:
- Количество подписок
- Всего постов проанализировано
- Отфильтровано постов
- Постов получено
- Создать
Analytics Serviceдля сбора метрик
- Создать
DigestBuilder Serviceдля генерации дайджестов - Создать
UnifiedDigestFormatter(единый саммари всех постов) - Создать
ComboFormatter(топ-3 + саммари остальных) - Добавить группировку по темам в дайджесте
- Реализовать опцию в настройках: форвардинг ИЛИ дайджесты
- Создать
ChannelRecommendation Model - Создать
Recommendation Service - Построить социальный граф каналов (collaborative filtering)
- Создать
DiscoverController(/discover команда) - Показывать рекомендованные каналы
- Добавить классификацию постов по темам (AI)
- Создать
TopicPreference Model - Позволить пользователям выбирать интересные темы
- Фильтровать дайджесты по темам
- Dashboard для администратора
- Метрики:
- DAU/MAU
- Retention rate
- Top channels
- AI classification accuracy
- Visualizations
- Создать A/B тестирование framework
- Тестировать разные форматы дайджестов
- Тестировать разные стратегии ранжирования
- Обучить собственную модель предсказания предпочтений
- Использовать для ранжирования вместо простых правил
- Определение языка постов
- Перевод дайджестов (опционально)
- Локализация bot интерфейса
- Web dashboard для пользователей
- Управление настройками через web
- Просмотр истории дайджестов
- Расширить модели для поддержки разных типов источников:
- Обновить
Channelмодель вSourceсsource_type(enum: channel, group, chat) - Добавить специфичные поля для групп и чатов
- Обновить систему подписок на универсальные источники
- Обновить
- Адаптировать мониторинг для групп и чатов
- Настроить разные стратегии фильтрации для разных типов источников
- Создать
GroupMessageAnalyzer Service - AI-анализ сообщений в группах:
- Определение важных обсуждений
- Фильтрация оффтопных сообщений и флуда
- Выделение ключевых участников дискуссии
- Суммаризация длинных тредов
- Адаптировать классификацию под групповую динамику
- Обучить модель распознавать структурную информацию в группах
- Создать
ChatContextAnalyzer Service - Анализ контекста чата для определения релевантности
- Умное отслеживание упоминаний пользователя
- Фильтрация личных сообщений и общих обсуждений
- Адаптация под приватные и публичные чаты
- Обновить UI для управления разными типами источников
- Разные настройки фильтрации для каналов, групп и чатов
- Единая статистика по всем типам источников
- Рекомендации на основе анализа всех источников