Asosiy kontentga o‘tish
AI qo‘llanmalari

macOS’da jev-chat-jarvis yordamida WeChat maqsadini aniqlash, xavfni baholash va javob yaratish

Ushbu qo‘llanmada jev-chat-jarvis’ning ishlash prinsipi, macOS’ga o‘rnatish, ruxsatlar va model sozlamalari, kundalik foydalanish hamda ilg‘or moslashtirish usullari ko‘rib chiqiladi. Bu WeChat’ga kod kiritmasdan, ma’lumotlar bazasini o‘qimasdan va xabarlarni avtomatik yubormasdan chatlarni boshqarishda yordam beradi.

macOS’da jev-chat-jarvis yordamida WeChat maqsadini aniqlash, xavfni baholash va javob yaratish

Loyiha haqida

jev-chat-jarvis — macOS uchun WeChat xabarlariga yordam beruvchi vosita. WeChat’da boshqa tomondan yuborilgani aniq tasdiqlangan matnli xabar paydo bo‘lganda, u ekran mazmunini o‘qish va mahalliy model orqali xabarni tahlil qilib, jumlaning haqiqiy maqsadi, 0 dan 9 gacha xavf darajasi, harakat tavsiyasi hamda ehtimoliy javoblarni ko‘rsatadi.

Vosita faqat o‘qish rejimida ishlaydi: WeChat’ga kod kiritmaydi, hook ishlatmaydi, ma’lumotlar bazasini deshifrlamaydi va xabarlarni avtomatik yubormaydi. Foydalanuvchi suzuvchi panelda ehtimoliy javobni nusxalashi yoki “Kiritish” tugmasini bosib matnni WeChat kiritish maydoniga joylashtirishi mumkin. Yakuniy yuborish baribir foydalanuvchi tomonidan qo‘lda amalga oshiriladi.

Asosiy funksiyalar

  • Maqsad va xavfni tahlil qilish: 8 turdagi maqsadni nol namunali aniqlashni qo‘llab-quvvatlaydi, xavf darajasi va harakat tavsiyasini beradi. Loyiha README faylida 22 ta xitoycha regressiya namunasi asosida maqsadni aniqlash darajasi 86.4% deb ko‘rsatilgan.
  • Ehtimoliy javoblarni yaratish: 10 xil nutq uslubi mavjud. Har bir uslub uchun ehtiyotkor va erkin ikki turdagi javob yaratiladi, so‘ngra mahalliy model ularni tartiblaydi.
  • Parallel ishlov berish: Xabarni baholash va ehtimoliy javoblarni yaratish bir vaqtda boshlanishi mumkin. README’dagi M1 Pro ma’lumotlariga ko‘ra, maqsadni aniqlash taxminan 1.5 soniya, ehtimoliy javoblar esa taxminan 1.5–2 soniya oladi. Haqiqiy tezlik qurilma va xizmatga bog‘liq.
  • YOLO aniqlash ramkalari: Ixtiyoriy ravishda WeChat oynasida OCR orqali topilgan xabarlarni belgilaydi, boshqa tomon xabarlari bilan o‘z xabarlaringizni ajratadi va ishonchlilik darajasini ko‘rsatadi.
  • Mahalliy suzuvchi panel: Panelda joriy chat, tahlil holati, kutilayotgan xabarlar, kontekst, maqsad, aniqlash darajasi, xavf darajasi, harakat tavsiyasi va ehtimoliy javoblar ko‘rsatiladi.

O‘rnatish va ilk ishga tushirish

1-usul: macOS ilovasini yuklab olish

Agar vositadan to‘g‘ridan-to‘g‘ri foydalanmoqchi bo‘lsangiz, Releases sahifasidan macOS arxivini yuklab oling, uni oching va .app faylini “Applications” jildiga sudrang. Ilova notarial tasdiqdan o‘tmaganligi sababli, ilk ishga tushirishda Finder’da ilovani o‘ng tugma bilan bosib, “Open”ni tanlang; uni bevosita ikki marta bosmang.

Agar macOS “Ilova buzilgan, uni ochib bo‘lmaydi. Uni Chiqindiga ko‘chirishingiz kerak” degan xabarni ko‘rsatsa, odatda brauzer orqali yuklab olingan arxivda karantin atributi mavjud bo‘ladi. Ilovani darhol o‘chirmang, Terminal’da quyidagini bajaring:

macOS ilovasi buzilgani haqidagi ogohlantirish
sudo xattr -r -d com.apple.quarantine /Applications/jev-jarvis.app

Agar ilova nomi o‘zgartirilgan bo‘lsa, masalan jev-jarvis 2.app, buyruqdagi yo‘lni haqiqiy yo‘l bilan almashtiring.

2-usul: manba kodidan ishga tushirish

Manba kodidan ishga tushirishdan oldin WeChat ishga tushganini hamda Terminal yoki ishga tushirilayotgan ilovada ekranni yozib olish huquqi borligini tekshiring. Loyiha jildiga kirib, quyidagini bajaring:

./start.command

Loyiha Python muhitini boshqarish uchun uvdan foydalanadi. Tizimda ishlaydigan uv bo‘lmasa, har ikkala ishga tushirish usuli ham rasmiy o‘rnatish skriptini yuklab olib bajarishga urinadi; bu muvaffaqiyatsiz bo‘lsa, mavjud Homebrew’dan foydalanishga harakat qiladi. O‘rnatish va ishga tushirish jurnali quyidagi manzilda joylashadi:

~/Library/Logs/jev-jarvis.log

macOS huquqlarini berish

Ilk ishga tushirishda ko‘rsatmalarga amal qilib, “System Settings > Privacy & Security” bo‘limida jev-chat-jarvis uchun “Screen Recording” huquqini yoqing. Huquq kuchga kirishi uchun ilovadan chiqib, uni qayta oching.

“Kiritish” funksiyasi uchun “Accessibility” huquqi ham kerak. “Kiritish”ni birinchi marta bosganingizda tizim odatda ruxsat so‘raydi. v0.3.1 va undan oldingi versiyalarda python3.12 uchun ham tegishli huquqni yoqish kerak.

Bu huquqlar WeChat oynasi mazmunini o‘qish, kiritish boshqaruvini aniqlash va matnni joylashtirish amallarini bajarish uchun ishlatiladi; ular vosita xabarlarni avtomatik yuboradi degani emas.

Model va kalitlarni sozlash

Loyihada aniqlash qatlami va yaratish qatlami mavjud. Har ikkala qatlam uchun kalitlarni kiritmaslik mumkin:

  • Aniqlash qatlami: TypeSafe Jev kaliti sozlanmasa, mahalliy decider-2b modelidan foydalanadi. Birinchi yuklab olish uchun taxminan 7 GB kerak bo‘ladi.
  • Yaratish qatlami: Qadoqlangan ilovada umumiy kalit mavjud, shuning uchun shaxsiy kalitsiz ham ehtimoliy javoblarni yaratib ko‘rish mumkin.

Grafik sozlamalardan foydalanish

Suzuvchi oynaning yuqori o‘ng burchagidagi tishli g‘ildirak belgisini bosing yoki menyu satridan “J > Model Settings…”ni oching. Sozlamalar oynasi Jev, OpenAI-compatible va Anthropic-compatible uchta xizmat guruhining manzili, kaliti va modelini tahrirlashni qo‘llab-quvvatlaydi.

Xizmatning /models interfeysidan modellarni o‘qish uchun “Get model list”ni bosishingiz mumkin. Interfeys buni qo‘llab-quvvatlamasa yoki so‘rov muvaffaqiyatsiz tugasa, modelni qo‘lda kiritish mumkin. Modelni tanlagach, “Test connection”ni bosish mumkin. Sinov saqlanmagan sozlamalardan foydalanib, oldindan belgilangan salomlashuvni yuboradi; WeChat mazmuni o‘qilmaydi, biroq xizmat uchun oz miqdorda haq olinishi mumkin.

Sozlamalarni saqlagandan keyin ilovadan chiqib, uni qayta ochish kerak; joriy ishga tushirish jarayonida sozlamalar darhol almashtirilmaydi. Sozlamalar oynasi tahrirlaydigan standart fayl:

$XDG_CONFIG_HOME/jev-jarvis/env

Agar XDG_CONFIG_HOME belgilanmagan bo‘lsa, haqiqiy yo‘l:

~/.config/jev-jarvis/env

Muhit faylini qo‘lda yaratish

Sozlama faylini Terminal’da ham yaratish mumkin:

mkdir -p ~/.config/jev-jarvis
cat > ~/.config/jev-jarvis/env <<'ENV'
# Aniqlash qatlami (ixtiyoriy): kiritilmasa, mahalliy decider-2b ishlatiladi
export TYPESAFE_API_KEY=""

# Yaratish qatlami: istalgan OpenAI-compatible endpoint
export OPENAI_API_KEY="sk-sizning-keyingiz"
export OPENAI_BASE_URL="https://api.deepseek.com"
export OPENAI_MODEL="deepseek-chat"
# Ayrim modellar fikrlash rejimini o‘chirishni talab qiladi
# export OPENAI_EXTRA_BODY='{"enable_thinking":false}'
ENV
chmod 600 ~/.config/jev-jarvis/env

Sozlamalar ustuvorligi: muhit o‘zgaruvchilari foydalanuvchi env faylidan, foydalanuvchi env fayli esa loyiha .env faylidan ustun. Yaratish qatlamida OpenAI sozlamalari Anthropic sozlamalaridan ustun; ikkalasi ham sozlanmagan bo‘lsa, ichki umumiy kalit ishlatiladi.

Xizmat tanlashda e’tibor beriladigan jihatlar

  • DeepSeek uchun deepseek-chatdan foydalanish mumkin; README uni amaliy sinovlarda tezroq variant sifatida ko‘rsatadi.
  • 智谱 uchun glm-4-flashdan foydalanish va tegishli o‘zgaruvchilarni loyiha qo‘llab-quvvatlaydigan konfiguratsiya guruhiga kiritish mumkin.
  • Mahalliy Ollama uchun http://localhost:11434/v1ni, kalit sifatida ollamani va masalan qwen2.5:7b modelini kiriting.
  • Thinking modellaridan foydalanmaslikka harakat qiling. README’da fikrlash jarayoni max_tokensni tugatib qo‘yishi va natijada ehtimoliy javoblar bo‘sh qolishi mumkinligi eslatilgan. DeepSeek’dan foydalanganda deepseek-chatni tanlang.

Birinchi foydalanish

“Ilova buzilgan, uni ochib bo‘lmaydi” xato oynasi

Ilovani ishga tushirib, WeChat’ni ochgach, WeChat chat oynasi mavjud va faol holatda tursin. Vosita chat hududini oyna mazmuni va Vision OCR orqali o‘qiydi; tizim ekranini bevosita suratga olishni talab qilmaydi, shu sababli suzuvchi panel OCR natijasiga ta’sir qilmaydi.

Boshqa tomondan yuborilgani aniq bo‘lgan matnli xabar aniqlanganda, panel navbat bilan joriy chat va tahlil holatini, qayta ishlanayotgan xabar va kontekstni, maqsadni, aniqlash darajasini, xavf darajasini, harakat tavsiyasini hamda nutq uslublari bo‘yicha guruhlangan ehtimoliy javoblarni ko‘rsatadi.

Har bir ehtimoliy javobning chap tomonida mahalliy tartiblash ehtimoli, o‘ng tomonida esa “Copy” va “Fill” tugmalari ko‘rsatiladi. “Copy” qo‘lda joylashtirish uchun qulay; “Fill” matnni WeChat kiritish maydoniga yozadi, biroq yuborish tugmasini avtomatik bosmaydi.

Foydalanish namunasi

Masalan, boshqa tomon “Bu talabni bugun kuzatib boring” deb yuborsa, vosita xabarni aniqlash qatlamiga uzatadi va xavf natijasiga ko‘ra harakat tavsiyasini beradi. Shundan so‘ng yaratish qatlami bir nechta ohangdagi ehtimoliy javoblarni parallel yaratadi va mahalliy tartiblashdan keyin ularni qayta joylaydi. Kontekstga qarab bittasini tanlab, “Copy” yoki “Fill”ni bosing, so‘ng uni o‘zingiz tekshirib yuboring.

Agar xabar yo‘nalishini aniqlab bo‘lmasa, masalan matn chap va o‘ng tomonlar bo‘ylab cho‘zilgan yoki markazda joylashgan bo‘lsa, panel uni “Direction unconfirmed” deb belgilaydi va javob nishoni sifatida qabul qilmaydi. Faqat boshqa tomonga tegishli ekani aniq aniqlangan xabarlar baholash va yaratish jarayonini ishga tushiradi.

Ilg‘or foydalanish usullari

YOLO aniqlash ramkalarini yoqish

Aniqlash ramkalarini ishga tushirish vaqtida muhit o‘zgaruvchisi orqali yoqish mumkin:

JEV_BOXES=1

Ishga tushirgandan keyin menyu satridan “YOLO Detection Boxes”ni almashtirish mumkin. Aniqlash ramkalari taxminan har soniyada yangilanadi: ko‘k uzluksiz chiziq Accessibility interfeysi aniqlagan kiritish boshqaruvini, to‘q sariq uzlukli chiziq esa skrinshot chegarasidan taxmin qilingan kiritish hududini bildiradi. Uzlukli chiziq yozish mumkin bo‘lgan boshqaruv albatta topilganini anglatmaydi.

Maxsus nutq uslublari

JEV_TONES orqali nutq uslublarini qo‘shish yoki ustidan yozish mumkin. Har bir uslub | bilan ajratiladi va “nom=tavsif” formatida yoziladi. Masalan:

export JEV_TONES='Ishdan qochish ustasi=Uzoq yillik ishni chetlab o‘tish mutaxassisi kabi, vazifani odobni saqlagan holda chiroyli tarzda boshqaga yo‘naltir'

Tavsifda kerakli ohang va qaysi uslubga aylanmasligi aniq ko‘rsatilishi kerak. O‘zgartirgandan keyin ilovani qayta ishga tushirish zarur. Hozircha sozlamalar oynasi JEV_TONES, JEV_BOXES va OPENAI_EXTRA_BODYni o‘zgartirmaydi.

Qatlamlar bo‘yicha o‘zini sinash va muammolarni aniqlash

Manba kodidan ishga tushirganda idrok, aniqlash, yaratish va regressiya jarayonlarini alohida sinash mumkin:

uv run python src/perception.py
uv run python src/judge.py "Bu talabni bugun kuzatib boring"
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

Yaratish qatlamidagi --check faqat hisob ma’lumotlarini tahlil qilishni tekshiradi, haqiqiy ulanish sinoviga teng emas. Xizmat matn yarata olishini tasdiqlash uchun sozlamalar oynasidagi “Test connection”dan foydalaning.

Jurnallarni ko‘rish va diskni bo‘shatish

Agar ishga tushirgandan keyin birinchi xabar sekin qayta ishlansa, bunga odatda mahalliy modelning qizdirilishi sabab bo‘ladi. So‘nggi jurnalni ko‘rish mumkin:

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

Jurnalda bosqichlar bo‘yicha sarflangan vaqt ko‘rsatiladi, biroq xabar matni saqlanmaydi. Shu sababli muammo haqida xabar berishda uni ishlab chiquvchilarga taqdim etish mumkin.

Mahalliy aniqlash modeli keshi taxminan 7 GB joy egallaydi va quyidagi manzilda joylashadi:

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

O‘chirilgandan keyin mahalliy aniqlashdan navbatdagi foydalanishda model qayta yuklab olinadi. Python virtual muhiti quyidagi manzilda:

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

Ilovani o‘chirish bu muhitni avtomatik o‘chirmaydi; kerak bo‘lsa, uni qo‘lda tozalash mumkin.

“Kiritish” funksiyasining cheklovlari

Vosita avvalo macOS Accessibility interfeysi orqali yozadi va natijani qayta o‘qib tasdiqlaydi. Ayrim WeChat versiyalarida kiritish boshqaruvi mavjud bo‘lmasa, vizual moslik yo‘lidan foydalanishga urinadi: oyna, kiritish hududi va sarlavhani qayta tekshiradi, WeChat’ni faollashtiradi, kiritish hududini bosadi, matnni kiritadi va OCR orqali tekshiradi.

Vizual moslik yo‘lidan foydalanilganda vosita sichqonchani harakatlantirishi mumkin. Shu sababli kiritish vaqtida klaviatura yoki sichqonchani ishlatmang va chatni almashtirmang. U clipboard yoki Cmd+Vdan foydalanmaydi, yuborish tugmasini avtomatik bosmaydi, qator tashlash va tabulyatsiya belgilarini bo‘shliqqa aylantiradi.

Agar mavjud qoralama aniqlansa, moslik yo‘li to‘xtaydi va “Copy”dan qo‘lda foydalanishni tavsiya qiladi; oyna, fokus yoki sessiya o‘zgarganda ham to‘xtaydi. Vizual chegaralar va OCR xato aniqlashi mumkinligi sababli, foydalanishdan oldin joriy chat va kiritish maydoni mazmunini tekshiring.

Ma’lum cheklovlar

  • Rasmlar va stikerlar mazmunini o‘qib bo‘lmaydi; iqtibosli javoblar oddiy matn sifatida qayta ishlanadi; rasmiy akkaunt kartalari xabar sifatida tahlil qilinishi mumkin.
  • WeChat’ning to‘liq ekranli joylashuvi yoki versiya yangilanishi aniqlashni ishlamay qolishiga olib kelishi mumkin. Tegishli joylashuv konstantalari src/perception.py faylining yuqori qismida joylashgan.
  • Ko‘p oynali holatda “WeChat” yoki “微信” nomli asosiy oyna ustuvor aniqlanadi.
  • Faqat yo‘nalishi aniq tasdiqlangan boshqa tomon xabarlari javob jarayonini ishga tushiradi; yo‘nalishi aniqlanmagan xabarlar o‘tkazib yuboriladi.
  • To‘q mavzu, bir nechta monitor va turli WeChat versiyalaridagi vizual moslik orqali kiritish yo‘li hali ko‘proq tekshiruvni talab qiladi.

Maxfiylik va foydalanish eslatmalari

Loyiha faqat o‘zingizga tegishli qurilma va akkauntdagi ekran mazmunini o‘qishga mo‘ljallangan; u hech narsa kiritmaydi, hook qilmaydi, WeChat ma’lumotlar bazasini deshifrlamaydi va xabarlarni avtomatik yubormaydi. Iltimos, undan faqat o‘zingizga tegishli qurilmalarda foydalaning va WeChat dasturiy ta’minot litsenziyasi shartlariga rioya qiling. WeChat yangilanishlari maketni aniqlashni ishdan chiqarishi mumkin. Muammoga duch kelsangiz, avval jurnallarni tekshiring, so‘ng loyiha issue’lari orqali xabar bering.

Xulosa

jev-chat-jarvis ekran OCR’i, mahalliy maqsadni aniqlash, xavf darajasini belgilash, javob variantlarini yaratish va native suzuvchi panelni birlashtiradi. U WeChat xabarlarini tezda tushunishni va javob berish bosimini kamaytirishni istagan macOS foydalanuvchilari uchun mos. O‘rnatishda Gatekeeper, ekran yozib olish va Accessibility ruxsatlariga alohida e’tibor bering; foydalanishda esa maxfiylik, tezlik va xarajatga qarab mahalliy model, OpenAI’ga mos xizmat yoki Anthropic’ga mos xizmatni tanlang hamda yuborishdan oldin mazmunni doimo qo‘lda tekshiring.