
ShunyaNet Sentinel es un programa ligero que monitorea fuentes RSS, las envía a un LLM para su análisis y entrega resúmenes o alertas directamente a la GUI y a Slack.
ShunyaNet Sentinel es un programa ligero con temática cyberpunk que ingiere fuentes RSS (por ejemplo, noticias de última hora, redes sociales), las envía a un LLM para su análisis y entrega alertas e informes resumidos directamente a la interfaz gráfica y a Slack en intervalos regulares.
El proyecto está diseñado para utilizar un LLM alojado localmente en la misma máquina o red (por ejemplo, con Tailscale) usando LMStudio u Ollama (Actualización 02/23). También funcionará con una clave API de OpenAI (Actualización 02/23).
Para las alertas, el programa utiliza Webhooks de Slack, lo que permite enviar notificaciones push a un dispositivo móvil.
ShunyaNet Sentinel es compatible con las últimas versiones de Linux, MacOS y Windows*
La calidad de los informes y análisis está influenciada por el prompt, el tamaño del contexto, las fuentes RSS y el LLM elegido. Se recomienda desactivar las funciones de razonamiento. Los modelos que parecen haber funcionado bien y generalmente siguen las instrucciones incluyen:
*Se recomienda encarecidamente macOS o Linux. Consulte Problemas conocidos a continuación.
¡Consulte Consejos, trucos y problemas conocidos al final para obtener información importante!
/v1/chat/completions compatible con OpenAI, diseñado para LMStudiorequirements.txt:
LLM alojado a través de:
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_testIngrese temas de interés, o cargue una de las listas predeterminadas proporcionadas. Se pueden agregar hasta 10 temas por lista.
Haga clic en "Load Prompt File" para cargar un archivo de prompt. Se proporciona un prompt predeterminado (default_prompt.txt).
Haga clic en "Load Data Source File" para cargar una lista RSS. Se proporcionan dos listas predeterminadas. Una lista corta "Default_test" y una lista más larga "Default_long", que se centra en noticias mundiales y de última hora.
En "Additional Settings", configure los siguientes campos. Estos se guardarán y persistirán si cierra y reinicia el programa. La configuración predeterminada funcionará con la mayoría de las configuraciones, pero aún debe ingresar el campo #1 usted mismo:
LLM_PROVIDER = lmstudioLLM_BASE_URL = <su URL del servidor LMStudio, ej.: http://localhost:1234/v1>LLM_MODEL = <OPCIONAL. Recomiendo dejarlo en blanco y cargar su modelo directamente en LMStudio. Si es necesario, el formato es como: lmstudio-community/mistral-7b-instruct>LLM_API_KEY = <Déjelo en blanco, a menos que use una clave de autenticación>LLM_PROVIDER = ollamaLLM_BASE_URL = <Su URL del servidor LMStudio, ej.: http://localhost:11434/v1>LLM_MODEL = llama3LLM_API_KEY = = <déjelo vacío/en blanco>LLM_PROVIDER = openaiLLM_BASE_URL = (no importa: este campo se ignora)LLM_MODEL = gpt-4o-miniLLM_API_KEY = sk-xxxxNOTA: Recomiendo mantenerlo simple para la primera ejecución. Use la configuración predeterminada y asegúrese de que funcione. Luego, ajuste el contexto y las fuentes RSS. Luego, ajuste el prompt. ¡Me encantaría ver los prompts mejorados de la gente...!
Problemas/Advertencias:
Sugerencias:
Alpha
Este proyecto está licenciado bajo la Apache 2.0.
Atribución: ShunyaNet / EverythingsComputer
Sin garantía: El software se proporciona "tal cual", sin garantía de ningún tipo, expresa o implícita.
Este proyecto utiliza las siguientes bibliotecas de terceros. Revise sus licencias al usar, distribuir y/o modificar este proyecto:
Mi gato.
| Configuración | Descripción | Predeterminado | Ejemplo / Notas |
|---|
| LLM_PROVIDER | VEA EL SIGUIENTE PASO | — | — |
| LLM_BASE_URL | VEA EL SIGUIENTE PASO | — | — |
| LLM_MODEL | VEA EL SIGUIENTE PASO | — | — |
| LLM_API_KEY | VEA EL SIGUIENTE PASO | — | — |
| SLACK_WEBHOOK_URL | URL opcional del webhook de Slack para enviar alertas a Slack. | Opcional | https://hooks.slack.com/services/... |
| MAX_INPUT_TOKENS | Máximo de tokens enviados al LLM por extracción RSS. Regla general: 1 token ≈ 4 caracteres. Si excede el tamaño del contexto del modelo, active el modo fragmentado. | 4000 | Aumente con cuidado según la ventana de contexto de su LLM. |
| MAX_OUTPUT_TOKENS | Máximo de tokens que el LLM enviará de vuelta en su respuesta. (nota: este es el máximo/límite, ¡no el objetivo!) | 4000 | Recomiendo no cambiarlo. 4000 es probablemente demasiado margen, para ser honesto. |
| MAX_INPUT_TOKENS_BULK | Longitud máxima en tokens de las fuentes RSS enviadas al LLM para informes de procesamiento masivo. Cuando el procesamiento masivo está habilitado, las fuentes RSS se guardan y se envían junto con un prompt especial de análisis de tendencias (prompt codificado, por ahora). Nunca se usan fragmentos para esto, así que no exceda su límite de contexto. | 4000 | Probablemente necesite aumentarse para informes masivos significativos. Puede estresar la VRAM y los límites de contexto. Se recomienda deshabilitar el modo masivo inicialmente. |
| MAX_OUTPUT_TOKENS_BULK | Longitud máxima en tokens del informe de procesamiento masivo en sí. | 4000 | Puede necesitar aumentarse para informes masivos significativos. Puede estresar la VRAM y los límites de contexto. Se recomienda deshabilitar el modo masivo inicialmente. |
| FETCH_INTERVAL | Tiempo en segundos entre extracciones RSS y análisis LLM. | 600 (segundos, es decir, 10 min) | No configure un valor inferior al tiempo total de procesamiento o podría producirse un retraso. |
| ITEMS_PER_FEED | Número máximo de entradas RSS extraídas por fuente por ciclo. Los elementos extraídos previamente se ignoran. | 50 | Valores más altos crean una primera extracción más grande. La mayoría de las fuentes RSS no producen mucho más de 20 elementos nuevos cada 10 minutos, algunas mucho menos. |
| USE_CHUNKED_MODE | Habilita la división automática del contenido RSS si excede el límite de tokens. 1 = Activado, 0 = Desactivado. | 1 | Evita el desbordamiento del contexto pero puede duplicar la notificación de eventos entre fragmentos. |
| CHUNK_SIZE | Tamaño de cada fragmento en caracteres (no tokens). | 8000 | Conversión aproximada: 4 caracteres ≈ 1 token. REPITO: ESTO ESTÁ EN CARACTERES. ¿Debería estar en tokens? ¡Probablemente! Pero no lo está. |
| WRITE_TO_FILE | Opcional. Escribe todo el contenido RSS extraído en un archivo continuo para evaluaciones externas, pruebas de prompt o comparación de modelos. No afecta la funcionalidad principal de Sentinel. 1 = Activado, 0 = Desactivado. | 0 | Útil para pruebas y evaluación de LLM fuera de línea. |
| ANALYSIS_WINDOW | Intervalo de tiempo utilizado para cada informe de procesamiento masivo. | 3600 (segundos, es decir, 1h) | Se usa solo cuando el Procesamiento Masivo está habilitado. |
| BULK_ANALYSIS | Habilita informes de tendencias RSS masivas periódicas. 1 = Activado, 0 = Desactivado. Muy experimental en relación con los informes de rutina. El prompt especial está codificado, por ahora. | 0 | Envía fuentes RSS acumuladas al LLM para un informe de análisis de tendencias único. Puede aumentar significativamente la carga de procesamiento. |