ShunyaNet Sentinel 是一个轻量级的、赛博朋克主题的程序,它接收 RSS 订阅源(例如突发新闻、社交媒体),将其发送给 LLM 进行分析,并定期将警报和摘要报告直接发送到 GUI 和 Slack。
该项目旨在利用与同一台机器或网络(例如通过 Tailscale)上本地托管的 LLM,使用 LMStudio 或 Ollama(02/23 更新)。它也适用于 OpenAI API 密钥(02/23 更新)。
在警报方面,该程序使用 Slack Webhooks,能够将推送通知发送到移动设备。
ShunyaNet Sentinel 兼容最新版本的 Linux、macOS 和 Windows*
报告和分析的质量受提示、上下文大小、RSS 订阅源和所选 LLM 的影响。建议关闭思考功能。那些表现良好且通常遵循指令的模型包括:
*强烈建议使用 macOS 或 Linux。请参阅下面的已知问题。
末尾有重要的技巧、窍门和已知信息!
/v1/chat/completions 端点,专为 LMStudio 设计requirements.txt 中列出的依赖项:
通过以下方式托管 LLM:
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_test RSS 列表输入感兴趣的主题,或加载提供的默认列表之一。每个列表最多可添加 10 个主题。
点击“加载提示文件”来加载提示文件。 提供了一个默认提示(default_prompt.txt)。
鼓励您调整和修改此提示——这可能会显著提高报告质量以及 LLM 从噪声中识别信号的能力。这里有很大的定制空间。
在 experimental 文件夹中提供了一个 default_prompt-always-reply.txt。它已过时,但您可以用它来调试/测试 LLM 的分析,并确保它以正确的格式返回某些内容。
更新于 2026 年 3 月 2 日 还提供了一个 default_Summary-Report-Only_prompt.txt 提示。此版本不试图从噪声中挑选信号,而是在信息空间充满相关主题数据时,总结更大量的相关订阅源。因此,它更适合在您寻找的“事件”发生后使用。最好使用频率较低(例如,对于快速传播且广泛报道的事件,每半小时一次;对于报道数据较少的事件,每几小时一次),并为提示和回复分配较大的 token 限额。
点击“加载数据源文件”来加载 RSS 列表。 提供了两个默认列表。一个较短的 Default_test 列表和一个较长的 Default_long 列表,后者侧重于全球新闻和突发新闻。
根据您的地区或兴趣主题定制您自己的列表,将显著影响信息的输出。提供了一个我最近旅行时使用的地区示例列表(India_regional_example-v1.txt)。还包含一个伊朗冲突示例。
Reddit 和 Bluesky 可以轻松转换为 RSS 订阅源。某些程序(如 RSSBridge)也可以从没有 RSS 订阅源的网站和社交媒体(如 Telegram)生成 RSS 订阅源。
Default_test 列表是一个包含各种 RSS 订阅源的简短列表。目的是使第一次 RSS 拉取快速且简短,以便您可以诊断所有部分是否正常工作。
在“附加设置”中,设置以下字段。 这些设置将在您退出并重新启动程序后保存并持久化。默认设置适用于大多数配置——但您仍必须自己输入第一个字段:
LLM_PROVIDER = lmstudioLLM_BASE_URL = <你的 LMStudio 服务器 URL,例如:http://localhost:1234/v1>LLM_MODEL = <可选。我建议留空,直接在 LMStudio 中加载模型。如果你必须设置,格式类似于:lmstudio-community/mistral-7b-instruct>LLM_API_KEY = <留空,除非你使用身份验证密钥>LLM_PROVIDER = ollamaLLM_BASE_URL = <你的 LMStudio 服务器 URL,例如:http://localhost:11434/v1>LLM_MODEL = llama3LLM_API_KEY = <留空>LLM_PROVIDER = openaiLLM_BASE_URL = (无关紧要:此字段被忽略)LLM_MODEL = gpt-4o-miniLLM_API_KEY = sk-xxxx注意: 我建议您第一次运行时保持简单。使用默认设置并确保它正常工作。然后,调整上下文和 RSS 订阅源。然后,调整提示。我很好奇看到人们改进后的提示……。
问题/警告:
建议:
Alpha
本项目根据 Apache 2.0 许可证授权。
署名:ShunyaNet / EverythingsComputer
无担保: 本软件按“原样”提供,不提供任何明示或暗示的担保。
本项目使用以下第三方库。在使用、分发和/或修改本项目时,请查看其许可证:
我的猫。
| 设置 | 描述 | 默认值 | 示例 / 备注 |
|---|
| LLM_PROVIDER | 参见下一步 | — | — |
| LLM_BASE_URL | 参见下一步 | — | — |
| LLM_MODEL | 参见下一步 | — | — |
| LLM_API_KEY | 参见下一步 | — | — |
| SLACK_WEBHOOK_URL | 可选的 Slack webhook URL,用于向 Slack 发送警报。 | 可选 | https://hooks.slack.com/services/... |
| MAX_INPUT_TOKENS | 每次 RSS 拉取时发送给 LLM 的最大 token 数。经验法则:1 token ≈ 4 个字符。如果超过模型上下文大小,请启用分块模式。 | 4000 | 根据 LLM 的上下文窗口谨慎增加。 |
| MAX_OUTPUT_TOKENS | LLM 在其回复中返回的最大 token 数。(注意:这是上限/上限,不是目标!) | 4000 | 建议您不要更改。说实话,4000 也许有点太大了。 |
| MAX_INPUT_TOKENS_BULK | 为批量处理报告发送给 LLM 的 RSS 订阅源的最大 token 长度。当批量处理启用时,RSS 订阅源被保存并连同特殊的趋势分析提示(目前是硬编码的提示)一起发送。此功能从不使用分块,因此不要超过您的上下文限制。 | 4000 | 可能需要增加才能生成有意义的批量报告。可能会占用 VRAM 和上下文限制。建议初始禁用批量模式。 |
| MAX_OUTPUT_TOKENS_BULK | 批量处理报告本身的最大 token 长度。 | 4000 | 可能需要增加才能生成有意义的批量报告。可能会占用 VRAM 和上下文限制。建议初始禁用批量模式。 |
| FETCH_INTERVAL | RSS 拉取和 LLM 分析之间的时间间隔(秒)。 | 600(秒,即 10 分钟) | 不要设置得低于总处理时间,否则可能发生积压。 |
| ITEMS_PER_FEED | 每个周期每个订阅源拉取的最大 RSS 条目数。之前拉取的项目会被忽略。 | 50 | 较高的值会产生更大的首次拉取。大多数 RSS 订阅源每 10 分钟不会产生超过 20 个新项目,有些更少。 |
| USE_CHUNKED_MODE | 启用自动拆分 RSS 内容(如果超过 token 限额)。1 = 开启,0 = 关闭。 | 1 | 防止上下文溢出,但可能跨片段重复事件报告。 |
| CHUNK_SIZE | 每个分块的大小,单位为字符(不是 token)。 | 8000 | 近似转换:4 个字符 ≈ 1 个 token。我重复一遍:这是以字符为单位。应该用 token 吗?可能吧!但事实并非如此。 |
| WRITE_TO_FILE | 可选。将所有拉取的 RSS 内容写入滚动文件,用于外部基准测试、提示测试或模型比较。不影响核心 Sentinel 功能。1 = 开启,0 = 关闭。 | 0 | 适用于离线 LLM 测试和评估。 |
| ANALYSIS_WINDOW | 每个批量处理报告使用的时间间隔。 | 3600(秒,即 1 小时) | 仅在启用批量处理时使用。 |
| BULK_ANALYSIS | 启用定期的批量 RSS 趋势报告。1 = 开启,0 = 关闭。相对于常规报告来说非常实验性。特殊提示目前是硬编码的。 | 0 | 将累积的 RSS 订阅源发送给 LLM 以生成单一趋势分析报告。可能会显著增加处理负载。 |