تصور کنید میخواهید با مواد باقیمانده در یخچال، غذایی بپزید که با حساسیتهای شدید غذایی شما سازگار باشد، اما نمیخواهید لیست بیماریها و محدودیتهای سلامتی خود را به سرورهای یک شرکت خارجی بسپارید. Fridge Oracle دقیقاً برای حل همین تضاد میان «راحتی» و «حریم خصوصی» طراحی شده است.
این برنامه که در جریان چالش آخر هفته Hacktoberfest با عنوان «ساخت برای یک دوست» (Build for a Friend) توسعه یافته، یک نقطه اصطکاک خاص را هدف قرار داده است: نیاز کاربر به بررسی دستی تکتک دستورهای پخت برای یافتن مواد حساسیتزایی مانند آجیل یا لبنیات. Fridge Oracle اجازه میدهد کاربران بدون اتصال به اینترنت و بدون پرداخت هزینه اشتراک، موجودی یخچال و قوانین تغذیهای خود را وارد کنند. طبق گزارش توسعهدهنده، هدف اصلی این است که دادههای حساس سلامتی هرگز لپتاپ کاربر را ترک نکنند.
بسیاری از برنامههای آشپزی فعلی از APIهای ابری استفاده میکنند که کاربر را مجبور میکند محدودیتهای رژیمی خود را به شخص ثالث ارسال کند. Fridge Oracle با انتقال پردازش به محیط محلی، این ریسک را بهطور کامل حذف میکند. همانطور که در تحلیلهای قبلی ما دربارهی حاکمیت دادهها اشاره کردیم، این رویکرد گامی در جهت کاهش وابستگی به متمرکزترین نقاط وب است.
زمینه و ریشه مشکل
بسیاری از مردم عادت دارند با هر آنچه در یخچال باقی مانده غذا درست کنند، اما در عین حال باید قوانین سختگیرانه غذایی را رعایت کنند. این محدودیتها میتواند شامل عدم تحمل لاکتوز، آلرژی به آجیل، رژیمهای گیاهخواری (Vegan) یا الزامات حلال باشد.
برنامههای معمولی آشپزی از این محدودیتهای خاص آگاه نیستند. این موضوع کاربر را مجبور میکند تا تکتک دستورالعملها را به صورت دستی بخواند تا مطمئن شود مصرف آنها ایمن است. Fridge Oracle این مشکل را با ترکیب محتویات یخچال و محدودیتهای سلامتی حل میکند تا در نهایت تنها یک دستور پخت ارائه دهد که با هر دو شرط سازگار باشد.

این اپلیکیشن از مدل زبانی کوچک (SLM) — شبیه به یک دستیار متخصص که بهجای دانستن همه چیز، روی کارهای خاصی متمرکز شده — مدل Gemma 3 (4B) گوگل استفاده میکند که از طریق اولاما (Ollama) میزبانی میشود. زیرساخت فنی برنامه شامل Next.js و TypeScript است و از طریق یک اتصال API محلی به پورت localhost:11434 متصل میشود. به نقل از سازنده، چون مدل روی CPU اجرا میشود و از GPU استفاده نمیکند، تولید هر دستور پخت معمولاً کمتر از دو دقیقه زمان میبرد. این رویکرد به اجرای مدلهای هوش مصنوعی در محیطهای ایزوله شباهت دارد، مشابه آنچه در توزیع Linux-AI OS برای حذف ترس از ترمینال با هوش مصنوعی محلی مشاهده کردیم.
مزایای اجرای محلی
اجرای مدل بهصورت محلی از طریق اولاما سه مزیت کلیدی و بنیادین دارد:
- حریم خصوصی: دادهها هرگز دستگاه را ترک نمیکنند و اطلاعات حساس سلامتی کاربر بهطور کامل محافظت میشوند.
- رایگان: هیچ نیازی به کلیدهای API، صورتحسابهای ماهانه یا مدیریت محدودیتهای نرخ درخواست (Rate Limits) نیست.
- آفلاین: پس از دانلود مدل، برنامه برای کار کردن به هیچ دسترسی اینترنتی نیاز ندارد.
با این حال، فرآیند ساخت این برنامه یک نقص ایمنی بحرانی را فاش کرد. در طول تستهای اولیه، توسعهدهنده موادی شامل «تخممرغ، برنج، پنیر چدار، گوجهفرنگی کنسرو شده و کره» را به عنوان موجودی یخچال وارد کرد و محدودیت را روی «عدم تحمل لاکتوز» قرار داد. در کمال تعجب، مدل 4B گوگل دستور پختی حاوی کره و پنیر چدار را پیشنهاد داد و بهطور اشتباه آن را «ایمن» علامت زد.
جزئیات فنی و مکانیسمهای ایمنی
برای رفع این نقص خطرناک، توسعهدهنده یک معماری سه لایه پیادهسازی کرد تا اطمینان حاصل شود که میتوان در موارد حساس آلرژی به برنامه اعتماد کرد:
- لایه مدل زبانی (LLM Layer): این بخش در مسیر
app/api/suggest/route.tsقرار دارد. مدل Gemma 3 بر اساس یک دستور سیستمی (System Prompt)، دستور پخت را در قالب JSON تولید میکند. همچنین این لایه از طریق فرم موجود درapp/page.tsx«حس و حال» (Mood) کاربر را نیز در نظر میگیرد. - شبکه ایمنی (Safety Net): یک اسکریپت غیر-هوش مصنوعی در فایل
lib/safety.tsکه محدودیتهای رایج — شامل لبنیات، گلوتن، آجیل، تخممرغ، سختپوستان، سویا، گیاهخواری و حلال — را به کلمات کلیدی مواد ممنوعه نگاشت (Map) میکند. - لایه بازبینی و جایگزینی (The Override): پس از اینکه مدل پاسخ خود را داد، کد برنامه لیست مواد را با نقشه ممنوعهها چک میکند. اگر تطابقی پیدا شود، برنامه بهطور اجباری حکم مدل را به «نیاز به بررسی مجدد» تغییر داده و نام ماده متضاد را با کلمات ساده ذکر میکند.

یک باگ جزئی دیگر مربوط به توهم (Hallucination) — وقتی مدل با اطمینان چیزی میگوید که اصلاً وجود ندارد — بود. مدل گاهی بهجای خالی گذاشتن فیلدها، عبارتهای جایگزینی مانند «empty string» یا «empty array» را چاپ میکرد. این اتفاق به این دلیل میافتاد که مدل دستورالعملهای موجود در پرامپت را که برای توصیف فیلدهای خالی بود، نقلقول میکرد. این مشکل با یک فیلتر متنی ساده که این عبارتهای خاص را به عنوان مقادیر خالی شناسایی میکرد، برطرف شد. این تلاش برای اصلاح خروجی مدل، یادآور رویکرد CodeTeach در جایگزینی پاسخهای مستقیم است تا کاربر را به جای دریافت پاسخ آماده، به سمت درک عمیقتر راهنمایی کند.
استقرار و حریم خصوصی
این پروژه نشاندهنده چرخش به سمت «حاکمیت محاسباتی» (Compute Sovereignty) برای دادههای شخصی است. توسعهدهنده عمداً برنامه را روی هیچ URL عمومی منتشر نکرد؛ زیرا میزبانی روی یک سرور مشترک یا مستلزم استفاده از یک سرور ابری بود (که وعده حریم خصوصی را میشکست) یا حذف کامل لایه هوش مصنوعی را میطلبید.
در حال حاضر این پروژه در گیتهاب بهصورت متنباز در دسترس است. کاربران میتوانند تنها با اجرای یک دستور ollama pull در عرض چند دقیقه آن را روی ماشین شخصی خود اجرا کنند. این سادهسازی در استقرار محلی، مشابه معماری Zero-State در IdeaAI است که هدفش حذف مراحل تکراری و تسهیل تجربه کاربر در محیطهای محلی است.
برای کاربر عادی، این یعنی تفاوت بین اعتماد به یک «جعبه سیاه» و داشتن یک سیستم اعتبارسنجی شفاف و قابل تایید. این تجربه ثابت میکند که مدلهای کوچک برای دستگاههای لبه (Edge) کارآمد هستند، اما هنوز نمیتوانند تنها مرجع تصمیمات حساس ایمنی باشند.
اگر در حال ساخت ابزارهای هوش مصنوعی محلی هستید، درس این پروژه روشن است: هرگز اجازه ندهید ادعای ایمنیِ خودِ مدل، آخرین چک نهایی باشد. اگر یک پاسخ اشتباه میتواند به کسی آسیب برساند، حتماً آن را پس از اتمام پاسخ مدل، با کدهای قطعی (Deterministic)، خوانا و ساده بازبینی کنید.
گام بعدی شما
- اگر توسعهدهنده هستید، برای ابزارهای محلی هرگز به ادعای ایمنی خودِ مدل تکیه نکنید و لایههای اعتبارسنجی قطعی اضافه کنید.
- ابزار Ollama را نصب کنید تا مدلهای Gemma 3 را بهصورت محلی تست کنید.
- مخزن گیتهاب Fridge Oracle را بررسی کنید تا با نحوه پیادهسازی لایه Safety Net آشنا شوید.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای NPU در لپتاپهای جدید مراجعه کنید.




گفتگو