ShunyaNet Sentinel (AGGIORNATO: 03/02/2026)
ShunyaNet Sentinel è un programma leggero a tema cyberpunk che acquisisce feed RSS (es. notizie dell'ultima ora, social media), li invia a un LLM per l'analisi e fornisce avvisi e report di riepilogo direttamente nell'interfaccia grafica e su Slack a intervalli regolari.
Il progetto è costruito per utilizzare un LLM ospitato localmente sulla stessa macchina o rete (es. con Tailscale) usando LMStudio o Ollama (Aggiornamento 23/02). Funziona anche con una chiave API OpenAI (Aggiornamento 23/02).
Per la generazione di avvisi, il programma utilizza i Webhook di Slack, consentendo l'invio di notifiche push a un dispositivo mobile.
ShunyaNet Sentinel è compatibile con le ultime versioni di Linux, macOS e Windows*
La qualità dei report e delle analisi è influenzata dal prompt, dalla dimensione del contesto, dai feed RSS e dal LLM scelto. Si consiglia di disattivare le funzionalità di "thinking". I modelli che sembrano aver funzionato bene e generalmente seguono le istruzioni includono:
- GPT OSS 20b (thinking impostato su BASSO in LMStudio)
- GPT OSS 120b (probabilmente eccessivo)
- Hermes 4 70b (il mio go-to)
- Gemma 3 27b it abliterated (la versione di mlabonne)
- Qwen3 32b e/o VL 30b (non ricordo quale...)
*Fortemente consigliato macOS o Linux. Vedi Problemi noti di seguito.
Vedi Suggerimenti, Trucchi e Problemi noti alla fine per informazioni importanti!
Flusso di lavoro ad alto livello
- L'utente inserisce argomenti di interesse
- L'utente fornisce un elenco di feed RSS
- Sentinel acquisisce i feed RSS a intervalli di tempo configurati dall'utente
- Il contenuto RSS viene inviato al server LLM fornito dall'utente
- Il LLM esamina i feed e riferisce a Sentinel sugli argomenti di interesse rilevanti
- Se il webhook Slack è configurato, gli avvisi vengono inoltrati e le notifiche possono essere ricevute su iOS/Android (spesso con collegamenti diretti al contenuto RSS di riferimento)
- L'analisi bulk opzionale identifica le tendenze nel tempo
Capacità principali
- Acquisizione periodica di feed RSS
- Deduplicazione e tracciamento dei timestamp
- Gestione di feed lenti o malformati (...ancora lavoro da fare qui)
Analisi basata su LLM (Opzionale)
- Invia elementi dei feed RSS all'endpoint LLM locale/API
- Classificazione, riepilogo, filtraggio guidati dal prompt
- Funziona con qualsiasi endpoint
/v1/chat/completions compatibile con OpenAI, progettato per LMStudio
Avvisi / Generazione di segnali
Locale e Auto-ospitato
- A parte l'acquisizione dei feed RSS o l'invio di risposte a Slack (opzionale), tutte le informazioni rimangono sull'hardware che controlli
Requisiti
- Python 3.10+
- Dipendenze elencate in
requirements.txt:
- PySide6==6.10.0
- feedparser==6.0.12
- requests==2.31.0
- python-dateutil==2.9.0.post0
LLM ospitato tramite:
- LM Studio (consigliato)
- Ollama
- Chiave API OpenAI
- (altri in arrivo presto)
Installazione
1. Clona il repository (...o Scarica lo zip) e spostati nella cartella
git clone https://github.com/EverythingsComputer/ShunyaNet-Sentinel.git
cd ShunyaNet-Sentinel
2. (Fortemente consigliato) Crea un ambiente virtuale
macOS / Linux:
python3 -m venv venv
source venv/bin/activate
Windows (PowerShell):
python -m venv venv
venv\Scripts\Activate.ps1
3. Installa i requisiti
pip install -r requirements.txt
4. Esegui
macOS / Linux:
python3 ShunyaNet_Sentinel.py
Windows:
python ShunyaNet_Sentinel.py
Avvio rapido (con LMStudio) (AGGIORNATO 23/02)
- Clicca "Carica file prompt" e carica
default_prompt.txt
- Clicca "Carica file origine dati" e carica la lista RSS
Default_test
- Apri "Impostazioni aggiuntive" e inserisci:
- LM_PROVIDER = lmstudio
- LLM_BASE_URL = <IL TUO IP SERVER LMSTUDIO, es.: http://x.x.x.x:porta/v1>
- LLM_MODEL = <Consiglio di lasciare vuoto. Segui il Passaggio 4>
- API_KEY = <lascia vuoto, a meno che tu non ne abbia impostata una per il tuo server>
- Carica il modello in LM Studio. Attiva "Servi sulla rete locale" nelle Impostazioni del server. Suggerimenti:
- Nella finestra "Carica modello"/selezione modello, attiva "Scegli manualmente i parametri di caricamento del modello"
- Nella finestra dei parametri di caricamento del tuo modello, imposta Massimo predizioni concorrenti su 1 (per ora)
- Nella scheda inferenza, disattiva o minimizza il thinking, se tale impostazione è disponibile.
- Un modello di dimensioni moderate che funziona bene: gpt-oss-20b. Thinking impostato su "basso"
- Clicca il gatto! (...o premi Fetch / Invia)
Istruzioni complete e configurazione (AGGIORNATO 03/02/2026)
-
Inserisci argomenti di interesse, o carica uno degli elenchi predefiniti forniti. È possibile aggiungere fino a 10 argomenti per ogni elenco.
-
Clicca “Carica file prompt” per caricare un file prompt. Viene fornito un prompt predefinito (default_prompt.txt).
- Sei incoraggiato a modificare e rivedere questo prompt - può migliorare sostanzialmente la qualità dei report e la capacità del LLM di identificare un segnale nel rumore. C'è MOLTO spazio per la personalizzazione qui.
- C'è un 'default_prompt-always-reply.txt' incluso nella cartella experimental. È obsoleto, ma puoi usarlo per eseguire il debug/test dell'analisi del LLM e assicurarti che riporti qualcosa nel formato corretto.
- AGGIORNATO 03/02/2026 È fornito anche un prompt 'default_Summary-Report-Only_prompt.txt'. Questa versione non cerca di estrarre un segnale dal rumore, ma piuttosto di riassumere un volume maggiore di feed pertinenti quando lo spazio informativo è ricco di dati sull'argomento. Pertanto, è più utile dopo che l'"evento" che stai cercando si è verificato. È anche meglio usarlo meno frequentemente (es., ogni mezz'ora per un evento in rapida evoluzione e ampiamente riportato, o ogni poche ore per qualcosa con meno dati riportati) e con una grande allocazione di token per il prompt e la risposta.