دوز مباشرة للمحتوى الرئيسي
دروس فالذكاء الاصطناعي

استعمل jev-chat-jarvis فـ macOS باش تتعرّف على نوايا رسائل WeChat، تقيّم المخاطر وتولّد الردود

فهاد الدليل غادي نشرحو كيفاش كيخدم jev-chat-jarvis، وطريقة تثبيتو فـ macOS، وإعداد الصلاحيات والموديلات، والاستعمال اليومي وطرق التخصيص المتقدمة، باش يعاونك فمعالجة المحادثات بلا حقن WeChat، بلا قراية قاعدة البيانات وبلا إرسال أوتوماتيكي للرسائل.

استعمل jev-chat-jarvis فـ macOS لتحليل رسائل WeChat وتوليد الردود

نبذة على المشروع

jev-chat-jarvis هي أداة مساعدة لرسائل WeChat موجهة لـ macOS. ملي كيبان فـ WeChat نص واضح باللي جاي من الطرف الآخر، كتقرا محتوى الشاشة وكتحلل الرسالة بنموذج محلي، وكتعرض النية الحقيقية ديال الجملة، ودرجة المخاطر من 0 حتى لـ 9، والاقتراح ديال شنو يتدار، وزيد عليها ردود محتملة.

الأداة خدامة غير بالقراءة، ما كتدخلش فـ WeChat، وما كتستعملش hook، وما كتفكّش تشفير قاعدة البيانات، وما كتصيفطش الرسائل أوتوماتيكياً. المستخدم يقدر ينسخ المحتوى المقترح من اللوحة العائمة، ولا يضغط على «دخّل» باش يحط النص فخانة الكتابة ديال WeChat، ولكن الإرسال النهائي كيبقى يدوياً من طرف المستخدم.

الوظائف الرئيسية

  • تحليل النية والمخاطر: كيدعم التعرف بدون أمثلة على 8 أنواع ديال النيات، وكيعطي تصنيف للمخاطر واقتراحات للتصرف. README ديال المشروع كيعتمد على 22 عينة صينية للاختبار الراجعي، بنسبة تعرف على النية قدرها 86.4%.
  • توليد الردود المقترحة: فيه 10 أساليب جاهزة، وكل أسلوب كيولد نوعين ديال الردود: واحد حذر وواحد مرن، ومن بعد كيرتبهم النموذج المحلي.
  • المعالجة المتوازية: فحص الرسالة وتوليد الردود المقترحة يقدرو يبداو فـ نفس الوقت. الوقت المرجعي المذكور فـ README على M1 Pro هو تقريباً 1.5 ثانية للنية و1.5 حتى لـ 2 ثانية للردود، والسرعة الفعلية كتعلق بالجهاز والخدمة.
  • مربعات كشف YOLO: اختيارياً، يقدر يبين فنافذة WeChat الرسائل اللي لقاها OCR، ويميز بين رسائل الطرف الآخر ورسائلك، مع عرض نسبة الثقة.
  • لوحة عائمة أصلية: اللوحة كتعرض المحادثة الحالية، حالة التحليل، الرسائل اللي باقية للمعالجة، السياق، النية، نسبة التعرف، درجة المخاطر، اقتراح التصرف والردود المقترحة.

التثبيت والتشغيل لأول مرة

الطريقة الأولى: تحميل تطبيق macOS

إلى بغيتي غير تستعمل الأداة مباشرة، تقدر تحمل ملف macOS المضغوط من Releases، ومن بعد تفك الضغط وتجر ملف .app لـ «التطبيقات». حيت التطبيق ما دازش من التوثيق، فالتشغيل الأول خاصك تكليكي عليه بالزر اليمين من Finder وتختار «فتح»، وما تديرش عليه double-click مباشرة.

إلى بان فـ macOS التنبيه «التطبيق تالف وما قدرش يتحل، خاصك تنقلو لسلة المهملات»، فالغالب أن الملف المضغوط اللي تحمّل من المتصفح فيه خاصية العزل. ما تمسحش التطبيق مباشرة، وقدر تنفذ فـ Terminal:

تنبيه تلف تطبيق macOS
sudo xattr -r -d com.apple.quarantine /Applications/jev-jarvis.app

إلى تبدل اسم التطبيق، بحال jev-jarvis 2.app، بدّل المسار فالأمر بالمسار الحقيقي.

الطريقة الثانية: التشغيل من المصدر

قبل ما تشغل من المصدر، تأكد أن WeChat شاعل وأن Terminal أو التطبيق اللي غادي تشغلو عندو صلاحية تسجيل الشاشة. دخل لمجلد المشروع ونفذ:

./start.command

المشروع كيستعمل uv لتدبير بيئة Python. إلى ما كانش uv متوفر فالنظام، جوج مداخل التشغيل غادي يحاولو يحملو وينفذو سكريبت التثبيت الرسمي؛ وإذا فشل هاد الشي، غادي يحاولو يستعملو Homebrew الموجود من قبل. سجلات التثبيت والتشغيل كاينة فـ:

~/Library/Logs/jev-jarvis.log

منح صلاحيات macOS

فأول تشغيل، تبع التعليمات ومشي لـ «إعدادات النظام > الخصوصية والأمان»، وفعّل لـ jev-chat-jarvis صلاحية «تسجيل الشاشة»، ومن بعد خرج من التطبيق وعاود حلو باش تولي الصلاحية خدامة.

وظيفة «دخّل» كتحتاج حتى لصلاحية «إمكانية الوصول». فأول مرة تضغط فيها على «دخّل»، غالباً غادي يبان طلب التفويض. الإصدارات v0.3.1 وما قبلها كتحتاج حتى تفعيل الصلاحية المناسبة لـ python3.12.

هاد الصلاحيات كتستعمل لقراءة محتوى نافذة WeChat، وتحديد عنصر الكتابة، وتنفيذ عملية الإدخال، وما كتعنيش أن الأداة غادي تصيفط الرسائل أوتوماتيكياً.

إعداد النماذج والمفاتيح

المشروع فيه طبقة للحكم وطبقة للتوليد، وتقدر تخلي مفاتيح الجوج بلا تعمير:

  • طبقة الحكم: إلى ما عيّنتيش مفتاح TypeSafe Jev، غادي يستعمل النموذج المحلي decider-2b. التحميل الأول كيحتاج تقريباً 7 GB.
  • طبقة التوليد: التطبيق المجمّع فيه مفتاح مشترك، وتقدر تجرب توليد الردود المقترحة بلا مفتاح شخصي.

الاستعمال عبر الإعدادات الرسومية

ضغط على أيقونة الترس فالجهة العليا اليمنى ديال النافذة العائمة، أو فتح «J > إعدادات النماذج…» من شريط القوائم. واجهة الإعداد كتسمح بتعديل العنوان والمفتاح والنموذج ديال ثلاث خدمات: Jev وOpenAI المتوافقة وAnthropic المتوافقة.

تقدر تضغط على «الحصول على قائمة النماذج» باش تقرا النماذج من واجهة /models ديال الخدمة، أو تعمرها يدوياً إلى كانت الواجهة ما كتدعمش هاد الطلب أو فشل. من بعد اختيار النموذج، تقدر تضغط على «اختبار الاتصال»؛ الاختبار كيرسل تحية ثابتة باستعمال الإعدادات اللي مازال ما تحفظاتش، وما كيقراش محتوى WeChat، ولكن ممكن يسبب مصاريف قليلة عند الخدمة.

من بعد حفظ الإعدادات، خاصك تخرج من التطبيق وتعاود تحلو، حيت التشغيل الحالي ما كيبدلش الإعدادات فوراً. الملف الافتراضي اللي كتعدلو نافذة الإعدادات هو:

$XDG_CONFIG_HOME/jev-jarvis/env

إلى ما كانش XDG_CONFIG_HOME مضبوط، المسار الفعلي هو:

~/.config/jev-jarvis/env

إنشاء ملف البيئة يدوياً

تقدر حتى تنشئ ملف الإعدادات من Terminal:

mkdir -p ~/.config/jev-jarvis
cat > ~/.config/jev-jarvis/env <<'ENV'
# طبقة الحكم (اختيارية): إلا تخلاّت خاوية غادي يستعمل decider-2b المحلي
export TYPESAFE_API_KEY=""

# طبقة التوليد: أي endpoint متوافق مع OpenAI
export OPENAI_API_KEY="sk-مفتاحك"
export OPENAI_BASE_URL="https://api.deepseek.com"
export OPENAI_MODEL="deepseek-chat"
# بعض النماذج خاصها تسد وضعية التفكير
# export OPENAI_EXTRA_BODY='{"enable_thinking":false}'
ENV
chmod 600 ~/.config/jev-jarvis/env

الأولوية فالإعدادات هي: متغيرات البيئة أعلى من ملف env ديال المستخدم، وملف env ديال المستخدم أعلى من .env ديال المشروع. فطبقة التوليد، إعدادات OpenAI عندها الأولوية على إعدادات Anthropic؛ وما كيتستعمل المفتاح المشترك المدمج إلا إلى ما كان حتى واحد منهما مضبوط.

ملاحظات عند اختيار الخدمة

  • DeepSeek يقدر يستعمل deepseek-chat، وREADME كيذكره كاختيار سريع فالتجارب العملية.
  • 智谱 يقدر يستعمل glm-4-flash، وعمر المتغيرات المناسبة حسب مجموعة الإعدادات اللي كيدعمها المشروع.
  • Ollama المحلي يقدر يستعمل http://localhost:11434/v1، والمفتاح يكون ollama، والنموذج مثلاً qwen2.5:7b.
  • حاول ما تستعملش نماذج thinking. README كينبه أن عملية التفكير ممكن تستهلك max_tokens كاملة، وهاد الشي يخلي الردود المقترحة خاوية؛ مع DeepSeek خاصك تختار deepseek-chat.

الاستعمال الأول

نافذة الخطأ «التطبيق تالف وما قدرش يتحل»

شعل التطبيق وحل WeChat، وخلي نافذة المحادثة ديال WeChat باينة وقابلة للاستعمال. الأداة كتقرا منطقة المحادثة من محتوى النافذة ومن Vision OCR، وما كتحتاجش تلتقط شاشة النظام مباشرة، وبهذا اللوحة العائمة ما كتأثرش على OCR.

منين كتتعرف على رسالة نصية واضحة جاية من الطرف الآخر، اللوحة غادي تعرض بالتتابع المحادثة الحالية وحالة التحليل، الرسالة اللي كتتعالج والسياق، النية، نسبة التعرف، درجة المخاطر، اقتراح التصرف، والردود المقترحة مرتبة حسب الأسلوب.

كل رد مقترح كيبان على اليسار ديالو احتمال الترتيب المحلي، وعلى اليمين كاينين «نسخ» و«دخّل». «نسخ» كتسهل اللصق اليدوي؛ و«دخّل» كيدخل النص فخانة الكتابة ديال WeChat، ولكن ما كيضغطش أوتوماتيكياً على زر الإرسال.

مثال على الاستعمال

مثلاً، إلى صيفط الطرف الآخر «تبّع هاد الطلب اليوم»، الأداة غادي تعطي الرسالة لطبقة الحكم باش تتعرف عليها، وبناءً على نتيجة المخاطر غادي تعطي اقتراح للتصرف؛ ومن بعد طبقة التوليد غادي تولد بالتوازي ردوداً بعدة نبرات، وترتبها محلياً. تقدر تختار واحد حسب السياق، وتضغط على «نسخ» أو «دخّل»، ومن بعد تراجعو وتصيفطو بنفسك.

إلى ما قدرش النظام يحدد اتجاه الرسالة، مثلاً إلا كان النص ممتد من اليمين لليسار أو موجود فالوسط، اللوحة غادي تعلم عليه بـ «الاتجاه ما تأكدش»، وما غاديش تعتبره هدفاً للرد. غير الرسائل اللي تأكد بوضوح أنها جاية من الطرف الآخر هي اللي غادي تطلق الحكم والتوليد.

تقنيات الاستعمال المتقدم

تفعيل مربعات كشف YOLO

تقدر تفعّل مربعات الكشف عند التشغيل باستعمال متغير البيئة:

JEV_BOXES=1

ومن بعد التشغيل، تقدر حتى تبدّل «مربعات كشف YOLO» من شريط القوائم. مربعات الكشف كتتجدد تقريباً كل ثانية: الخط الأزرق المتصل كيعني عنصر الكتابة اللي تحدد عبر واجهة إمكانية الوصول، والخط البرتقالي المتقطع كيعني منطقة الكتابة المقدرة بناءً على حدود لقطة الشاشة. الخط المتقطع ما كيعنيش بالضرورة أن الأداة لقات عنصر قابل للكتابة.

تخصيص الأساليب

استعمل JEV_TONES باش تزيد أو تبدل الأساليب. كل أسلوب كيتفصل بـ |، والصيغة هي «الاسم=الشرح»، مثلاً:

export JEV_TONES='خبير التملص=بحال لاعب قديم فالتملص، دفع الخدمة بذكاء وبلا ما يفقد الاحترام'

فالشرح خاصك توضح النبرة المطلوبة وشنو ما خاصهاش تولي عليه. من بعد التعديل، خاصك تعاود تشغيل التطبيق. نافذة الإعدادات حالياً ما كتبدلش JEV_TONES ولا JEV_BOXES ولا OPENAI_EXTRA_BODY.

الاختبار والتشخيص حسب الطبقات

إلى شغلت من المصدر، تقدر تختبر الإدراك والحكم والتوليد ومسار الاختبار الراجعي كل واحد بوحدو:

uv run python src/perception.py
uv run python src/judge.py "تبّع هاد الطلب اليوم"
uv run python src/judge_zh_test.py
uv run python src/generate.py --check
uv run python -B -m unittest discover -s tests
uv run python probe/bootstrap_regression.py

الخيار --check ديال طبقة التوليد كيتحقق غير من قراءة بيانات الاعتماد، وماشي اختبار اتصال حقيقي. باش تتأكد أن الخدمة قادرة تولد نص، استعمل «اختبار الاتصال» من نافذة الإعدادات.

عرض السجلات وتحرير مساحة القرص

إلى كانت معالجة أول رسالة بطيئة من بعد التشغيل، فالغالب السبب هو تسخين النموذج المحلي. تقدر تشوف آخر السجلات:

tail -40 ~/Library/Logs/jev-jarvis.log

السجل فيه مدة كل مرحلة، ولكن ما فيهش نص الرسائل، وهاد الشي كيخليه مناسب باش تشاركو مع المطورين عند الإبلاغ عن مشكل.

ذاكرة التخزين المؤقت للنموذج المحلي كتحتاج تقريباً 7 GB، وموجودة فـ:

~/.cache/huggingface/hub/models--Mapika--decider-2b

إلى مسحتيها، غادي يعاود يتحمل النموذج فالمرة الجاية اللي غادي تستعمل فيها الحكم المحلي. بيئة Python الافتراضية موجودة فـ:

~/Library/Application Support/jev-jarvis/venv

مسح التطبيق ما كيمسحش هاد البيئة أوتوماتيكياً، وتقدر تمسحها يدوياً عند الحاجة.

حدود وظيفة «دخّل»

الأداة كتستعمل أولاً واجهة إمكانية الوصول ديال macOS للكتابة وللتأكد من القراءة. إلى كانت بعض إصدارات WeChat ما كتقدمش عنصر كتابة، غادي تحاول تستعمل مساراً بصرياً متوافقاً: تراجع النافذة ومنطقة الكتابة والعنوان، تفعّل WeChat، تضغط على منطقة الكتابة، تدخل النص، ومن بعد تتحقق منه عبر OCR.

فالمسار البصري المتوافق، الأداة ممكن تحرك الماوس، وهاد الشي علاش ما خاصكش تستعمل الكيبورد أو الماوس ولا تبدل المحادثة أثناء الإدخال. ما كتستعملش الحافظة ولا Cmd+V، وما كتضغطش أوتوماتيكياً على زر الإرسال، وتحول الأسطر وعلامات التبويب لمسافات.

إلى لقات مسودة موجودة من قبل، المسار المتوافق غادي يوقف ويطلب منك تستعمل «نسخ» يدوياً؛ وكيوقف حتى إلى تبدلات النافذة أو التركيز أو الجلسة. وبما أن الحدود البصرية وOCR يقدرو يخطئو، خاصك تتأكد من المحادثة الحالية ومن محتوى خانة الكتابة قبل الاستعمال.

الحدود المعروفة

  • ما يمكنش قراءة محتوى الصور والملصقات؛ والردود المقتبسة كتتعالج كنص عادي؛ وبطاقات الحسابات الرسمية ممكن تتحسب رسائل للتحليل.
  • التخطيط بملء الشاشة فـ WeChat أو تغيير إصدار WeChat ممكن يسبب فشل التعرف، وثوابت التخطيط المرتبطة بها موجودة فبداية src/perception.py.
  • فحالة تعدد النوافذ، كيتعطى الأولوية للنافذة الرئيسية «微信» أو «WeChat».
  • غير رسائل الطرف الآخر اللي تأكد اتجاهها بوضوح هي اللي كتطلق مسار الرد؛ الرسائل اللي ما قدرش النظام يحدد اتجاهها كيتجاوزها.
  • مسار الإدخال البصري المتوافق مازال كيحتاج لمزيد من التحقق مع الوضع الداكن، وتعدد الشاشات، وإصدارات WeChat المختلفة.

تنبيهات الخصوصية والاستعمال

المشروع مخصّص لقراية محتوى الشاشة فالجهاز ديالك والحساب ديالك، بلا حقن، بلا hook، وبلا فكّ تشفير قاعدة بيانات WeChat، وما كيبعثش الميساجات أوتوماتيكياً. استعملو غير فالأجهزة ديالك، والتازم باتفاقية ترخيص برنامج WeChat. تحديثات WeChat تقدر تسبّب فتعطّل التعرّف على الواجهة؛ إلا وقع شي مشكل، شوف اللّوغات اللّول، ومن بعد صيفط الملاحظات فـ issue ديال المشروع.

الخلاصة

jev-chat-jarvis كيجمع بين OCR ديال الشاشة، وتحديد النية محلياً، وتصنيف المخاطر، وتوليد أجوبة مقترحة، ولوحة عائمة أصلية، وكيصلح لمستعملي macOS اللي باغين يفهمو ميساجات WeChat بسرعة وينقصو ضغط الرد. وقت التثبيت، خاصك تهتم بـ Gatekeeper وبصلاحيات تسجيل الشاشة والولوج المساعد؛ ووقت الاستعمال، اختار بين موديل محلي، أو خدمة متوافقة مع OpenAI، أو خدمة متوافقة مع Anthropic، على حساب الخصوصية والسرعة والتكلفة، وديما راجع المحتوى يدوياً قبل الإرسال.