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

به نقل از مستندات فنی پروژه، این سامانه برای اجرای استنتاج (Inference) — که مثل لحظهی خودِ آشپزی است، نه دورهی آموزش آشپز — از WebLLM و WebGPU بهره میبرد. این ابزار از مدل Qwen3-0.6B شرکت علیبابا با وزنهای باز (Open Weights) — یعنی دستور پخت مدل علناً منتشر شده و نه فقط غذای آماده — استفاده میکند. این مدل یکبار (حدود ۳۴۰ مگابایت) در مرورگر کاربر دانلود شده و چون وزنهای مدل روی همان میزبان استاتیک قرار دارند، صفحه هرگز در زمان اجرا درخواستی به HuggingFace یا هر API دیگری ارسال نمیکند.
ساختار فنی این پروژه بهطور عمدی بسیار سبک و بهینه طراحی شده است:
- فرانتاند: استفاده از HTML، CSS و جاوااسکریپت ساده که بهصورت فایلهای استاتیک ارائه میشوند.
- پایگاهداده: یک فایل تک
data.jsشامل بیش از ۱۰۰۰ رستوران در ۳۷ شهر، که هر کدام برای گزینههای گیاهی، گیاهخواری، بدون گلوتن، کوشر و حلال برچسبگذاری شدهاند. - محدودیت مدل: استفاده از یک گرامر JSON از طریق
response_formatدر WebLLM برای اجبار مدل ۰.۶ میلیاردی به تولید خروجیهای ساختاریافته (شامل رژیمهای غذایی، شهر و کلمات کلیدی غذا) بهجای متنهای محاورهای. این امر ضروری است زیرا یک مدل ۰.۶ میلیاردی بهتنهایی نمیتواند دستور «در قالب JSON پاسخ بده» را رعایت کند. در این راستا، برخی توسعهدهندگان برای دستیابی به دقت مطلق، محاسبات LLM را با کدهای قطعی جایگزین کردهاند تا خطاهای احتمالی مدلهای زبانی در تحلیل دادههای حساس غذایی حذف شود. - سیستم جایگزین (Fallback): یک تجزیهکننده کلمات کلیدی ساده که در صورت شکست موتور مدل، کنترل را به دست میگیرد تا تضمین شود جستوجو همچنان فعال است.

این اپلیکیشن در واقع تکاملیافتهی نسخهی قدیمیتری به نام «Eat Well» است که برای میکروکنترلر Tufty 2350 ساخته شده بود. آن نسخه قدیمی تنها ۵۵۷ رستوران داشت و از دکمههای فیزیکی استفاده میکرد اما فاقد قابلیتهای هوش مصنوعی بود. نسخهی فعلی همان کدهای بصری و پیکسلآرتهای آن نشان (Badge) را در پنلی زیر کادر جستوجو حفظ کرده است.

کاربران میتوانند از طریق کارتهای تعاملی غنی که شامل مسیرهای دسترسی است، در لحظه از یک پرسوجوی زبان طبیعی به یک جدول نتایج برسند. همچنین بخش مدیریت برنامه اجازه میدهد تا لیست رستورانهای محلی بهراحتی به مجموعه دادههای استاتیک اضافه شوند.

این رویکرد، هزینه و کنترل هوش مصنوعی را از تامینکننده به کاربر منتقل میکند. توسعهدهنده به سه دلیل مشخص از APIهای ابری دوری کرد:
۱. حریم خصوصی: نیازهای غذایی شخصی هستند. پرسوجوهایی مثل «کوشر در نزدیکی من» مذهب و مکان را فاش میکند؛ اجرای محلی تضمین میکند این دادهها هرگز دستگاه را ترک نکنند.
۲. هزینه: مدلهای ابری به ازای هر پرسوجو هزینه میگیرند. این برنامه هیچ هزینه بهازای هر درخواست ندارد و تنها هزینه آن، میزبانی فایلهای استاتیک است.
۳. کنترل: وزنهای باز به توسعهدهنده اجازه میدهد مدل را بهصورت شخصی میزبانی کند، آن را جایگزین نماید و پرامپتها را تنظیم کند. توسعهدهنده توانست خروجی را با استفاده از گرامر محدود کند، بدون اینکه نیاز باشد درخواستی برای پشتیبانی به یک تامینکننده ارسال کند. این سطح از شخصیسازی یادآور رویکردهایی است که در آن کنترل الگوریتمهای توصیهگر از طریق پرامپتهای مستقیم به کاربر بازگردانده میشود تا تجربه کاربری متناسب با نیازهای فردی شکل بگیرد.
برای کاربر عادی، این یعنی عادتهای غذایی و مکان او خصوصی میماند و برای توسعهدهندگان، این یک الگوی عملی برای ساخت اپلیکیشنهای «بدون سرور» (Zero-Server) است که میزبانی آنها رایگان و شنود آنها غیرممکن است. اگر از مرورگر کروم یا اج روی دستگاههای پشتیبان از WebGPU استفاده میکنید، میتوانید دموی زنده را در eat-well-ai.view.fast آزمایش کنید یا کد منبع این پروژه را که تحت لایسنس MIT است در گیتهاب بررسی نمایید.
گام بعدی شما
- بررسی قابلیتهای WebGPU در مرورگر خود برای اجرای مدلهای محلی.
- مطالعه کد منبع این پروژه در گیتهاب برای یادگیری نحوه پیادهسازی JSON Grammar در مدلهای کوچک.
- تست مدلهای زیر ۱ میلیارد پارامتر برای کاربردهای خاص و سبک.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell و آینده استنتاج لبه مراجعه کنید.




گفتگو