
ShunyaNet Sentinel è un programma leggero che monitora i feed RSS, li invia a un LLM per l'analisi e fornisce riepiloghi o avvisi direttamente alla GUI e a Slack.
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:
*Fortemente consigliato macOS o Linux. Vedi Problemi noti di seguito.
Vedi Suggerimenti, Trucchi e Problemi noti alla fine per informazioni importanti!
/v1/chat/completions compatibile con OpenAI, progettato per LMStudiorequirements.txt:
LLM ospitato tramite:
git clone https://github.com/EverythingsComputer/ShunyaNet-Sentinel.git
cd ShunyaNet-Sentinel
macOS / Linux:
python3 -m venv venv
source venv/bin/activate
Windows (PowerShell):
python -m venv venv
venv\Scripts\Activate.ps1
pip install -r requirements.txt
macOS / Linux:
python3 ShunyaNet_Sentinel.py
Windows:
python ShunyaNet_Sentinel.py
default_prompt.txtDefault_testInserisci 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).
Clicca “Carica file origine dati” per caricare un elenco RSS. Sono forniti due elenchi predefiniti. Un elenco breve "Default_test" e un elenco più lungo "Default_long", che si concentra su notizie mondiali e notizie dell'ultima ora.
In "Impostazioni aggiuntive", imposta i seguenti campi. Questi verranno salvati e persisteranno se chiudi e riavvii il programma. Le impostazioni predefinite funzioneranno con la maggior parte delle configurazioni - ma devi comunque inserire tu stesso il campo #1:
LLM_PROVIDER = lmstudioLLM_BASE_URL = <URL del tuo server LMStudio, es.: http://localhost:1234/v1>LLM_MODEL = <OPZIONALE. Consiglio di lasciare vuoto e caricare il modello direttamente in LMStudio. Se devi, il formato è: lmstudio-community/mistral-7b-instruct>LLM_API_KEY = <Lascia vuoto, a meno che tu non usi una chiave di autenticazione>LLM_PROVIDER = ollamaLLM_BASE_URL = <URL del tuo server LMStudio, es.: http://localhost:11434/v1>LLM_MODEL = llama3LLM_API_KEY = <lascia vuoto>LLM_PROVIDER = openaiLLM_BASE_URL = (non importa: questo campo viene ignorato)LLM_MODEL = gpt-4o-miniLLM_API_KEY = sk-xxxxNOTA: Consiglio di mantenere le cose semplici per il primo avvio. Usa le impostazioni predefinite e assicurati che funzioni. Poi, modifica contesto e feed RSS. Quindi, regola il prompt. Sarei curioso di vedere i prompt migliorati di altre persone....
Problemi/Avvertenze:
Suggerimenti:
Alpha
Questo progetto è concesso in licenza sotto Apache 2.0.
Attribuzione: ShunyaNet / EverythingsComputer
Nessuna Garanzia: Il software è fornito "così com'è", senza garanzia di alcun tipo, esplicita o implicita.
Questo progetto utilizza le seguenti librerie di terze parti. Si prega di rivedere le loro licenze quando si utilizza, distribuisce e/o modifica questo progetto:
Il mio gatto.
| Impostazione | Descrizione | Predefinito | Esempio / Note |
|---|
| LLM_PROVIDER | VEDI PROSSIMO PASSAGGIO | — | — |
| LLM_BASE_URL | VEDI PROSSIMO PASSAGGIO | — | — |
| LLM_MODEL | VEDI PROSSIMO PASSAGGIO | — | — |
| LLM_API_KEY | VEDI PROSSIMO PASSAGGIO | — | — |
| SLACK_WEBHOOK_URL | URL webhook Slack opzionale per inviare avvisi a Slack. | Opzionale | https://hooks.slack.com/services/... |
| MAX_INPUT_TOKENS | Token massimi inviati al LLM per ogni acquisizione RSS. Regola pratica: 1 token ≈ 4 caratteri. Se supera la dimensione del contesto del modello, attiva la modalità chunked. | 4000 | Aumenta con cautela a seconda della finestra di contesto del tuo LLM. |
| MAX_OUTPUT_TOKENS | Token massimi che il LLM invierà nella sua risposta. (nota: questo è il massimo/cap, non il target!) | 4000 | Consiglio di non modificare. 4000 è probabilmente troppo margine, a dire il vero. |
| MAX_INPUT_TOKENS_BULK | Lunghezza massima in token dei feed RSS inviati al LLM per i report di elaborazione bulk. Quando l'elaborazione bulk è abilitata, i feed RSS vengono salvati e inviati insieme a un prompt speciale per l'analisi delle tendenze (prompt hard-coded, per ora). I chunk non vengono mai usati per questo, quindi non superare il limite di contesto. | 4000 | Probabilmente deve essere aumentato per report bulk significativi. Potrebbe stressare VRAM e limiti di contesto. Consigliato di disabilitare inizialmente la modalità bulk. |
| MAX_OUTPUT_TOKENS_BULK | Lunghezza massima in token del report di elaborazione bulk stesso. | 4000 | Potrebbe dover essere aumentato per report bulk significativi. Potrebbe stressare VRAM e limiti di contesto. Consigliato di disabilitare inizialmente la modalità bulk. |
| FETCH_INTERVAL | Tempo in secondi tra le acquisizioni RSS e l'analisi LLM. | 600 (secondi, cioè 10 min) | Non impostare mai inferiore al tempo totale di elaborazione o potrebbero verificarsi arretrati. |
| ITEMS_PER_FEED | Numero massimo di voci RSS acquisite per feed per ciclo. Le voci già acquisite in precedenza vengono ignorate. | 50 | Valori più alti creano una prima acquisizione più grande. La maggior parte dei feed RSS non produce molto più di 20 nuovi elementi ogni 10 minuti, alcuni molto meno. |
| USE_CHUNKED_MODE | Abilita la suddivisione automatica del contenuto RSS se supera l'allocazione di token. 1 = On, 0 = Off. | 1 | Previene l'overflow del contesto ma può duplicare la segnalazione degli eventi tra i chunk. |
| CHUNK_SIZE | Dimensione di ogni chunk in caratteri (non token). | 8000 | Conversione approssimativa: 4 caratteri ≈ 1 token. RIPETO: QUESTO È IN CARATTERI. Dovrebbe essere in token? Probabilmente! Ma non lo è. |
| WRITE_TO_FILE | Opzionale. Scrive tutto il contenuto RSS acquisito in un file rolling per benchmarking esterno, test di prompt o confronto di modelli. Non influisce sulla funzionalità principale di Sentinel. 1 = On, 0 = Off. | 0 | Utile per test e valutazione offline del LLM. |
| ANALYSIS_WINDOW | Intervallo di tempo utilizzato per ogni report di elaborazione bulk. | 3600 (secondi, cioè 1h) | Utilizzato solo quando l'elaborazione Bulk è abilitata. |
| BULK_ANALYSIS | Abilita report periodici di tendenza RSS bulk. 1 = On, 0 = Off. Molto sperimentale rispetto alla reportistica di routine. Il prompt speciale è hard-coded, per ora. | 0 | Invia i feed RSS accumulati al LLM per un singolo report di analisi delle tendenze. Potrebbe aumentare significativamente il carico di elaborazione. |