
ShunyaNet Sentinel هو برنامج خفيف الوزن يراقب خلاصات RSS، ويرسلها إلى LLM للتحليل، ويقدم ملخصات أو تنبيهات مباشرة إلى GUI وسلاك.
شونيا نت سنتينل هو برنامج خفيف الوزن، بتصميم سايبربانك، يقوم بجمع خلاصات RSS (مثل الأخبار العاجلة ووسائل التواصل الاجتماعي)، وإرسالها إلى LLM للتحليل، ثم تسليم التنبيهات والتقارير الموجزة مباشرةً إلى الواجهة الرسومية وسلاك على فترات زمنية منتظمة.
المشروع مبني لاستخدام LLM مستضافة محلياً على نفس الجهاز أو الشبكة (مثال: عبر Tailscale) باستخدام LMStudio أو Ollama (تحديث 02/23). سيعمل أيضاً مع مفتاح OpenAI API (تحديث 02/23).
للتنبيه، يستخدم البرنامج Webhooks سلاك، مما يتيح إرسال إشعارات دفع إلى جهاز محمول.
شونيا نت سنتينل متوافق مع أحدث إصدارات لينكس، ماك أو إس، وويندوز*
جودة التقارير والتحليل تتأثر بالـ prompt، حجم السياق، خلاصات RSS، و LLM المختار. يُنصح بإيقاف ميزات التفكير. النماذج التي يبدو أنها أدت أداءً جيداً وتتبع التعليمات عموماً تشمل:
*يُوصى بشدة باستخدام ماك أو إس أو لينكس. راجع المشكلات المعروفة أدناه.
لمزيد من المعلومات الهامة، راجع النصائح والحيل والمشكلات المعروفة في النهاية!
/v1/chat/completions متوافقة مع OpenAI، مصممة لـ LMStudiorequirements.txt:
LLM مُستضافة عبر:
git clone https://github.com/EverythingsComputer/ShunyaNet-Sentinel.git
cd ShunyaNet-Sentinel
ماك أو إس / لينكس:
python3 -m venv venv
source venv/bin/activate
ويندوز (PowerShell):
python -m venv venv
venv\Scripts\Activate.ps1
pip install -r requirements.txt
ماك أو إس / لينكس:
python3 ShunyaNet_Sentinel.py
ويندوز:
python ShunyaNet_Sentinel.py
default_prompt.txtDefault_testأدخل مواضيع الاهتمام، أو قم بتحميل إحدى القوائم الافتراضية المتوفرة. يمكن إضافة ما يصل إلى 10 مواضيع لكل قائمة.
انقر على "Load Prompt File" لتحميل ملف prompt. يتم توفير prompt افتراضي (default_prompt.txt).
انقر على "Load Data Source File" لتحميل قائمة RSS. يتم توفير قائمتين افتراضيتين. قائمة قصيرة "Default_test" وقائمة أطول "Default_long" تركز على الأخبار العالمية والأخبار العاجلة.
في "Additional Settings"، قم بتعيين الحقول التالية. سيتم حفظها والاستمرار بها إذا قمت بإنهاء البرنامج وإعادة تشغيله. الإعدادات الافتراضية ستعمل مع معظم التكوينات - ولكن يجب عليك إدخال الحقل #1 بنفسك:
LLM_PROVIDER = lmstudioLLM_BASE_URL = <رابط خادم LMStudio الخاص بك، مثال: http://localhost:1234/v1>LLM_MODEL = <اختياري. أوصي بترك هذا فارغاً وتحميل النموذج الخاص بك في LMStudio مباشرة. إذا كان لا بد من ذلك، فإن التنسيق يكون مثل: lmstudio-community/mistral-7b-instruct>LLM_API_KEY = <اترك هذا فارغاً، ما لم تستخدم مفتاح مصادقة>LLM_PROVIDER = ollamaLLM_BASE_URL = <رابط خادم LMStudio الخاص بك، مثال: http://localhost:11434/v1>LLM_MODEL = llama3LLM_API_KEY = = <اترك هذا فارغاً/فارغ>LLM_PROVIDER = openaiLLM_BASE_URL = (لا يهم: هذا الحقل يتم تجاهله)LLM_MODEL = gpt-4o-miniLLM_API_KEY = sk-xxxxملاحظة: أوصي بإبقاء الأمور بسيطة في التشغيل الأول. استخدم الإعدادات الافتراضية وتأكد من أنها تعمل. ثم، قم بتعديل السياق وخلاصات RSS. ثم، قم بتعديل الـ prompt. سأكون فضولياً لرؤية الـ prompts المحسّنة للأشخاص….
المشكلات/التحذيرات:
الاقتراحات:
ألفا
هذا المشروع مرخص بموجب Apache 2.0.
الإسناد: ShunyaNet / EverythingsComputer
بدون ضمان: البرنامج يُقدم "كما هو"، دون أي ضمان من أي نوع، صريحاً أو ضمنياً.
يستخدم هذا المشروع مكتبات الطرف الثالث التالية. يرجى مراجعة تراخيصها عند استخدام و/أو توزيع و/أو تعديل هذا المشروع:
قطتي.
| الإعداد | الوصف | القيمة الافتراضية | مثال / ملاحظات |
|---|
| LLM_PROVIDER | راجع الخطوة التالية | — | — |
| LLM_BASE_URL | راجع الخطوة التالية | — | — |
| LLM_MODEL | راجع الخطوة التالية | — | — |
| LLM_API_KEY | راجع الخطوة التالية | — | — |
| SLACK_WEBHOOK_URL | رابط Webhook سلاك اختياري لإرسال التنبيهات إلى سلاك. | اختياري | https://hooks.slack.com/services/... |
| MAX_INPUT_TOKENS | الحد الأقصى للرموز المرسلة إلى LLM لكل سحب RSS. قاعدة تقريبية: 1 رمز ≈ 4 أحرف. إذا تجاوز حجم سياق النموذج، قم بتمكين الوضع المجزأ. | 4000 | قم بالزيادة بحذر اعتماداً على نافذة سياق LLM لديك. |
| MAX_OUTPUT_TOKENS | الحد الأقصى للرموز التي سيرسلها LLM في رده. (ملاحظة: هذا هو الحد الأقصى/السقف، وليس الهدف!) | 4000 | أوصي بعدم تغييره. 4000 ربما مساحة كبيرة جداً، بصراحة |
| MAX_INPUT_TOKENS_BULK | الحد الأقصى لطول رموز خلاصات RSS المرسلة إلى LLM لتقارير المعالجة الجماعية. عند تمكين المعالجة الجماعية، يتم حفظ خلاصات RSS وإرسالها مع prompt خاص لتحليل الاتجاهات (prompt مشفر حالياً). لا تُستخدم الأجزاء أبداً لهذا، لذا لا تتجاوز حد السياق الخاص بك | 4000 | على الأرجح يحتاج إلى زيادة لتقارير جماعية ذات معنى. قد يضغط على VRAM وحدود السياق. يُوصى بتعطيل الوضع الجماعي مبدئياً. |
| MAX_OUTPUT_TOKENS_BULK | الحد الأقصى لطول رموز تقرير المعالجة الجماعية نفسه. | 4000 | قد يحتاج إلى زيادة لتقارير جماعية ذات معنى. قد يضغط على VRAM وحدود السياق. يُوصى بتعطيل الوضع الجماعي مبدئياً. |
| FETCH_INTERVAL | الوقت بالثواني بين سحبات RSS وتحليل LLM. | 600 (ثانية، أي 10 دقائق) | لا تقم بتعيينه أقل من وقت المعالجة الإجمالي وإلا قد يحدث تراكم. |
| ITEMS_PER_FEED | الحد الأقصى لعدد إدخالات RSS التي يتم سحبها لكل خلاصة في كل دورة. يتم تجاهل العناصر المسحوبة سابقاً. | 50 | القيم الأعلى تخلق سحباً أولياً أكبر. معظم خلاصات RSS لا تنتج أكثر من 20 عنصراً جديداً كل 10 دقائق، بعضها أقل بكثير. |
| USE_CHUNKED_MODE | يتيح التقسيم التلقائي لمحتوى RSS إذا تجاوز بدل الرموز. 1 = تشغيل, 0 = إيقاف. | 1 | يمنع تجاوز السياق ولكنه قد يسبب ازدواجية في الإبلاغ عن الأحداث عبر الأجزاء. |
| CHUNK_SIZE | حجم كل جزء بـ الأحرف (وليس الرموز). | 8000 | تحويل تقريبي: 4 أحرف ≈ 1 رمز. أكرر: هذا بـ الأحرف. هل ينبغي أن يكون بالرموز؟ على الأرجح! لكنه ليس كذلك. |
| WRITE_TO_FILE | اختياري. يكتب جميع محتوى RSS المسحوب إلى ملف دوار للمقارنة الخارجية، اختبار prompt، أو مقارنة النماذج. لا يؤثر على وظيفة سنتينل الأساسية. 1 = تشغيل, 0 = إيقاف. | 0 | مفيد لاختبار وتقييم LLM دون اتصال بالإنترنت. |
| ANALYSIS_WINDOW | الفاصل الزمني المستخدم لكل تقرير معالجة جماعية. | 3600 (ثانية، أي 1 ساعة) | يُستخدم فقط عند تمكين المعالجة الجماعية. |
| BULK_ANALYSIS | يتيح تقارير اتجاهات RSS الجماعية الدورية. 1 = تشغيل, 0 = إيقاف. تجريبي جداً بالنسبة للتقارير الروتينية. prompt الخاص مشفر حالياً. | 0 | يرسل خلاصات RSS المتراكمة إلى LLM لتقرير تحليل اتجاهات واحد. قد يزيد حمل المعالجة بشكل كبير. |