پرش به محتوای اصلی
پرش به محتوای مقاله

حذف توهمات AI در تشخیص پوستی با تفکیک مدل زبانی از دیتابیس

·۲۷ خرداد ۱۴۰۵۷ دقیقه مطالعه
ربات هوشمند مراقبت از پوست Allerbot - مشاوره شخصیزی شده پوست با هوش مصنوعی
ربات هوشمند مراقبت از پوست Allerbot - مشاوره شخصیزی شده پوست با هوش مصنوعی
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

جایگزینی کامل استنتاج مدل با فراخوانی قطعی ابزار برای تصمیمات حیاتی؛ به جای اینکه مدل «پاسخ را پیدا کند»، مجبور است «پاسخ را از دیتابیس استخراج کند» و حق حدس زدن ندارد.

اگر شما با حساسیت‌های پوستی تشخیص‌داده‌شده دست‌وپنجه نرم می‌کنید، یک پاسخ مطمئن اما غلط از سوی هوش مصنوعی، تنها یک باگ فنی نیست؛ بلکه یک ریسک جدی برای سلامتی شماست. برای حل این مشکل، یک توسعه‌دهنده مستقل ابزار AllerBot را به‌عنوان بخشی از اکوسیستم AllerNote عرضه کرد تا اطمینان حاصل کند مدل هرگز در صدور احکام ایمنی، از خود تخیل نمی‌کند. مشکل اصلی این است که برای کسی با حساسیت‌های واقعی، جمله‌ای مثل «بله، این مرطوب‌کننده برای حساسیت شما مناسب است» در صورتی که مدل دچار توهم (Hallucination) — شبیه دوستی که خاطره‌ای را با اطمینان کامل اما اشتباه تعریف می‌کند — شده باشد، یک Improvisation خطرناک است.

بیشتر چت‌بات‌های هوش مصنوعی برای تخصص یافتن به یک «پرامپت سیستم» تکیه می‌کنند تا مانند یک متخصص رفتار کنند، اما این روش به مدل اجازه می‌دهد تا بر اساس وزن‌های آموزشی داخلی خود، یک حکم «ایمن» تولید کند. در حوزه‌های با ریسک بالا مانند حساسیت‌های تماسی، این تسلط زبانی خطرناک است زیرا مدل می‌تواند با اعتمادبه‌نفس کامل، پاسخی کاملاً اشتباه ارائه دهد. سازنده AllerBot استدلال می‌کند که تنها راه تضمین ایمنی این است که نقش مدل را کاملاً تغییر دهیم و آن را «وارونه» کنیم. حکم نهایی — یعنی تک‌کلمه‌ای که کل تعامل روی آن می‌چرخد و حیاتی‌ترین بخش پاسخ است — نباید یک متن تولیدشده توسط مدل باشد.

معماری قطعیت

طبق مستندات این پروژه، AllerBot بر پایه مدل‌های Gemini Flash و Flash-Lite و با استفاده از قابلیت بومی فراخوانی توابع (Native Function Calling) اجرا می‌شود. اصل طراحی ساده است: مدل هرگز اجازه ندارد حکم ایمنی را از دانش خود بیان کند. در عوض، حکم نهایی مقدار بازگشتیِ یک ابزار (Tool) خاص است که ترکیبات محصول را با حساسیت‌های ذخیره‌شده کاربر در یک سطح شدت مشخص تطبیق می‌دهد. اگر پایگاه داده عبارت «ایمن» را برنگرداند، مدل هم نمی‌تواند بگوید «ایمن است».

ربات هوشمند مراقبت از پوست Allerbot - مشاوره شخصیزی شده پوست با هوش مصنوعی

این سیستم از یک حلقه عامل (Agent Loop) استاندارد استفاده می‌کند که مدل را با یک طرحواره ابزار (Tool Schema) فراخوانی کرده، ابزارهای درخواستی را اجرا می‌کند و نتایج را دوباره به مدل بازمی‌گرداند. این فرآیند تا زمانی تکرار می‌شود که مدل دیگر ابزاری درخواست نکند و پاسخ نهایی را به‌صورت متن ساده برگرداند. برای جلوگیری از حلقه‌های بی‌نهایت — که گاهی رخ می‌دهد وقتی مدل تصمیم می‌گیرد برای همیشه ابزار فراخوانی کند — توسعه‌دهنده یک سقف سخت ۵ تکراری (Iteration Cap) تعیین کرده است.

در هر نوبت (Turn)، تمام ابزارهایی که مدل درخواست می‌کند به‌صورت هم‌زمان از طریق asyncio.gather اجرا می‌شوند. سپس کل دسته‌ی نتایج به‌عنوان یک بلوک پاسخ-ابزار (Tool-response block) بازگردانده می‌شود. این ساختار تضمین می‌کند که عامل (Agent) با وجود تأخیرهای ذاتی فراخوانی‌های LLM، همچنان کارآمد باقی بماند.

ابزارها و سازوکارهای کنترل

به نقل از سازنده، حدود ۱۲ ابزار تخصصی با تایپ مشخص در سیستم تعریف شده است. ابزارهایی که بیشترین وزن و اهمیت را در سیستم دارند عبارت‌اند از:

  • get_user_allergen_profile: بازیابی حساسیت‌های خاص کاربر که وارد حساب خود شده است، شامل سطوح شدت و یادداشت‌های شخصی.
  • scan_ingredients / check_product_safety: این‌ها تنها ابزارهایی هستند که اجازه صدور حکم ایمنی را دارند. آن‌ها لیست ترکیبات را با پروفایل کاربر تطبیق داده و برای هر ترکیب، وضعیتی شامل «ایمن»، «هشدار» یا «خطر» برمی‌گردانند.
  • lookup_ingredients_batch: دریافت متادیتای N ترکیب در یک فراخوانی واحد، تا از حلقه تکرار مدل برای بررسی تک‌تک ترکیبات جلوگیری شود.
  • recommend_safe_products: فیلتر کردن کاتالوگ محصولات بر اساس حساسیت‌های ذخیره‌شده کاربر و همچنین حساسیت‌هایی که در میان چت ذکر شده‌اند اما هنوز ذخیره نشده‌اند.
  • save_allergens_to_profile: این تنها مسیر «نوشتن» (Write path) در سیستم است و به‌شدت پشت درِ رضایت صریح و مستقیم کاربر قرار دارد.

مبارزه با غریزه «کمک‌رسانی»

یکی از چالش‌های اصلی، متوقف کردن مدل از «بیش از حد کمک کردن» بود. چون Gemini می‌داند عطرهای رایج چیستند، اغلب سعی می‌کند مستقیماً به سؤالات ایمنی پاسخ دهد. توسعه‌دهنده برای مقابله با این موضوع سه لایه انضباطی ایجاد کرد:

۱. پرامپت قراردادی: پرامپت سیستم به‌جای تعریف شخصیت، مانند یک قرارداد (Contract) عمل می‌کند. این لایه صراحتاً ابداع آمار یا احکام را ممنوع کرده، مدل را مجبور می‌کند درخواست‌های خارج از محدوده (مانند تشخیص‌های پزشکی) را رد کند و الزام می‌کند پیش از هر ادعای ایمنی، حتماً یک ابزار فراخوانی شود.
۲. توصیفات دستوری ابزارها: توصیفات ابزارها به‌صورت امری (Imperative) نوشته شده‌اند زیرا مدل آن‌ها را به‌صورت تحت‌اللفظی دنبال می‌کند. مثلاً برای scan_ingredients صرفاً نوشته نشده که «محصول را بررسی می‌کند»، بلکه ذکر شده: «همیشه پیش از بیان ایمن بودن محصول این ابزار را فراخوانی کن؛ هرگز حدس نزن».
۳. سقف تکرار: محدودیت ۵ تکرار تضمین می‌کند که اگر حلقه دچار سردرگمی شود، به‌جای اجرای بی‌نهایت، در حالت بسته (Fail Closed) متوقف شود.

دستیار هوشمند مراقبت از پوست Allerbot با فناوری هوش مصنوعی

ورودی‌های چندوجهی و پایداری پایگاه داده

برای حذف نیاز به تایپ خسته‌کننده لیست ترکیبات از پشت بطری محصولات، AllerBot از Gemini Vision برای استخراج متن (OCR) استفاده می‌کند. این قابلیت به کاربران اجازه می‌دهد عکس برچسب‌ها را مستقیماً در چت بفرستند. سیستم به‌گونه‌ای طراحی شده که برچسب‌های خمیده، تفاوت بین نام‌های استاندارد INCI و نام‌های رایج، و حتی اصطلاحات سنتی یا آیورودیک ترکیبات را تشخیص دهد. در صورتی که مسیر Gemini Vision با مشکل مواجه شود، یک مدل محلی به نام doctr به‌عنوان جایگزین (Fallback) عمل می‌کند.

نکته کلیدی این است که ورودی عکس دقیقاً از همان مسیر تأیید متن عبور می‌کند. ترکیبات استخراج‌شده به همان ابزار scan_ingredients می‌روند. با هدایت هر دو حالت ورودی (متن و عکس) از طریق یک ابزار واحد، توسعه‌دهنده تضمین کرد که هیچ مسیر «سست‌تری» در کد وجود ندارد که قانون استناد (Grounding) را دور بزند. هیچ مسیر دومی برای عکس وجود ندارد.

دستیار هوشمند مراقبت از پوست Allerbot با فناوری هوش مصنوعی

پروژه با یک چالش فنی قابل توجه در تراکنش‌های پایگاه داده مواجه بود. در ابتدا، برنامه یک تراکنش Postgres را برای کل درخواست، شامل زمان‌های طولانی رفت‌وبرگشت مدل، باز نگه می‌داشت. چون برنامه از Postgres در پشت PgBouncer استفاده می‌کند، تایم‌اوت‌های اتصال (Idle-connection timeouts) باعث قطع شدن سوکت در حین «تفکر» مدل می‌شد. این موضوع منجر به خطاهای متناوب ConnectionDoesNotExistError می‌شد که بسته به زمان پاسخ‌دهی Gemini رخ می‌داد.

راه حل، حذف نشست‌های (Sessions) طولانی‌مدت بود. اکنون برنامه برای هر گام مجزا (بارگذاری تاریخچه، ذخیره پیام کاربر، اجرای یک ابزار و ذخیره پاسخ) یک نشست کوتاه باز کرده، Commit می‌کند و می‌بندد. این یعنی هیچ اتصالی در حالی که مدل در حال تفکر است، باز نمی‌ماند. به‌عنوان یک اثر جانبی، یک اسکن موفق به‌طور مستقل Commit می‌شود و حتی اگر ذخیره پاسخ نهایی با خطا مواجه شود، نتیجه اسکن باقی می‌ماند.

رابط کاربری و بهینه‌سازی توکن‌ها

AllerBot برای جلوگیری از هدر رفتن توکن (Token) — تکه‌های کوچکی از متن که مدل پردازش می‌کند — و همچنین جلوگیری از فرمت‌بندی ضعیف، متن‌های ادبی (Prose) را از داده‌های ساختاریافته جدا کرده است. برخی از نتایج ابزارها هرگز برای تبدیل شدن به متن نبودند. برای مثال، وقتی ابزار recommend_safe_products نتایج را برمی‌گرداند، سیستم نمی‌خواهد مدل پنج محصول را در قالب Markdown بنویسد؛ در عوض، فرانت‌اند کارت‌های محصول را رندر می‌کند.

به همین ترتیب، اگر کاربر به حساسیتی اشاره کند که هنوز ذخیره نکرده است، سیستم به‌جای یک جمله مودبانه از مدل برای درخواست ذخیره‌سازی، یک دکمه «این مورد را در پروفایل ذخیره کنیم؟» را فعال می‌کند. حلقه (Loop) داده‌های ساختاریافته را از نتایج ابزارها استخراج کرده و آن‌ها را در کنار متن بازمی‌گرداند. مدل جمله انسانی را می‌نویسد، در حالی که فرانت‌اند کامپوننت واقعی را نمایش می‌دهد.

گام بعدی شما

برای توسعه‌دهندگانی که اپلیکیشن‌هایی می‌سازند که در آن‌ها «اشتباه کردن» پیامدهای جدی دارد، سازنده این پروژه چندین درس کلیدی ارائه می‌دهد:

  • تعریف حق نویسندگی (Authorship): دقیقاً تصمیم بگیرید مدل اجازه دارد چه چیزی را بنویسد. در AllerBot، مدل نویسنده «توضیحات» است، اما هرگز نویسنده «حکم» نیست.
  • کد بر وزن‌ها اولویت دارد: منبع حقیقت (Source of Truth) را در کد قرار دهید، نه در وزن‌های مدل. در حالی که RAG متنی را برای ترکیب مدل فراهم می‌کند، پاسخ‌های قطعی باید خروجی یک تابع باشند که مدل صرفاً آن را روایت می‌کند.
  • مدل را مانند یک پیمانکار توجیه کنید: طرحواره‌های ابزار بخشی از پرامپت هستند. توصیفات را به‌گونه‌ای بنویسید که انگار دارید به پیمانکاری دستور می‌دهید که هر چیزی را دقیقاً همان‌طور که هست می‌پذیرد.
  • مدیریت دقیق وضعیت (State): مراقب باشید چه چیزهایی (اتصالات، قفل‌ها، تراکنش‌ها) در طول یک فراخوانی LLM باز می‌مانند، زیرا این بخش کندترین قسمت درخواست است.

پشته تکنولوژی (The Stack)

این برنامه در فرانت‌اند با Nuxt 4 و Vue 3 (با استفاده از SSR/ISR برای کراولرها)، در بک‌اند با FastAPI به همراه SQLAlchemy async و pgvector، برای احراز هویت از Firebase، برای عامل و بینایی از Gemini Flash و برای OCR جایگزین از doctr استفاده می‌کند.

شما می‌توانید قرارداد استناد (Grounding Contract) را به‌صورت رایگان در allernote.com/allerbot آزمایش کنید. وارد شوید تا بات بتواند حساسیت‌های تست-وصله (Patch-test) ذخیره‌شده شما را برای صدور احکام شخصی‌سازی‌شده بخواند.

اما داستان سخت‌افزاری این تحول حتی شگفت‌انگیزتر است — به تحلیل ما درباره‌ی تراشه‌های Blackwell مراجعه کنید.

چرا این موضوع مهم است؟

این معماری الگویی برای ساخت عامل‌های تخصصی (Agentic) فراهم می‌کند که در آن‌ها ریسک توهم به صفر می‌رسد. تخصص در اینجا نه در قدرت مدل، بلکه در طراحی سخت‌گیرانه‌ی لایه‌ی کنترل است.

تأثیر برای ایران

به‌دلیل محدودیت‌های API گوگل، توسعه‌دهندگان ایرانی برای پیاده‌سازی این الگو باید از مدل‌های جایگزین یا واسط‌های دسترسی استفاده کنند.

·نگاه ما
تحریریه دات‌هوش

جابجایی مرکز حقیقت از وزن‌های مدل به لایه‌ی ارکستراسیون، پایان عصر «اعتماد کوره به مدل» در کاربردهای حساس است. این الگو ثابت می‌کند که برای رسیدن به دقت ۱۰۰ درصد در حوزه‌های پزشکی، نباید مدل را آموزش داد، بلکه باید دست آن را در بیان حقیقت بسته و او را به یک اپراتور ابزار تبدیل کرد.

منابع

این گزارش با خط‌لولهٔ خودکار دات‌هوش از منابع معتبر جهانی تدوین و زیر نظر تحریریه منتشر شده است. روش کار ما

گفتگو

پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت در هر شماره. به‌زودی راه‌اندازی می‌شود — هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی

راهنماهای دات‌هوش

راهنماهای کاربردیِ دات‌هوش برای کار با هوش مصنوعی — از همین‌جا شروع کنید:

دات‌هوش

راهنمای فارسی هوش مصنوعی — با نگاه به ایران

اخبار روزانه، معرفی ابزارها و مدل‌ها، و آموزشِ کار با هوش مصنوعی؛ همیشه با این پرسش که از ایران چه چیزی کار می‌کند و چه چیزی نه.