
ShunyaNet Sentinelは、RSSフィードを監視し、LLMに送信して分析を行い、要約やアラートをGUIとSlackに直接配信する軽量プログラムです。
ShunyaNet Sentinelは、軽量でサイバーパンクをテーマにしたプログラムです。RSSフィード(例:速報、ソーシャルメディア)を取り込み、LLMに送信して分析し、アラートと要約レポートをGUIとSlackに定期的に配信します。
このプロジェクトは、LMStudioまたは**Ollama(02/23更新)**を使用して、同じマシンまたはネットワーク上(例:Tailscale経由)でローカルにホストされたLLMを利用するように設計されています。また、**OpenAI APIキー(02/23更新)**でも動作します。
アラート通知にはSlack Webhookを利用し、モバイルデバイスへのプッシュ通知を可能にします。
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.txt を読み込みますDefault_test RSSリストを読み込みます関心のあるトピックを入力するか、提供されているデフォルトリストのいずれかを読み込みます。各リストには最大10個のトピックを追加できます。
「プロンプトファイルを読み込む」をクリックしてプロンプトファイルを読み込みます。 デフォルトのプロンプト(default_prompt.txt)が提供されています。
default_prompt-always-reply.txt が含まれています。古いものですが、LLMの分析をデバッグ/テストし、正しい形式で何かを報告していることを確認するために使用できます。default_Summary-Report-Only_prompt.txt も提供されています。このバージョンはノイズからシグナルを選び出すのではなく、情報空間がトピックに関連するデータで豊富な場合に、関連するフィードをより大量に要約することを目的としています。したがって、探している「イベント」が発生した後に役立ちます。また、頻度を低く設定して使用するのが最適です(例:動きが速く広く報道されるイベントでは30分ごと、データが少ないものでは数時間ごと)。プロンプトと応答に十分なトークン割り当てが必要です。「データソースファイルを読み込む」をクリックしてRSSリストを読み込みます。 2つのデフォルトリストが提供されています。短い「Default_test」リストと長い「Default_long」リスト(世界中のニュースと速報に焦点を当てています)。
India_regional_example-v1.txt)と、イラン紛争に関する例も含まれています。「追加設定」で以下のフィールドを設定します。 これらの設定は保存され、プログラムを終了して再起動しても保持されます。デフォルト設定はほとんどの構成で機能しますが、フィールド#1は自分で入力する必要があります:
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 = <Ollamaサーバーの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フィードを調整してください。次にプロンプトを調整します。皆さんの改良されたプロンプトを見るのが楽しみです…。
問題/警告:
提案:
アルファ版
このプロジェクトはApache 2.0の下でライセンスされています。
帰属:ShunyaNet / EverythingsComputer
無保証: 本ソフトウェアは「現状のまま」提供され、明示または暗示を問わずいかなる種類の保証もありません。
このプロジェクトは以下のサードパーティライブラリを使用しています。このプロジェクトの使用、配布、および/または変更の際には、それぞれのライセンスを確認してください:
私の猫です。
| 設定項目 | 説明 | デフォルト | 例 / 注意事項 |
|---|
| LLM_PROVIDER | 次のステップを参照 | — | — |
| LLM_BASE_URL | 次のステップを参照 | — | — |
| LLM_MODEL | 次のステップを参照 | — | — |
| LLM_API_KEY | 次のステップを参照 | — | — |
| SLACK_WEBHOOK_URL | 任意。Slackにアラートを送信するためのSlack webhook URL。 | 任意 | https://hooks.slack.com/services/... |
| MAX_INPUT_TOKENS | RSS取得ごとにLLMに送信される最大トークン数。目安:1トークン ≈ 4文字。モデルのコンテキストサイズを超える場合は、チャンクモードを有効にしてください。 | 4000 | LLMのコンテキストウィンドウに応じて慎重に増やしてください。 |
| MAX_OUTPUT_TOKENS | LLMが応答で返す最大トークン数。(注意:これは上限であり、目標ではありません!) | 4000 | 変更しないことをお勧めします。正直、4000はおそらく余裕がありすぎます。 |
| MAX_INPUT_TOKENS_BULK | 一括処理レポート用にLLMに送信されるRSSフィードの最大トークン長。一括処理が有効な場合、RSSフィードは保存され、特別なトレンド分析プロンプト(現時点ではハードコード済み)とともに送信されます。この場合はチャンクは使用されないため、コンテキスト制限を超えないようにしてください。 | 4000 | 意味のある一括レポートを得るには増やす必要があるでしょう。VRAMとコンテキスト制限に負荷がかかる可能性があります。最初は一括モードを無効にすることをお勧めします。 |
| MAX_OUTPUT_TOKENS_BULK | 一括処理レポート自体の最大トークン長。 | 4000 | 意味のある一括レポートを得るには増やす必要があるでしょう。VRAMとコンテキスト制限に負荷がかかる可能性があります。最初は一括モードを無効にすることをお勧めします。 |
| FETCH_INTERVAL | RSS取得とLLM分析の間の時間(秒)。 | 600(秒、つまり10分) | 総処理時間より短く設定しないでください。バックログが発生する可能性があります。 |
| ITEMS_PER_FEED | 1サイクルあたりフィードごとに取得するRSSエントリの最大数。以前に取得したアイテムは無視されます。 | 50 | 値を大きくすると最初の取得が大きくなります。ほとんどのRSSフィードは10分間に20以上の新しいアイテムを生成しません。中にはもっと少ないものもあります。 |
| USE_CHUNKED_MODE | RSSコンテンツがトークン許容量を超えた場合に自動分割を有効にします。1 = オン、0 = オフ。 | 1 | コンテキストオーバーフローを防ぎますが、チャンク間でイベントレポートが重複する可能性があります。 |
| CHUNK_SIZE | 各チャンクのサイズ(文字数、トークンではありません)。 | 8000 | おおよその変換:4文字 ≈ 1トークン。繰り返します:これは文字数です。トークンであるべきですか?おそらくそうですが、そうではありません。 |
| WRITE_TO_FILE | 任意。取得したすべてのRSSコンテンツをロールファイルに書き込み、外部ベンチマーク、プロンプトテスト、モデル比較に使用します。Sentinelのコア機能には影響しません。1 = オン、0 = オフ。 | 0 | オフラインのLLMテストと評価に便利です。 |
| ANALYSIS_WINDOW | 各一括処理レポートで使用する時間間隔。 | 3600(秒、つまり1時間) | 一括処理が有効な場合のみ使用されます。 |
| BULK_ANALYSIS | 定期的な一括RSSトレンドレポートを有効にします。1 = オン、0 = オフ。通常のレポートに比べて非常に実験的です。特別なプロンプトは現時点ではハードコードされています。 | 0 | 蓄積されたRSSフィードをLLMに送信し、単一のトレンド分析レポートを生成します。処理負荷が大幅に増加する可能性があります。 |