
Muhtasari wa mradi
jev-chat-jarvis ni zana ya kusaidia ujumbe wa WeChat kwa macOS. Inapotokea ujumbe wa maandishi ambao imethibitishwa kuwa umetoka kwa mtu mwingine ndani ya WeChat, husoma yaliyomo kwenye skrini na kutumia modeli ya ndani kuchanganua ujumbe, kisha huonyesha dhamira halisi ya sentensi hiyo, kiwango cha hatari kutoka 0 hadi 9, mapendekezo ya hatua na majibu yanayoweza kutumika.
Zana hii hufanya kazi kwa kusoma pekee: haiingizi msimbo kwenye WeChat, haitumii hook, haisimbui hifadhidata, wala haitumi ujumbe kiotomatiki. Mtumiaji anaweza kunakili maudhui yaliyopendekezwa kwenye paneli inayoelea, au kubofya “Jaza” ili kuyaweka kwenye kisanduku cha kuingiza cha WeChat; utumaji wa mwisho bado hufanywa na mtumiaji mwenyewe.
Vipengele muhimu
- Uchambuzi wa dhamira na hatari: Inaauni utambuzi wa zero-shot wa aina 8 za dhamira, pamoja na upangaji wa hatari na mapendekezo ya hatua. README ya mradi hutumia sampuli 22 za urejeshaji za Kichina kama msingi, na kiwango cha utambuzi wa dhamira ni 86.4%.
- Uzalishaji wa majibu yanayopendekezwa: Ina miundo 10 ya mazungumzo; kila muundo huzalisha aina mbili za majibu, salama na za kupumzika, kisha modeli ya ndani huzipanga.
- Uchakataji sawia: Uamuzi wa ujumbe na uzalishaji wa majibu unaopendekezwa unaweza kuanza kwa wakati mmoja. Muda wa marejeo wa M1 Pro uliotolewa kwenye README ni takriban sekunde 1.5 kwa dhamira na sekunde 1.5 hadi 2 kwa majibu yanayopendekezwa; kasi halisi hutegemea kifaa na huduma.
- Sanduku za utambuzi za YOLO: Kwa hiari, inaweza kuweka alama kwenye ujumbe uliogunduliwa na OCR ndani ya dirisha la WeChat, kutofautisha ujumbe wa mtu mwingine na ujumbe wako, na kuonyesha kiwango cha uaminifu.
- Paneli asilia inayoelea: Paneli huonyesha gumzo la sasa, hali ya uchanganuzi, ujumbe unaosubiri kuchakatwa, muktadha, dhamira, kiwango cha utambuzi, kiwango cha hatari, mapendekezo ya hatua na majibu yanayopendekezwa.
Kusakinisha na kuanzisha mara ya kwanza
Njia ya kwanza: Pakua programu ya macOS
Ikiwa unataka kuitumia moja kwa moja, unaweza kupakua kifurushi cha macOS kwenye Releases, kukifungua, kisha uburute .app hadi kwenye “Applications”. Kwa kuwa programu haijapitia uthibitishaji wa notarization, mara ya kwanza ifungue kwa kubofya kulia programu hiyo kwenye Finder na kuchagua “Open”; usiibofye mara mbili moja kwa moja.
Ikiwa macOS itaonyesha “Imeharibika, haiwezi kufunguliwa; unapaswa kuihamisha hadi kwenye Recycle Bin”, kwa kawaida kifurushi kilichopakuliwa kwenye kivinjari huwa na sifa ya quarantine. Usifute programu mara moja; unaweza kutekeleza yafuatayo kwenye terminal:

sudo xattr -r -d com.apple.quarantine /Applications/jev-jarvis.appIkiwa jina la programu limebadilishwa, kwa mfano jev-jarvis 2.app, badilisha njia iliyo kwenye amri iwe njia halisi.
Njia ya pili: Endesha kutoka kwenye msimbo wa chanzo
Kabla ya kuendesha kutoka kwenye msimbo wa chanzo, hakikisha WeChat imeanzishwa na terminal au programu inayoanzishwa ina ruhusa ya kurekodi skrini. Baada ya kuingia kwenye saraka ya mradi, tekeleza:
./start.commandMradi hutumia uv kudhibiti mazingira ya Python. Ikiwa hakuna uv inayopatikana kwenye mfumo, njia zote mbili za kuanzisha zitajaribu kupakua na kutekeleza hati rasmi ya usakinishaji; zikishindwa, zitajaribu pia kutumia Homebrew iliyopo. Kumbukumbu za usakinishaji na uanzishaji ziko kwenye:
~/Library/Logs/jev-jarvis.logKutoa ruhusa za macOS
Wakati wa kuanzisha mara ya kwanza, fuata maelekezo kwenye “System Settings > Privacy & Security” ili kumpa jev-chat-jarvis ruhusa ya “Screen Recording”, kisha funga na uanzishe tena programu ili ruhusa ianze kutumika.
Kipengele cha “Jaza” pia kinahitaji ruhusa ya “Accessibility”. Unapobofya “Jaza” kwa mara ya kwanza, mfumo kwa kawaida utaonyesha ombi la ruhusa. Toleo la v0.3.1 na matoleo ya awali pia yanahitaji ruhusa inayofaa kwa python3.12.
Ruhusa hizi hutumika kusoma yaliyomo kwenye dirisha la WeChat, kutafuta kidhibiti cha kuingiza na kutekeleza operesheni ya kujaza; hazimaanishi kuwa zana itatuma ujumbe kiotomatiki.
Kusanidi modeli na funguo
Mradi una tabaka la uamuzi na tabaka la uzalishaji; funguo za tabaka zote mbili zinaweza kuachwa bila kujazwa:
- Tabaka la uamuzi: Ikiwa hutasanidi ufunguo wa TypeSafe Jev, itatumia modeli ya ndani ya
decider-2b. Upakuaji wa kwanza unahitaji takriban 7 GB. - Tabaka la uzalishaji: Programu iliyofungwa inajumuisha ufunguo wa pamoja, hivyo unaweza kujaribu kuzalisha majibu yanayopendekezwa bila kusanidi ufunguo binafsi.
Kutumia mipangilio ya picha
Bofya ikoni ya gia kwenye kona ya juu kulia ya dirisha linaloelea, au fungua “J > Model Settings…” kwenye upau wa menyu ili kufungua dirisha la usanidi. Kiolesura cha mipangilio kinaauni uhariri wa anwani, funguo na modeli za huduma za Jev, OpenAI zinazooana na Anthropic zinazooana.
Unaweza kubofya “Get Model List” ili kusoma modeli kutoka kwenye kiolesura cha huduma cha /models, au kuzijaza mwenyewe ikiwa kiolesura hakiauni ombi hilo au ombi limeshindwa. Baada ya kuchagua modeli, unaweza kubofya “Test Connection”; jaribio litatuma salamu maalum kwa kutumia usanidi ambao bado haujahifadhiwa, halitasoma yaliyomo kwenye WeChat, lakini linaweza kusababisha gharama ndogo ya huduma.
Baada ya kuhifadhi usanidi, lazima ufunge na uanzishe tena programu; usanidi hautabadilishwa papo hapo katika uendeshaji huu. Faili chaguo-msingi inayohaririwa na dirisha la mipangilio ni:
$XDG_CONFIG_HOME/jev-jarvis/envIkiwa XDG_CONFIG_HOME haijawekwa, njia halisi ni:
~/.config/jev-jarvis/envKuunda faili ya mazingira mwenyewe
Unaweza pia kuunda faili ya usanidi kwenye terminal:
mkdir -p ~/.config/jev-jarvis
cat > ~/.config/jev-jarvis/env <<'ENV'
# Tabaka la uamuzi (hiari): likiachwa wazi, itatumia decider-2b ya ndani
export TYPESAFE_API_KEY=""
# Tabaka la uzalishaji: endpoint yoyote inayooana na OpenAI
export OPENAI_API_KEY="sk-ufunguo-wako"
export OPENAI_BASE_URL="https://api.deepseek.com"
export OPENAI_MODEL="deepseek-chat"
# Baadhi ya modeli zinahitaji hali ya kufikiri izimwe
# export OPENAI_EXTRA_BODY='{"enable_thinking":false}'
ENV
chmod 600 ~/.config/jev-jarvis/envMpangilio wa kipaumbele ni: vigeu vya mazingira vina kipaumbele kuliko faili ya env ya mtumiaji, na faili ya env ya mtumiaji ina kipaumbele kuliko .env ya mradi. Katika tabaka la uzalishaji, usanidi wa OpenAI una kipaumbele kuliko usanidi wa Anthropic; ikiwa hakuna kati ya hizo iliyosanidiwa, ndipo ufunguo wa pamoja uliojengewa ndani hutumika.
Mambo ya kuzingatia unapochagua huduma
- DeepSeek inaweza kutumia
deepseek-chat; README inaitaja kama chaguo lililojaribiwa kuwa la haraka zaidi. - Zhipu inaweza kutumia
glm-4-flash, na vigeu vinavyofaa vijazwe kulingana na kikundi cha usanidi kinachoauniwa na mradi. - Ollama ya ndani inaweza kutumia
http://localhost:11434/v1, huku ufunguo ukiwaollamana modeli ikiwa, kwa mfano,qwen2.5:7b. - Jaribu kuepuka kutumia modeli za thinking. README inaonya kuwa mchakato wa kufikiri unaweza kutumia
max_tokensyote na kusababisha jibu linalopendekezwa kuwa tupu; unapotumia DeepSeek, chaguadeepseek-chat.
Matumizi ya kwanza

Baada ya kuanzisha programu na kufungua WeChat, hakikisha dirisha la gumzo la WeChat linapatikana. Zana husoma eneo la gumzo kupitia yaliyomo kwenye dirisha na Vision OCR; haihitaji kunasa skrini ya mfumo moja kwa moja, hivyo paneli inayoelea haitachafua OCR.
Inapotambua ujumbe wa maandishi ambao umetoka wazi kwa mtu mwingine, paneli itaonyesha kwa mfuatano gumzo la sasa na hali ya uchanganuzi, ujumbe unaochakatwa na muktadha wake, dhamira, kiwango cha utambuzi, kiwango cha hatari, mapendekezo ya hatua, pamoja na majibu yanayopendekezwa yaliyopangwa kwa makundi ya miundo ya mazungumzo.
Kushoto kwa kila jibu linalopendekezwa kuna uwezekano wa upangaji wa ndani, na upande wa kulia kuna vitufe vya “Nakili” na “Jaza”. “Nakili” hurahisisha kubandika mwenyewe; “Jaza” huandika maandishi kwenye kisanduku cha kuingiza cha WeChat, lakini haibofyi kitufe cha kutuma kiotomatiki.
Mfano wa matumizi
Kwa mfano, mtu mwingine akituma “Shughulikia ombi hili leo”, zana itapeleka ujumbe kwenye tabaka la uamuzi ili kuutambua, kisha kutoa mapendekezo ya hatua kulingana na matokeo ya hatari; baadaye tabaka la uzalishaji litatengeneza kwa wakati mmoja majibu kadhaa yenye mitindo tofauti ya mazungumzo, na kuyapanga upya baada ya upangaji wa ndani. Unaweza kuchagua moja kulingana na muktadha, kubofya “Nakili” au “Jaza”, kisha kuikagua na kuituma mwenyewe.
Ikiwa mwelekeo wa ujumbe hauwezi kubainishwa, kwa mfano maandishi yanavuka kutoka kushoto kwenda kulia au yako katikati, paneli itaweka alama “Mwelekeo haujathibitishwa” na haitautumia kama lengo la kujibu. Ni ujumbe tu uliotambuliwa wazi kuwa umetoka kwa mtu mwingine ndio utakaosababisha uamuzi na uzalishaji.
Mbinu za juu za matumizi
Kuwasha sanduku za utambuzi za YOLO
Unaweza kuwasha sanduku za utambuzi wakati wa kuanzisha kwa kutumia kigeu cha mazingira:
JEV_BOXES=1Baada ya kuanzisha, unaweza pia kubadilisha “YOLO Detection Boxes” kutoka kwenye upau wa menyu. Sanduku za utambuzi husasishwa takriban mara moja kwa sekunde: mstari thabiti wa bluu unaonyesha kidhibiti cha kuingiza kilichopatikana na kiolesura cha Accessibility, huku mstari wa machungwa uliokatika ukionyesha eneo la kuingiza lililokadiriwa kutokana na mipaka ya picha ya skrini. Mstari uliokatika haumaanishi kuwa kidhibiti kinachoweza kuandikwa kimepatikana kwa hakika.
Miundo maalum ya mazungumzo
Tumia JEV_TONES kuongeza au kubadilisha miundo ya mazungumzo. Kila muundo hutenganishwa kwa |, kwa muundo wa “jina=maelezo”, kwa mfano:
export JEV_TONES='Mtaalamu wa kukwepa kazi=Kama mtaalamu mwenye uzoefu wa kukwepa kazi, sukuma jukumu hilo kwa ustadi bila kupoteza adabu'Maelezo yanapaswa kubainisha mtindo wa sauti unaohitajika na mtindo ambao haupaswi kutokea. Baada ya kubadilisha, lazima uanzishe tena programu. Kwa sasa dirisha la mipangilio halibadilishi JEV_TONES, JEV_BOXES au OPENAI_EXTRA_BODY.
Jaribio na utatuzi kwa tabaka
Unapoendesha kutoka kwenye msimbo wa chanzo, unaweza kujaribu kwa kujitegemea mtazamo, uamuzi, uzalishaji na mchakato wa urejeshaji:
uv run python src/perception.py
uv run python src/judge.py "Shughulikia ombi hili leo"
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.pyKati ya hivi, --check ya tabaka la uzalishaji hukagua tu uchanganuzi wa vitambulisho; si sawa na jaribio halisi la muunganisho. Ili kuthibitisha kuwa huduma inaweza kuzalisha maandishi, tumia “Test Connection” kwenye dirisha la mipangilio.
Kuangalia kumbukumbu na kuachilia nafasi ya diski
Ikiwa uchakataji wa ujumbe wa kwanza baada ya kuanzisha ni wa polepole, kwa kawaida husababishwa na kupashwa joto kwa modeli ya ndani. Unaweza kuangalia kumbukumbu za hivi karibuni:
tail -40 ~/Library/Logs/jev-jarvis.logKumbukumbu zina muda wa uchakataji kwa kila hatua, lakini hazina maudhui ya ujumbe, hivyo zinafaa kumpa msanidi programu unapotoa taarifa ya tatizo.
Kache ya modeli ya ndani ya uamuzi hutumia takriban 7 GB na iko kwenye:
~/.cache/huggingface/hub/models--Mapika--decider-2bUkiifuta, itapakuliwa tena utakapotumia uamuzi wa ndani wakati mwingine. Mazingira pepe ya Python yako kwenye:
~/Library/Application Support/jev-jarvis/venvKufuta programu hakutafuta mazingira haya kiotomatiki; unaweza kuyasafisha mwenyewe inapohitajika.
Vikomo vya kipengele cha “Jaza”
Zana hutumia kwanza kiolesura cha Accessibility cha macOS kuandika na kusoma tena ili kuthibitisha. Wakati baadhi ya matoleo ya WeChat hayatoi kidhibiti cha kuingiza, itajaribu njia ya uoanifu wa kuona: kukagua tena dirisha, eneo la kuingiza na kichwa, kuamilisha WeChat, kubofya eneo la kuingiza, kuandika maandishi na kuyathibitisha kwa OCR.
Inapotumia njia ya uoanifu wa kuona, zana inaweza kusogeza kipanya; kwa hiyo usitumie kibodi, kipanya au kubadilisha gumzo wakati wa kujaza. Haitumii ubao wa kunakili wala Cmd+V, haibonyezi kitufe cha kutuma kiotomatiki, na mistari mipya pamoja na tabo hubadilishwa kuwa nafasi.
Ikigundua rasimu iliyopo, njia ya uoanifu itasimama na kukuelekeza kutumia “Nakili” mwenyewe; pia itasimama dirisha, fokasi au kipindi cha gumzo kinapobadilika. Kwa kuwa mipaka ya kuona na OCR vinaweza kutoa makadirio yasiyo sahihi, unapaswa kukagua gumzo la sasa na maudhui ya kisanduku cha kuingiza kabla ya kutumia.
Vikomo vinavyojulikana
- Maudhui ya picha na vifurushi vya emoji hayawezi kusomwa; majibu yaliyonukuliwa huchakatwa kama maandishi ya kawaida; kadi za akaunti rasmi zinaweza kuchukuliwa kama ujumbe wa kuchanganuliwa.
- Mpangilio wa WeChat katika skrini nzima au mabadiliko ya matoleo ya WeChat yanaweza kusababisha utambuzi ushindwe; vigezo vinavyohusiana na mpangilio viko juu ya
src/perception.py. - Katika hali ya madirisha mengi, kipaumbele hupewa dirisha kuu lenye jina “微信” au “WeChat”.
- Ni ujumbe wa mtu mwingine ambao mwelekeo wake umethibitishwa wazi pekee unaoanzisha mchakato wa kujibu; ujumbe ambao mwelekeo wake hauwezi kuthibitishwa hurukwa.
- Njia ya kujaza ya uoanifu wa kuona bado inahitaji uthibitishaji zaidi katika mandhari nyeusi, skrini nyingi na matoleo tofauti ya WeChat.
Faragha na vikumbusho vya matumizi
Mradi umeundwa kusoma maudhui ya skrini kwenye kifaa chako na akaunti yako mwenyewe, bila kuingiza msimbo, kutumia hook, kusimbua hifadhidata ya WeChat, au kutuma ujumbe kiotomatiki. Tumia tu kwenye kifaa chako mwenyewe na uzingatie makubaliano ya leseni ya programu ya WeChat. Masasisho ya WeChat yanaweza kusababisha utambuzi wa mpangilio kushindwa; ukikumbana na tatizo, angalia kwanza kumbukumbu, kisha toa mrejesho kupitia issue ya mradi.
Muhtasari
jev-chat-jarvis huunganisha OCR ya skrini, utambuzi wa nia wa ndani, upangaji wa viwango vya hatari, uundaji wa majibu ya pendekezo na paneli asilia inayoelea. Inawafaa watumiaji wa macOS wanaotaka kuelewa kwa haraka ujumbe wa WeChat na kupunguza shinikizo la kujibu. Wakati wa usakinishaji, zingatia hasa Gatekeeper pamoja na ruhusa za kurekodi skrini na vipengele vya ufikivu; wakati wa matumizi, chagua modeli ya ndani, huduma inayooana na OpenAI, au huduma inayooana na Anthropic kulingana na faragha, kasi na gharama, na kila mara kagua maudhui mwenyewe kabla ya kutuma.
