این مقاله به شما آموزش میدهد که چگونه با Home Assistant و یک هوش مصنوعی محلی (LLM) مانند Ollama، یک سیستم هوشمند برای مدیریت ایمیلهای خود بسازید. این سیستم ایمیلها را دستهبندی، خلاصه و اولویتبندی میکند.
نتیجه این پردازش به شکل نوتیفیکیشن به گوشی شما ارسال میشود و شمارندههای مربوطه در Home Assistant بهروزرسانی میگردند. این روش ضمن حفظ حریم خصوصی، به شما کمک میکند تا صندوق ورودی شلوغ خود را کارآمدتر مدیریت کنید.
مقدمه
Home Assistant ابزاری بسیار قدرتمند است که فراتر از اتصال سختافزارها عمل میکند. با قابلیت IMAP آن، میتوانید ایمیلهای خود را به Home Assistant متصل کرده و آنها را پردازش کنید.
این مقاله به شما آموزش میدهد که چگونه با Home Assistant و یک هوش مصنوعی محلی (LLM)، یک سیستم مدیریت ایمیل شخصی و کارآمد بسازید.
چرا به یک سیستم دستهبندی ایمیل نیاز داریم؟
ایمیلهای قابل هضمتر
صندوق ورودی ایمیل بسیاری از ما اغلب شلوغ و مدیریت آن دشوار است. حتی با لغو اشتراک خبرنامهها، برخی از ایمیلها کاری یا گاهی مهم هستند.
هدف از این سیستم، سادهتر کردن این فرآیند با استفاده از قدرت یک هوش مصنوعی محلی (LLM) است.
Home Assistant با ادغام IMAP میتواند تمام ایمیلها را دریافت کند. محتوای ایمیلها معمولاً HTML پیچیدهای دارند و دستی یا با regex قابل پردازش نیستند.
اینجاست که هوش مصنوعی محلی (LLM) به کمک میآید. LLMها در تشخیص الگو و متن بسیار خوب عمل میکنند.
با پنجرهی زمینه بزرگ، میتوانیم از توانایی LLM برای تولید خلاصهای از هر ایمیل ورودی استفاده کنیم. این خلاصهها یک دید کلی و عنوان اصلی را در قالب نوتیفیکیشن به ما میدهند.
استفاده از LLM محلی به خاطر حفظ حریم خصوصی شماست. با این کار، ایمیلهایتان برای پردازش به سرویسهای ابری ارسال نمیشوند.
این سیستم جایگزین چک کردن دستی ایمیل نمیشود، اما به شما کمک میکند کمتر به صندوق ورودی سر بزنید. همچنین میتوانید آمار دستهبندی ایمیلهای خود را نیز مشاهده کنید.
تنظیم فرمان REST برای دستهبندی LLM
ارسال ایمیل از Home Assistant به Ollama
برای این کار، دو بخش اصلی خواهیم ساخت. بخش اول یک فرمان REST است که به سرور Ollama ما متصل میشود.
بخش دوم نیز یک خودکارسازی است که خروجی را گرفته و به گوشی ما میفرستد، سپس شمارندههای Home Assistant را بهروز میکند.
این یک فرمان REST ساده برای API اُلاما (Ollama) است. این فرمان جزئیات ایمیل را در قالب JSON به مدل میفرستد.
مدل “dolphin-llama3” با نگهداری ۲۴ ساعته در VRAM تعیین میشود تا زمان بارگذاری کاهش یابد. یک دستور سیستمی به مدل داده میشود که فقط JSON مطابق با الگو را برگرداند.
این الگو شامل مواردی مانند اولویت، دستهبندی، خلاصه و اکشنهای پیشنهادی است. فرمت پاسخ از قابلیت “خروجیهای ساختاریافته” اُلاما استفاده میکند.
این کار تضمین میکند که تمام پاسخها دقیقاً مطابق الگوی مشخص شده باشند. کیفیت خلاصه و عملکردهای پیشنهادی به مدل و اندازه زمینه بستگی دارد.
یک مدل ۸B با کوانتیزاسیون ۴ بیتی و پنجره زمینه ۳۲K حدود ۱۵ گیگابایت VRAM نیاز دارد. پس از افزودن این کد و راهاندازی مجدد Home Assistant، فرمان REST آماده استفاده خواهد بود.
تنظیم خودکارسازی برای خلاصهسازی ایمیلها
پردازش پاسخ
خودکارسازی (Automation) نیز بسیار ساده است، هرچند تنظیم دقیق آن ممکن است کمی دشوار باشد. زمانی که یک رویداد imap_content
فعال میشود، جریان کار به شکل زیر پیش میرود:
- پیام ایمیل دریافت شده در متغیر “mail” ذخیره میشود.
- یک متغیر “email_payload” شامل محتوای ایمیل به فرمت JSON ساخته میشود.
- فرمان REST تعریف شده قبلی فراخوانی شده و متغیر “email_payload” به آن ارسال میگردد.
- پاسخ دریافتی از Ollama در متغیر “triage” و سپس در “triage_obj” ذخیره میشود.
- دسته ایمیل از پاسخ گرفته شده و شمارندههای Home Assistant بهروز میشوند.
- یک نوتیفیکیشن به دستگاه شما ارسال میشود که شامل عنوان، خلاصه و اولویت ایمیل است.
- امکان افزودن اکشنهایی مانند “SNOOZE_1H” یا “ARCHIVE” به نوتیفیکیشنها وجود دارد که باید جداگانه پیادهسازی شوند.
پس از دریافت ایمیل، رویداد imap_content
فعال شده و این فرآیند آغاز میشود. با توجه به مدل کوچک و نگهداری ۲۴ ساعته آن، پس از چند ثانیه، یک نوتیفیکیشن با خلاصه ایمیل به گوشی شما میرسد.
میتوانید به داشبورد “ایمیلها” مراجعه کرده و شمارندههای هر دسته را مشاهده کنید. برای این سیستم، باید شمارندههای زیر را در Home Assistant بسازید:
دسته ایمیل | شمارنده Home Assistant |
---|---|
شخصی | counter.emails_personal |
تراکنشها | counter.emails_transaction |
تقویم | counter.emails_calendar |
خبرنامه | counter.emails_newsletter |
تبلیغاتی | counter.emails_promo |
هشدار | counter.emails_alert |
رسید | counter.emails_receipt |
پشتیبانی | counter.emails_support |
نامشخص | counter.emails_unknown |
شما میتوانید این شمارندهها را به صورت جداگانه یا با یک اسکریپت ساده ریست کنید. این اسکریپت میتواند از طریق یک دکمه در داشبورد فراخوانی شود.
Home Assistant ابزاری بسیار قدرتمند است که امکانات زیادی را فراهم میکند و به شما اجازه میدهد نرمافزارهای مختلف را به آن متصل کنید. برای مثال، میتوانید رابط صوتی GoXLR یا سرویسهای نظارتی را به Home Assistant وصل کنید.
این تنها یکی از راههای زیادی است که میتوانید Home Assistant را بدون سختافزار خاص، برای خودتان سفارشی کنید و بهرهوری بیشتری داشته باشید.