ShunyaNet Sentinel (ОБНОВЛЕНО: 03/02/2026)
ShunyaNet Sentinel — это легковесная программа в киберпанк-стиле, которая загружает RSS-ленты (например, новости, социальные сети), отправляет их в LLM для анализа и доставляет оповещения и сводные отчёты непосредственно в GUI и Slack через заданные интервалы.
Проект создан для использования LLM, размещённой локально на той же машине или в сети (например, через Tailscale) с помощью LMStudio или Ollama (02/23 Обновление). Он также будет работать с ключом API OpenAI (02/23 Обновление).
Для оповещений программа использует вебхуки Slack, что позволяет отправлять push-уведомления на мобильное устройство.
ShunyaNet Sentinel совместим с последними версиями Linux, macOS и Windows*
Качество отчётов и анализа зависит от промпта, размера контекста, RSS-лент и выбранной LLM. Рекомендуется отключать функции «размышления» (thinking). Модели, которые хорошо себя зарекомендовали и в целом следуют инструкциям, включают:
- GPT OSS 20b (режим мышления установлен на LOW в LMStudio)
- GPT OSS 120b (возможно, избыточно)
- Hermes 4 70b (мой выбор по умолчанию)
- Gemma 3 27b it abliterated (версия mlabonne)
- Qwen3 32b и/или VL 30b (уже не помню, какая именно...)
*Настоятельно рекомендуется macOS или Linux. См. «Известные проблемы» ниже.
Важную информацию см. в разделе «Советы, хитрости и известные проблемы» в конце!
Высокоуровневый рабочий процесс
- Пользователь вводит интересующие темы
- Пользователь предоставляет список RSS-лент
- Sentinel загружает RSS-ленты с заданным пользователем интервалом времени
- Содержимое RSS отправляется на указанный пользователем сервер LLM
- LLM анализирует ленты и сообщает Sentinel о релевантных темах
- Если настроен вебхук Slack, оповещения пересылаются, и уведомления доступны на iOS/Android (часто с прямыми ссылками на упомянутый RSS-контент)
- Опциональный пакетный анализ выявляет тренды с течением времени
Основные возможности
- Периодический опрос RSS-лент
- Дедупликация и отслеживание временных меток
- Обработка медленных или некорректно сформированных лент (...ещё предстоит доработка)
Анализ на основе LLM (опционально)
- Отправка элементов RSS-лент на локальную/внешнюю конечную точку LLM
- Классификация, суммаризация и фильтрация на основе промпта
- Работает с любым эндпоинтом
/v1/chat/completions, совместимым с OpenAI; разработан для LMStudio
Оповещения / Генерация сигналов
Локальность и саморазмещение
- За исключением опроса RSS-лент или отправки ответов в Slack (опционально), вся информация остаётся на контролируемом вами оборудовании
Требования
- Python 3.10+
- Зависимости перечислены в
requirements.txt:
- PySide6==6.10.0
- feedparser==6.0.12
- requests==2.31.0
- python-dateutil==2.9.0.post0
LLM размещается через:
- LM Studio (рекомендуется)
- Ollama
- Ключ API OpenAI
- (вскоре появятся ещё несколько)
Установка
1. Клонировать репозиторий (...или скачать ZIP) и перейти в папку
git clone https://github.com/EverythingsComputer/ShunyaNet-Sentinel.git
cd ShunyaNet-Sentinel
2. (Настоятельно рекомендуется) Создать виртуальное окружение
macOS / Linux:
python3 -m venv venv
source venv/bin/activate
Windows (PowerShell):
python -m venv venv
venv\Scripts\Activate.ps1
3. Установить зависимости
pip install -r requirements.txt
4. Запустить
macOS / Linux:
python3 ShunyaNet_Sentinel.py
Windows:
python ShunyaNet_Sentinel.py
Быстрый старт (с LMStudio) (ОБНОВЛЕНО 02/23)
- Нажмите "Load Prompt File" и загрузите
default_prompt.txt
- Нажмите "Load Data Source File" и загрузите список RSS
Default_test
- Откройте "Additional Settings" и введите:
- LM_PROVIDER = lmstudio
- LLM_BASE_URL = <IP-АДРЕС ВАШЕГО СЕРВЕРА LMSTUDIO, например: http://x.x.x.x:port/v1>
- LLM_MODEL = <рекомендую оставить пустым. Просто выполните шаг 4>
- API_KEY = <оставьте пустым, если не задали ключ для сервера>
- Загрузите модель в LM Studio. Включите "Serve on Local Network" в настройках сервера. Советы:
- В окне "Load Model"/выбора модели включите "Manually choose model load parameters"
- В окне параметров загрузки модели установите Max Concurrent Predictions в 1 (пока что)
- На вкладке вывода отключите или минимизируйте "thinking", если доступно.
- Модель среднего размера, которая хорошо работает: gpt-oss-20b. Режим мышления установлен на "low".
- Нажмите на кота! (...или просто нажмите Fetch / Send)
Полная инструкция и конфигурация (ОБНОВЛЕНО 03/02/2026)
-
Введите интересующие темы или загрузите один из предоставленных списков по умолчанию. В каждый список можно добавить до 10 тем.
-
Нажмите "Load Prompt File", чтобы загрузить файл промпта. Предоставляется промпт по умолчанию (default_prompt.txt).
- Рекомендуется настраивать и дорабатывать этот промпт — это может значительно улучшить качество отчётов и способность LLM выделять сигнал из шума. Здесь огромный простор для кастомизации.
- В папке experimental есть файл 'default_prompt-always-reply.txt'. Он устарел, но его можно использовать для отладки/тестирования анализа LLM и проверки того, что она возвращает данные в правильном формате.
- ОБНОВЛЕНО 03/02/2026 Также предоставляется промпт 'default_Summary-Report-Only_prompt.txt'. Эта версия не пытается выделить сигнал из шума, а предназначена для суммаризации большего объёма релевантных лент, когда информационное пространство насыщено данными по теме. Таким образом, она более полезна после того, как «событие» уже произошло. Её лучше использовать реже (например, каждые полчаса для быстро меняющегося и широко освещаемого события или каждые несколько часов для события с меньшим объёмом данных) и с большим лимитом токенов для промпта и ответа.
-
Нажмите "Load Data Source File", чтобы загрузить список RSS. Предоставляются два списка по умолчанию: короткий список "Default_test" и более длинный "Default_long", ориентированный на мировые новости и срочные новости.
- Настройка собственных списков под ваш регион или темы интересов существенно повлияет на выходную информацию. Пример списка, ориентированного на регион, который я использовал в недавней поездке, предоставлен ('India_regional_example-v1.txt'). Также включён пример списка по конфликту в Иране.
- Reddit и BlueSky легко конвертируются в RSS-ленты. Программы, такие как RSSBridge, также могут генерировать RSS-ленты для сайтов и соцсетей (например, Telegram), у которых их нет.
- Список "Default_test" — это короткий список различных RSS-лент. Цель — сделать первый сбор RSS быстрым и коротким, чтобы вы могли диагностировать, все ли компоненты работают правильно.
-
В "Additional Settings" задайте следующие поля. Они сохранятся и будут действовать после перезапуска программы. Настройки по умолчанию подходят для большинства конфигураций — но вы всё равно должны ввести поле №1 самостоятельно: