digestors.

Понятно, практично, по делу

Сравнения и выбор

Локальный суммаризатор новостей: как читать дайджесты без облака

Как читать дайджесты без облака, если не хочется отправлять каждую статью, рабочую переписку и список интересов неизвестно куда?

Локальный суммаризатор новостей: как читать дайджесты без облака

Самый практичный ответ сегодня — собрать локальный контур из RSS-агрегатора и языковой модели, которая работает на вашем компьютере. Интернет при этом всё равно понадобится: новости нужно получить из RSS-лент и открыть полный текст материалов. Но сама обработка — извлечение содержания, фильтрация повторов, краткое резюме и отправка уведомлений — может оставаться внутри вашей инфраструктуры.

На пальцах схема выглядит так: RSS-ридер собирает публикации, локальная модель через Ollama или LM Studio читает текст, а затем выдаёт короткую выжимку по вашим правилам. Не «всё самое важное в мире», а именно то, что нужно вам: изменения в отраслевых законах, релизы конкретных продуктов, новости компаний, инциденты безопасности или, например, только материалы на русском языке.

Я проверила, какие инструменты для этого уже существуют, где заканчивается приватность и начинаются подводные камни, а также почему маленькая модель не всегда означает удачную экономию. Давайте разберёмся без корпоративного тумана — его и так хватает в интерфейсах некоторых сервисов.

Как устроен локальный новостной дайджест

Ключевой момент: локальный суммаризатор — это не волшебная кнопка «сделать интернет приватным». У системы есть несколько разных этапов, и каждый из них заслуживает отдельного внимания.

1. Сбор новостей

RSS-агрегатор регулярно обращается к источникам и получает новые записи. В RSS обычно есть заголовок, дата, ссылка и короткий фрагмент текста. Иногда этого достаточно для первичной сортировки, но для нормального резюме нужен полный материал.

Именно здесь появляются первые ограничения:

  • сайт может отдавать только лид, а не весь текст статьи;
  • публикация может загружаться JavaScript-скриптами;
  • часть страниц закрыта авторизацией или платной подпиской;
  • один и тот же материал может прийти из нескольких лент;
  • заголовок и описание иногда не совпадают с содержанием страницы.

Поэтому хороший локальный дайджест должен уметь не только читать RSS, но и извлекать основной текст веб-страницы, очищая его от меню, рекламы, комментариев и прочей цифровой шелухи.

2. Дедупликация

Если вы подписаны на несколько отраслевых лент, одна новость легко появится пять раз. В облачном сервисе повторения иногда скрываются автоматически, но в self-hosted-системе эту логику нужно либо настроить, либо выбрать инструмент, где она уже предусмотрена.

Обычно сравниваются ссылка, заголовок, дата публикации и текстовый отпечаток материала. У продвинутых сценариев может быть ещё и смысловая дедупликация: система понимает, что «компания X выпустила отчёт» и «новый финансовый отчёт компании X» — почти одна и та же история, даже если формулировки разные.

3. Фильтрация по вашим правилам

Здесь локальная модель особенно полезна. Вместо десятка переключателей вы задаёте предпочтение обычной фразой: «Показывай новости о регулировании ИИ в Евросоюзе, но не включай рекламные релизы и общие колонки о будущем технологий».

Newsku, например, использует локальные или облачные языковые модели для сортировки новостей по важности на основе предпочтений, заданных естественным языком. В числе протестированных моделей упоминается GPT OSS 20B, но выбор не ограничивается одним вариантом.

4. Суммаризация

Только после фильтрации текст отправляется в локальную LLM. Она может создать:

  • одно предложение с сутью новости;
  • краткий пересказ в нескольких пунктах;
  • объяснение последствий для конкретной отрасли;
  • список фактов, цифр и участников;
  • сравнение новой публикации с предыдущими материалами;
  • подборку связанных статей за день.

И вот здесь качество зависит уже не только от инструмента, но и от модели, объёма текста, настроек контекста и формулировки задания. Модель не обязана «понимать новости» в человеческом смысле. Она обрабатывает то, что вы ей передали, и иногда очень уверенно делает вывод из неполного текста — классический цифровой фокус с исчезнувшей серединой статьи.

Локальная обработка защищает данные от передачи облачному провайдеру, но не отменяет необходимость проверять первоисточник: приватность и достоверность — разные задачи.

5. Доставка результата

Готовый дайджест можно оставить в интерфейсе ридера, записать в локальную базу или отправить в привычный канал. В зависимости от инструмента это могут быть Matrix, Slack, Jira, ntfy или собственный веб-интерфейс.

Полезно разделять уведомления по срочности. Иначе локальная система будет очень честно присылать вам двадцать семь «важных» новостей в день, пока вы не начнёте ненавидеть саму идею автоматизации.

Какие инструменты выбрать для self-hosted-сценария

Универсального победителя здесь нет. Одному человеку нужен аккуратный RSS-ридер с локальными резюме, другому — скрипт, который запускается по расписанию на домашнем сервере. Я бы выбирала не по количеству упоминаний ИИ в описании, а по тому, какую часть процесса вы хотите контролировать самостоятельно.

IntelliDeck: когда нужен полноценный ридер

IntelliDeck, ранее известный как RSS Deck, — self-hosted RSS-ридер с поддержкой локальной суммаризации через Ollama. В начале 2026 года проект получил новое имя, нативное приложение для macOS на Electron и поддержку нескольких AI-провайдеров: Ollama, OpenAI, Anthropic, Gemini, Minimax и Kimi.

Это важная деталь: система не запирает вас в одном режиме. Можно использовать локальную модель для чувствительных источников, а для отдельных задач подключать облачный сервис — если вас устраивают его политика хранения данных и стоимость.

IntelliDeck подойдёт, если вы хотите:

  • читать ленты в едином интерфейсе;
  • генерировать краткие описания новостей;
  • переключаться между локальными и облачными моделями;
  • не собирать весь процесс из нескольких независимых скриптов;
  • пользоваться приложением на macOS, а не только браузером или терминалом.

Его слабое место — типичный для self-hosted-проектов порог входа. «Установить и забыть» может не получиться: придётся разобраться с самим ридером, Ollama, моделью и доступом к полному тексту статей.

Precis: для дайджеста с несколькими каналами доставки

Precis — расширяемый self-hosted RSS-ридер с поддержкой ИИ. Он использует локальные модели через Ollama для суммаризации и синтеза информации, а результаты умеет отправлять в Matrix, Slack, Jira и ntfy. Проект появился в декабре 2024 года.

Precis интересен не столько красивой выжимкой одной статьи, сколько маршрутизацией. Например, новости о безопасности можно отправлять в отдельную комнату Matrix, релизы инструментов — в рабочий канал Slack, а срочные сообщения — через ntfy на телефон.

Такой подход особенно удобен, когда дайджест должен быть частью рабочего процесса, а не ещё одной вкладкой, которую вы будете открывать «с понедельника». Новости не просто складываются в ленту, а попадают туда, где вы уже принимаете решения.

ShunyaNet Sentinel: если хочется тематический фильтр

ShunyaNet Sentinel — лёгкий self-hosted RSS-агрегатор с заметной киберпанк-эстетикой. Он собирает ленты и передаёт их локально запущенной модели через LM Studio или Ollama, чтобы анализировать публикации по заданным темам. Результаты доступны в графическом интерфейсе или могут уходить в Slack.

Это вариант для тех, кому нужен не просто пересказ, а тематический радар. Вы задаёте направления наблюдения, и система помогает вытащить из общего потока материалы, относящиеся к этим темам.

При этом стоит помнить о настройках фильтра. Если описать тему слишком широко, агрегатор будет считать релевантным почти всё. Формулировка «новости об искусственном интеллекте» быстро превращается в бесконечный поток. Гораздо лучше работают ограничения по рынку, региону, типу события и исключениям.

ИнструментСильная сторонаЛокальная обработкаКому подойдёт
IntelliDeckПолноценный RSS-ридер и переключение между провайдерамиOllama и другие вариантыТем, кто хочет единый интерфейс для чтения и суммаризации
NewskuСортировка по текстовым предпочтениям пользователяЛокальные модели, включая Qwen и GPT OSS 20BТем, кому важнее приоритизация, чем просто короткий пересказ
PrecisСинтез информации и уведомления в разных каналахOllamaКомандам и пользователям с несколькими каналами доставки
ShunyaNet SentinelАнализ новостей по темамLM Studio или OllamaТем, кто строит тематический мониторинг
FreshRSS с расширениемРабота поверх привычного RSS-ридераOllama через локальное расширениеТем, кто уже использует FreshRSS и не хочет менять интерфейс
ShortNewsКраткое содержание и озвучиваниеOllama, по умолчанию gemma:2bТем, кто предпочитает слушать дайджест
Скрипты и CLIПолный контроль над логикойOllama APIПользователям, готовым настраивать процесс самостоятельно

Ollama и локальная модель: что происходит внутри

Ollama выступает локальным API-слоем: приложения обращаются к нему, передают текст и получают ответ модели. Для пользователя это выглядит проще, чем самостоятельное управление всеми файлами и параметрами, но ресурсы компьютера никуда не исчезают.

Модели отличаются размером, скоростью и качеством. Для коротких заметок может хватить небольшой модели, особенно если задача ограничивается форматом «одно предложение и три ключевых факта». Но когда нужно пересказать длинный аналитический текст, отделить мнение автора от подтверждённых данных или сопоставить несколько публикаций, запас качества становится заметен.

С маленькой моделью чаще встречаются такие проблемы:

1. Она теряет контекст. В начале статьи упоминается причина события, в конце — оговорка, а в резюме остаётся только громкий вывод.

2. Она сглаживает неопределённость. Формулировка «компания рассматривает возможность» превращается в «компания запустит». Для новостей это не мелочь, а подмена факта прогнозом.

3. Она путает участников. Особенно если в тексте несколько компаний, ведомств или похожих названий.

4. Она плохо работает с числами. Даты, проценты, суммы и сравнения требуют отдельной проверки, даже если итоговый текст звучит убедительно.

5. Она делает слишком общие выводы на русском языке. Точные характеристики русскоязычных моделей малого размера для сложных новостных текстов нельзя считать установленными заранее: результат нужно проверять на собственной подборке материалов.

Поэтому начинать лучше не с вопроса «какая модель самая мощная», а с тестового набора. Возьмите двадцать новостей из своих источников: короткие заметки, длинные статьи, тексты с таблицами, интервью, материалы с несколькими обновлениями. Прогоните их через выбранную модель и сравните не литературность, а полезность:

  • сохранился ли главный факт;
  • не исчезли ли ограничения и оговорки;
  • правильно ли переданы числа;
  • понятно ли, почему новость может быть важна;
  • отличает ли модель новость от рекламного сообщения;
  • не повторяет ли она заголовок вместо пересказа.
Хороший локальный дайджест — это не тот, который пишет красивее всех. Это тот, после которого вы понимаете, какую новость открыть целиком, а какую спокойно пропустить.

FreshRSS, расширения и собственные скрипты

Если у вас уже есть FreshRSS, необязательно переезжать на новый ридер. Для него существует расширение xExtension-OllamaSummarizer, которое автоматически создаёт суммаризации и теги для записей RSS локально.

Расширение использует Chrome DevTools Protocol через WebSocket, чтобы извлекать полный текст статьи и отправлять его в Ollama. Для этого применяется удалённая отладка Chrome, обычно через порт 9222. Смысл такого решения понятен: RSS-запись часто содержит недостаточно текста, поэтому браузер открывает страницу и помогает получить содержимое целиком.

Но именно здесь особенно легко споткнуться о технические детали:

  • браузер должен быть запущен с разрешённой удалённой отладкой;
  • страница должна открываться без ручного ввода данных;
  • сайты с жёсткой защитой от автоматического доступа могут не отдать текст;
  • лишние элементы страницы иногда попадают в контекст модели;
  • при большом количестве источников браузерный способ может оказаться тяжелее прямого извлечения текста.

Для более минималистичного подхода подойдут командные инструменты. summarize.sh умеет извлекать чистый текст и создавать локальные резюме для веб-страниц, файлов и транскриптов YouTube через API Ollama. Интернет потребуется для загрузки исходного материала, но само содержимое не обязано уходить в облако.

Есть и Python-скрипт ollama-feed-summarizer. Он асинхронно собирает RSS-ленты, извлекает полный текст статей, удаляет дубли через SQLite и создаёт суммаризации локально. Параллельное выполнение можно настраивать, а значит, система способна работать по расписанию и обрабатывать заметный поток без ручного запуска каждой операции.

Какой вариант выглядит разумно

Я бы разделила выбор так:

  • FreshRSS + расширение — если ридер уже настроен и вы хотите добавить к нему резюме;
  • IntelliDeck или Precis — если нужен готовый интерфейс и меньше самостоятельной сборки;
  • Newsku — если главная боль заключается в сортировке по приоритету;
  • ShunyaNet Sentinel — если вы следите за конкретными темами и хотите тематические отчёты;
  • Python-скрипт или CLI — если у вас есть свои правила, расписание, база и желание всё это контролировать;
  • ShortNews — если дайджест удобнее слушать, чем читать.

ShortNews объединяет Ollama и PiperTTS: приложение получает новости из RSS, создаёт краткое содержание и озвучивает его. По умолчанию используется модель gemma:2b, а результаты сохраняются в локальной базе SQLite. Это хороший сценарий для дороги или домашних дел, но к качеству короткой модели здесь стоит относиться особенно внимательно: в аудио вы не видите исходный заголовок и не можете одним взглядом заметить, что система что-то перепутала.

Приватность: что локальность действительно меняет

Локальная LLM уменьшает количество данных, которые уходят стороннему поставщику. Это особенно полезно, если вы анализируете не только открытые новости, но и внутренние документы, платные материалы или ленты, доступ к которым связан с рабочей учётной записью.

Однако слово «локальный» не должно превращаться в рекламную наклейку. Интернет всё равно нужен:

  • для загрузки RSS;
  • для открытия полных текстов;
  • для получения обновлений;
  • иногда — для проверки доступности источника;
  • для отправки уведомлений в Slack, Jira или другие внешние каналы.

Если дайджест отправляется в Slack, итоговый текст покидает ваш компьютер, даже если сама суммаризация выполнялась локально. Если уведомления идут в ntfy на телефон, нужно отдельно разобраться, где расположен сервер и кто может видеть сообщения. А если в системе подключён облачный провайдер как резервный вариант, часть данных может отправиться туда автоматически при сбое локальной модели.

Перед запуском я бы прошлась по четырём вопросам:

  • где хранится исходный текст статей;
  • где сохраняются готовые резюме и теги;
  • какие каналы получают уведомления;
  • есть ли резервный AI-провайдер и включается ли он без явного подтверждения.

Самый частый провал приватности происходит не внутри Ollama, а на последнем шаге — когда аккуратно обработанный локально текст уезжает в привычный внешний мессенджер.

Настройка дайджеста без облака: практический маршрут

Не нужно сразу строить систему, которая читает весь интернет, классифицирует новости по двадцати темам и присылает голосовые отчёты каждые полчаса. Такой проект быстро превращается в домашний филиал корпоративной бюрократии.

Начните с узкого контура.

Шаг 1. Выберите десять–двадцать источников

Берите ленты, которые вы действительно читаете. Не добавляйте всё подряд «на будущее»: RSS-агрегатор очень быстро превращает это будущее в склад непрочитанных записей.

Разделите источники хотя бы на три группы:

  • обязательные — новости, которые нельзя пропустить;
  • полезные — материалы для регулярного мониторинга;
  • фоновые — публикации, которые интересно просматривать иногда.

Так модель сможет по-разному обрабатывать материалы, а уведомления не будут одинаково громкими для каждого заголовка.

Шаг 2. Установите Ollama или LM Studio

Выберите среду, которую поддерживает ваш ридер. IntelliDeck, Precis и ряд других решений используют Ollama, а ShunyaNet Sentinel умеет работать также с LM Studio.

Заранее приготовьте свободное место под модели и не рассчитывайте, что любой компьютер одинаково быстро справится с длинными текстами. Скорость зависит от железа, размера модели, длины контекста и количества материалов, отправленных на обработку одновременно.

Шаг 3. Начните с одной задачи

Например: «Сделай резюме новости в трёх предложениях, назови участников, сохрани все числа и отдельно укажи, если в статье есть только прогноз или неподтверждённое заявление».

Такой запрос полезнее, чем расплывчатое «расскажи главное». В нём сразу есть требования к форме и защита от самой неприятной ошибки — превращения предположения в факт.

Шаг 4. Настройте фильтр

Опишите не только интересы, но и исключения. Формула может быть такой:

  • тема;
  • география;
  • отрасль;
  • тип события;
  • нежелательные форматы;
  • нужный уровень срочности.

Например: «Показывай изменения в регулировании генеративного ИИ в Евросоюзе и Великобритании. Исключай рекламные анонсы, вакансии и общие колонки без новых фактов. Высокий приоритет ставь материалам с опубликованными документами, датами вступления правил в силу и комментариями регуляторов».

Шаг 5. Проверьте модель на ошибках

Сравнивайте резюме с оригиналом, особенно там, где есть числа, отрицания и юридические формулировки. Не надо проверять каждую запятую, но главный факт и его степень определённости должны совпадать.

Если модель систематически путает выводы, попробуйте:

  • сократить исходный текст;
  • разделить длинную статью на фрагменты;
  • попросить сначала выделить факты, а потом сделать резюме;
  • снизить число параллельных задач;
  • использовать более крупную модель;
  • добавить в запрос прямой запрет на додумывание.

Шаг 6. Только потом подключайте уведомления

Сначала добейтесь, чтобы лента и суммаризация работали стабильно. После этого подключайте Matrix, Slack, Jira, ntfy или аудиовывод через PiperTTS.

Иначе вы получите не автоматизацию, а автоматическую рассылку ошибок. Разница небольшая только на словах.

Где локальный подход проигрывает облачным сервисам

Локальная суммаризация не является безусловно лучшей. Она выигрывает в контроле и приватности, но требует времени, ресурсов и готовности самостоятельно разбираться с настройками.

Облачные модели обычно удобнее в трёх ситуациях:

1. Нужно быстро обработать сложный материал. У коммерческих моделей часто больше контекст и выше качество работы с длинными текстами.

2. Нет подходящего компьютера или сервера. Точные системные требования для запуска локальных моделей на Android и iOS без ПК в качестве сервера зависят от конкретного сценария и не сводятся к одной универсальной цифре.

3. Нужна минимальная настройка. Подписка на сервис может оказаться дешевле по времени, даже если дороже по деньгам.

Локальная модель малого размера не гарантирует качество на уровне коммерческих систем вроде GPT-4o или Claude 3.5 Sonnet. Это нельзя честно обещать только потому, что модель запускается на вашем компьютере. Зато локальный вариант даёт другой тип контроля: вы сами решаете, какие данные обрабатываются, где они лежат и какие правила действуют для каждой группы источников.

Сравнивать нужно не абстрактную «умность», а конкретный рабочий результат.

ЗадачаЛокальный сценарийОблачный сервис
Короткая выжимка RSS-записиОбычно достаточен при хорошем шаблонеБыстро и удобно
Анализ длинного отчётаМожет потребовать мощной модели и предварительной разбивкиЧасто проще из-за большого контекста
Обработка чувствительных данныхБольше контроля внутри своей инфраструктурыНужно изучать правила хранения и использования данных
Настройка фильтровТребует самостоятельной конфигурацииОбычно есть готовые параметры
Работа без интернетаНовости всё равно нужно сначала получитьЗависит от сервиса, но чаще тоже нужен доступ
Массовая обработкаОграничена ресурсами локального компьютераМасштабируется проще, но может стоить дороже
Интеграция с собственными системамиГибкая при наличии API и навыковЗависит от доступных интеграций

Как не превратить дайджест в ещё один источник шума

Главная цель суммаризатора — не уменьшить количество слов любой ценой. Если после обработки вы всё равно открываете каждую статью, потому что не понимаете, что произошло, автоматизация не справилась.

У хорошего дайджеста должны быть разные уровни глубины:

  • заголовок и одна строка — чтобы быстро пройти поток;
  • три–пять предложений — чтобы понять суть;
  • ключевые факты и источник — чтобы принять решение об открытии;
  • полный текст — когда новость действительно требует внимания.

Не смешивайте в одну ленту срочные события, аналитические материалы и лёгкие новости. Для каждой категории задайте свой формат. Срочная заметка должна отвечать на вопросы «что случилось», «кто участвует» и «что изменилось». Аналитика — показывать тезис, аргументы и ограничения. Обзор — помогать решить, стоит ли читать его целиком.

Ещё один полезный приём — добавлять к каждому резюме отметку уверенности не в виде загадочного процента, а обычной фразой: «в статье подтверждено документом», «источник ссылается на заявление», «это прогноз автора». Модель не всегда сможет определить это идеально, но сама структура запроса заставит её внимательнее относиться к формулировкам.

И обязательно оставляйте ссылку на исходную публикацию. Локальный суммаризатор должен быть фильтром, а не заменой первоисточника. В новостях одна потерянная оговорка иногда меняет смысл всего текста — как в договоре, только без шрифта размером с муравья.

Что выбрать в итоге

Если вам нужно проверить, можно ли читать дайджесты без облака, не начинайте с построения сложной системы. Возьмите несколько RSS-лент, установите Ollama, подключите небольшой self-hosted-ридер и протестируйте двадцать реальных материалов. Уже через вечер станет понятно, хватает ли выбранной модели, как часто ломается извлечение полного текста и не превращаются ли ваши фильтры в сито с дырками размером с новостной портал.

Для готового интерфейса подойдут IntelliDeck или Precis. Если важнее сортировка по смысловым предпочтениям, присмотритесь к Newsku. Для тематического мониторинга интересен ShunyaNet Sentinel. Если вы уже живёте в FreshRSS, логичнее начать с локального расширения. А когда хочется полного контроля, дедупликации и собственного расписания, Python-скрипт или командная утилита дадут больше свободы.

Мой практический совет простой: сначала настройте качество одной короткой выжимки, затем фильтрацию, и только потом подключайте уведомления. Так вы не будете лечить последствия неудачной конфигурации в пяти каналах одновременно. Локальный суммаризатор не избавит от необходимости читать первоисточники, зато вполне может вернуть вам главное — время и ощущение, что новостной поток снова находится у вас в руках.

Частые вопросы

Зачем нужен интернет, если суммаризатор работает локально?
Интернет необходим для получения обновлений RSS-лент, загрузки полных текстов статей с веб-сайтов и отправки готовых уведомлений в мессенджеры или другие внешние системы.
Какие инструменты лучше всего подходят для чтения дайджестов?
Выбор зависит от ваших задач: IntelliDeck удобен как полноценный ридер, Precis подходит для маршрутизации новостей в разные каналы, ShunyaNet Sentinel — для тематического мониторинга, а расширение для FreshRSS — для тех, кто уже пользуется этим сервисом.
Почему маленькая локальная модель может ошибаться?
Маленькие модели могут терять контекст, путать участников событий, неверно интерпретировать числа или подменять факты прогнозами, поэтому их работу необходимо проверять на тестовой подборке материалов.
Гарантирует ли локальная обработка полную приватность?
Локальная обработка защищает данные от передачи облачному провайдеру, но приватность может быть нарушена на этапе доставки уведомлений, если вы используете внешние сервисы вроде Slack или Jira.
Как избежать превращения дайджеста в поток информационного шума?
Разделите источники на группы по важности, настройте фильтры с учетом исключений и используйте разные форматы резюме для срочных новостей и аналитических материалов.