تصور کنید لپتاپی معمولی که بدون نیاز به اینترنت، پیچیدهترین نسخههای پزشکی را به زبان ساده و گفتاری هندی ترجمه میکند. این قابلیت هستهی اصلی Dawa Samjho (به معنای «دارویت را بفهم») است؛ پروژهای که برای چالش آخر هفته Hacktoberfest با عنوان «ساخت ابزاری برای یک دوست» ایجاد شده است. این ابزار بهطور خاص برای کمک به والدین سالمندی طراحی شده که با سردرگمی ناشی از دستخط ناخوانای پزشکان و برچسبهای انگلیسی روی بستههای دارو دستوپنجه نرم میکنند.
برای بسیاری از خانوادهها، فاصلهی بین نسخهی پزشک و درک بیمار با پرسشهای مکرر یا مراجعههای دشوار و گاهی خجالتآور به داروخانه پر میشود. توسعهدهنده این پروژه به سناریوی رایجی اشاره میکند: والدینی که بسته دارو را جلوی نور میگیرند و میپرسند: «यह गोली किसलिए है؟» (این قرص برای چیست؟). طبق گزارش این توسعهدهنده در وبسایت dev.to، اکثر اپلیکیشنهای سلامت فعلی کاربر را مجبور به آپلود اسناد شخصی در فضای ابری میکنند که ریسک امنیتی بزرگی برای دادههای حساس پزشکی است. Dawa Samjho با انتقال کل خط لولهی هوش مصنوعی به رایانش لبه (Edge Computing) — شبیه به داشتن یک پردازشگر کوچک و مستقل داخل خانه بهجای ارسال اطلاعات به یک مرکز دوردست — این مشکل را حل کرده و تضمین میکند که سوابق بهداشتی هرگز از محیط خانه خارج نشوند. این رویکرد یادآور تلاشهای اخیر برای حذف وابستگی به سرورهاست، مشابه آنچه در رویکرد جدید Capsule برای تبدیل اپلیکیشنها به اسناد محلی مشاهده کردیم.
همانطور که در تحلیلهای پیشین ما دربارهی حریم خصوصی در مدلهای محلی اشاره کردیم، حذف واسطههای ابری تنها راه تضمین کامل مالکیت دادههاست.
زیرساخت فنی هوش مصنوعی محلی
این برنامه روی یک پشتهی فنی سبک (Lean Stack) متکی است که برای اجرا روی سختافزارهای مصرفی معمولی طراحی شده است. این سیستم میتواند با حداقل ۷ گیگابایت رم، گرافیک آنبورد و بدون نیاز به هیچ GPU اختصاصی اجرا شود. بر اساس مستندات پروژه، این سیستم از ابزارهای زیر استفاده میکند:
- Gemma 3 (4B): کوچکترین مدل چندوجهی (Multimodal) — مدلی که مثل انسان همزمان متن و عکس را میفهمد — از خانوادهی گما که قادر به خواندن تصاویر است و از طریق اولاما (Ollama) بهصورت محلی سرویسدهی میشود.
- Streamlit: یک چارچوب مبتنی بر پایتون که برای ساخت رابط کاربری (UI) بهصورت خالص با زبان پایتون به کار رفته است. این سادگی در پیادهسازی رابط کاربری، شباهت زیادی به قابلیتهای تولید آنی UI در StemJSON دارد که هدفش تسریع در تبدیل توصیفات به محیطهای کاربرپسند است.
- Pydantic: برای اعتبارسنجی خروجی مدل در برابر یک طرحواره (Schema) سختگیرانهی JSON تا از ساختار دادهها اطمینان حاصل شود.
- Pillow: برای مدیریت عملیات تصویری شامل چرخش و تغییر اندازه تصاویر به ۱۰۲۴ پیکسل پیش از پردازش.
گردش کار فنی
وقتی کاربر دکمهی «समझाओ · Explain» (توضیح بده) را میزند، یک خط لولهی مشخص فعال میشود: ابتدا برنامه عکس را بررسی کرده، چرخش آن را اصلاح میکند و ابعاد تصویر را به ۱۰۲۴ پیکسل کاهش میدهد. سپس سیستم بررسی میکند که آیا Ollama در حال اجرا است و مدل مورد نظر نصب شده است یا خیر. تصویر سپس با یک پرامپت سختگیرانه که صراحتاً فقط خروجی JSON را درخواست میکند، به مدل گما ارسال میشود. سیستم این JSON را با یک طرحواره اعتبارسنجی کرده و در صورت ناقص یا اشتباه بودن فرمت (Malformed)، یک بار دیگر تلاش میکند. در نهایت، پاسخ از فیلترهای ایمنی که در سطح کدنویسی تعریف شدهاند عبور کرده و برای هر دارو، یک کارت اطلاعاتی مجزا نمایش داده میشود.
حفاظهای سختافزاری برای ایمنی پزشکی
توسعهدهنده در حین کار متوجه شد که صرفاً دستور دادن به مدل برای «حدس نزدن» (Never Guess)، برای تضمین ایمنی در حوزه پزشکی کافی نیست. در یک تست واقعی، مدل عبارت «Cap Risek 20mg» را بهاشتباه «Cap Risele» خواند، آن را بهعنوان متنی کاملاً خوانا علامتگذاری کرد و دچار توهم (Hallucination) شد؛ به این صورت که ادعا کرد دارو باید «یک بار» (एक बार) مصرف شود، در حالی که هیچ چنین دستوری در کاغذ نسخه وجود نداشت. این اتفاق منجر به پیادهسازی اعتبارسنجیهای قطعی (Deterministic) در سطح کد شد:
- ممنوعیت اعداد ساختگی: اگر دوز یا قدرتی در پاسخ AI ظاهر شود که در متن استخراجشده از تصویر وجود نداشته است، برنامه نتیجه را «ناخوانا» (साफ़ नहीं पढ़ पाए — डॉक्टर یا کےมิست سے پوچھیں) علامت میزند و کاربر را به پزشک یا داروساز ارجاع میدهد.
- اعتبارسنجی زمانبندی: اگر نسخه اصلی فاقد زمانبندی باشد (مثلاً عباراتی مثل «1-0-1»، «OD/BD» یا «بعد از غذا» دیده نشود)، هرگونه پیشنهاد زمانی از سوی AI بهطور خودکار حذف شده و در کارت عبارت «در نسخه نوشته نشده — از پزشک خود بپرسید» نمایش داده میشود.
- جایگزینهای سختگیرانه: در صورتی که دارویی شناسایی نشود، برنامه بهجای ارائه متنهای کلی و پرکننده (Filler Text)، هیچ کاربرد یا احتیاطی را نمایش نمیدهد.
- حلقهی تأیید: کاربران میتوانند روی دکمهای کلیک کنند تا دقیقاً آنچه AI از کاغذ خوانده است را ببینند و نام استخراج شده را بهصورت دستی با بستهی فیزیکی دارو تطبیق دهند.
- نرمالسازی: ارقام هندی (مانند १) ابتدا نرمالسازی میشوند تا مقایسهی دقیق بین متن استخراجشده از تصویر و پاسخ نهایی AI امکانپذیر باشد.
برای تضمین پایداری این قوانین، پروژه توسط ۳۲ تست واحد (Unit Test) پوشش داده شده است که مورد شکست «Risele / once» نیز یکی از این تستهاست تا از تکرار خطا جلوگیری شود.
عملکرد و دسترسیپذیری
بهدلیل اجرا روی CPU، پاسخدهی آنی نیست. پردازش هر عکس بین ۶۵ تا ۹۰ ثانیه زمان میبرد و اولین تصویر بهدلیل بارگذاری مدل در حافظه، زمان بیشتری میگیرد. با این حال، توسعهدهنده اشاره میکند که این زمان هنوز بسیار سریعتر از منتظر ماندن برای بازگشت یک عضو خانواده به خانه برای ترجمه متن است.
رابط کاربری برای سالمندان بهینه شده و دارای متنهای درشت، دکمههای بزرگ و برچسبهای دوزبانه به هندی و انگلیسی است. همچنین دکمهای برای کپی سریع توضیحات تعبیه شده تا کاربران بتوانند توضیح سادهشده را مستقیماً در گروههای واتساپ خانواده به اشتراک بگذارند. کل جریان کار در چهار مرحله ساده شده است: انتخاب زبان، آپلود یا ثبت عکس، فشردن دکمه Explain و خواندن کارتهای نتیجه.
هر نتیجه با یک سلب مسئولیت اجباری پایان مییابد: «यह सिर्फ समझने के लिए है। हमेशा अपने डॉक्टर की सलाह मानें।» (این فقط برای درک بهتر است؛ همیشه از توصیه پزشک خود پیروی کنید.)
ارزش نوآوریهای باز
این پروژه نشاندهندهی چرخش به سمت «حاکمیت محاسباتی» (Compute Sovereignty) در سلامت شخصی است. با استفاده از مدلهای وزنهای باز (Open Weights) — یعنی مدلهایی که پارامترهایشان علناً منتشر شده — چهار هدف حیاتی محقق شده است:
۱. حریم خصوصی قابل تأیید: چون مدل محلی اجرا میشود، کاربر میتواند Wi-Fi را خاموش کند و ببیند برنامه همچنان کار میکند؛ این ثابت میکند دادهها هرگز خانه را ترک نمیکنند.
۲. هزینه صفر: هیچ کلید API، اشتراک ماهانه یا هزینهای بهازای هر عکس وجود ندارد و ابزار برای والدین بازنشسته کاملاً رایگان است.
۳. تطبیق زبانی: در حالی که اپلیکیشنهای بزرگ اولویت را به انگلیسی میدهند، این سیستم باز برای زبان هندی گفتاری تنظیم شده و میتواند بدون نیاز به اجازه هیچ شرکتی، برای زبانهای Bhojpuri، بنگالی، تامیل یا ماراتی بومیسازی شود.
۴. ایمنی قابل بازرسی: هر قانونی که جلوی اختراع دوز دارو را میگیرد، در فایلی است که هر کسی میتواند آن را بخواند، تست کند و بهبود ببخشد.
برای خواننده، این به معنای توانایی ساخت ابزارهای بسیار تخصصی و خصوصی برای اعضای آسیبپذیر خانواده است، بدون اینکه نیاز به بودجههای ابری باشد یا مجبور شوند تاریخچه پزشکی خود را به یک ارائهدهنده شخص ثالث بسپارند. این پروژه ثابت کرد مدلهای محلی کوچک اگر در پوششی از کدهای قطعی و سختگیرانه قرار گیرند، میتوانند ایمنتر از مدلهای غولپیکر ابری باشند.
گام بعدی شما
- اگر به دنبال استقرار محلی مدلها هستید، Ollama را نصب کرده و سه دستور زیر را اجرا کنید:
ollama pull gemma3:4b، سپسpip install -r requirements.txtو در نهایتstreamlit run app.py. - برای پروژههای حساس، بهجای تکیه بر پرامپت، لایههای اعتبارسنجی سختگیرانه (Deterministic) در سطح کد اضافه کنید.
- بررسی کنید که آیا مدلهای کوچکتر (SLM) میتوانند جایگزین مدلهای ابری در گردشهای کاری شخصی شما شوند.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو