ShunyaNet Sentinel (MIS À JOUR : 03/02/2026)
ShunyaNet Sentinel est un programme léger sur le thème cyberpunk qui ingère des flux RSS (par exemple, actualités de dernière minute, réseaux sociaux), les envoie à un LLM pour analyse et fournit des alertes et rapports récapitulatifs directement dans l'interface graphique et Slack à intervalles réguliers.
Le projet est conçu pour utiliser un LLM hébergé localement sur la même machine ou le même réseau (par exemple, avec Tailscale) via LMStudio ou Ollama (mise à jour du 23/02). Il fonctionnera également avec une clé API OpenAI (mise à jour du 23/02).
Pour les alertes, le programme utilise les webhooks Slack, permettant d'envoyer des notifications push vers un appareil mobile.
Le ShunyaNet Sentinel est compatible avec les dernières versions de Linux, macOS et Windows*
La qualité des rapports et de l'analyse est influencée par le prompt, la taille du contexte, les flux RSS et le LLM choisi. Il est recommandé de désactiver les fonctions de réflexion (thinking). Les modèles qui semblent bien fonctionner et suivre généralement les instructions incluent :
- GPT OSS 20b (thinking réglé sur LOW dans LMStudio)
- GPT OSS 120b (probablement excessif)
- Hermes 4 70b (mon modèle de prédilection)
- Gemma 3 27b it abliterated (version de mlabonne)
- Qwen3 32b et/ou VL 30b (je ne me souviens plus lequel...)
*Fortement recommandé sur macOS ou Linux. Voir la section Problèmes connus ci-dessous pour des informations importantes !
Flux de travail général
- L'utilisateur saisit les sujets d'intérêt
- L'utilisateur fournit une liste de flux RSS
- Sentinel récupère les flux RSS à des intervalles configurés par l'utilisateur
- Le contenu RSS est envoyé au serveur LLM fourni par l'utilisateur
- Le LLM examine les flux et renvoie à Sentinel les informations pertinentes sur les sujets d'intérêt
- Si un webhook Slack est configuré, les alertes sont transmises et les notifications sont accessibles sur iOS/Android (souvent avec des liens en direct vers le contenu RSS référencé)
- L'analyse groupée optionnelle identifie les tendances au fil du temps
Fonctionnalités principales
- Interrogation périodique des flux RSS
- Déduplication et suivi des horodatages
- Gère les flux lents ou mal formés (...encore du travail à faire ici)
Analyse basée sur LLM (optionnelle)
- Envoie les éléments du flux RSS à un point de terminaison LLM local ou via API
- Classification, résumé et filtrage pilotés par prompt
- Fonctionne avec tout point de terminaison
/v1/chat/completions compatible OpenAI, conçu pour LMStudio
Alerte / Génération de signaux
Local et auto-hébergé
- En dehors de l'interrogation des flux RSS ou de l'envoi de réponses à Slack (optionnel), toutes les informations restent sur le matériel que vous contrôlez
Prérequis
- Python 3.10+
- Dépendances listées dans
requirements.txt :
- PySide6==6.10.0
- feedparser==6.0.12
- requests==2.31.0
- python-dateutil==2.9.0.post0
LLM hébergé via :
- LM Studio (recommandé)
- Ollama
- Clé API OpenAI
- (quelques autres à venir prochainement)
Installation
1. Cloner le dépôt (...ou télécharger le Zip) et naviguer vers le dossier
git clone https://github.com/EverythingsComputer/ShunyaNet-Sentinel.git
cd ShunyaNet-Sentinel
2. (Fortement recommandé) Créer un environnement virtuel
macOS / Linux :
python3 -m venv venv
source venv/bin/activate
Windows (PowerShell) :
python -m venv venv
venv\Scripts\Activate.ps1
3. Installer les dépendances
pip install -r requirements.txt
4. Exécuter
macOS / Linux :
python3 ShunyaNet_Sentinel.py
Windows :
python ShunyaNet_Sentinel.py
Démarrage rapide (avec LMStudio) (MIS À JOUR 23/02)
- Cliquez sur « Load Prompt File » et chargez
default_prompt.txt
- Cliquez sur « Load Data Source File » et chargez la liste RSS
Default_test
- Ouvrez « Additional Settings » et saisissez :
- LM_PROVIDER = lmstudio
- LLM_BASE_URL = <VOTRE IP SERVEUR LMSTUDIO, ex. : http://x.x.x.x:port/v1>
- LLM_MODEL = <Je vous recommande de laisser ce champ vide. Suivez simplement l'étape 4>
- API_KEY = <laissez vide, sauf si vous en avez défini une pour votre serveur>
- Chargez le modèle dans LM Studio. Activez « Serve on Local Network » dans les paramètres du serveur. Astuces :
- Dans la fenêtre de sélection du modèle / « Load Model », activez « Manually choose model load parameters »
- Dans la fenêtre des paramètres de chargement de votre modèle, réglez « Max Concurrent Predictions » sur 1 (pour l'instant)
- Dans l'onglet d'inférence, désactivez ou réduisez la réflexion (thinking), si ce réglage est disponible.
- Un modèle de taille modérée qui fonctionne bien : gpt-oss-20b. Thinking réglé sur « low »
- Cliquez sur le chat ! (...ou appuyez sur Fetch / Send)
Instructions complètes et configuration (MIS À JOUR 03/02/2026)
-
Saisissez les sujets d'intérêt, ou chargez l'une des listes par défaut fournies. Jusqu'à 10 sujets peuvent être ajoutés à chaque liste.
-
Cliquez sur « Load Prompt File » pour charger un fichier de prompt. Un prompt par défaut est fourni (default_prompt.txt).
- Vous êtes encouragé à modifier et réviser ce prompt - cela peut améliorer considérablement la qualité des rapports et la capacité du LLM à identifier un signal dans le bruit. Il y a BEAUCOUP de place pour la personnalisation ici.
- Un fichier « default_prompt-always-reply.txt » est inclus dans le dossier experimental. Il est obsolète, mais vous pouvez l'utiliser pour déboguer/tester l'analyse du LLM et vous assurer qu'il renvoie quelque chose dans le bon format.
- MIS À JOUR 03/02/2026 Un prompt « default_Summary-Report-Only_prompt.txt » est également fourni. Cette version ne cherche pas à extraire un signal du bruit, mais plutôt à résumer un plus grand volume de flux pertinents lorsque l'espace d'information est riche en données pertinentes. Elle est donc plus utile après que « l'événement » recherché s'est produit. Il est également préférable de l'utiliser moins fréquemment (par exemple, toutes les demi-heures pour un événement rapide et largement rapporté, ou toutes les quelques heures pour quelque chose avec moins de données rapportées) et avec une grande allocation de tokens pour le prompt et la réponse.