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

DepExit: اتوماسیون مهاجرت وابستگی‌های پایتون با تکیه بر اجرای کد

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

جایگزینی حدس‌های مدل زبانی با یک خط لوله تأییدشده توسط اجرا (Execution-Verified)؛ در حالی که اکثر ابزارهای AI فقط کد پیشنهاد می‌دهند، DepExit کد را اجرا کرده و صحت آن را با تست‌های واقعی می‌سنجد.

تصور کنید یک برنامه‌نویس فریلنسر هستید که پروژه‌ای قدیمی را تحویل گرفته‌اید و باید ساعت‌ها مستندات را بخوانید تا بفهمید کدام کتابخانه منسوخ شده و جایگزین آن چیست. حالا یک اجرای ۱۳ دقیقه‌ای و خودکار، جایگزین روزها بررسی دستی تغییرات (Changelog) برای توسعه‌دهندگان پایتون شده است.

DepExit، ابزاری که برای چالش هوش مصنوعی متن‌باز Hacktoberfest (مسابقه Hack Day Mumbai × ISTE KJSSE ۲۰۲۶) توسعه یافته، از Gemma 4 استفاده می‌کند تا وابستگی‌های پرریسک را بیابد. تفاوت اصلی این ابزار در این است که به‌جای حدس‌زدن‌های هوش مصنوعی، جایگزین‌ها را از طریق اجرای واقعی کد در محیط ایزوله تأیید می‌کند.

نگهداری از کدهای قدیمی پایتون اغلب شبیه به یک بازی خطرناک است؛ شما حدس می‌زنید کدام بسته (Package) منسوخ شده و سیستم را می‌شکنید. همان‌طور که در تحلیل‌های قبلی ما درباره‌ی امنیت مدل‌های بازمتن اشاره کردیم، اتکای صرف به پیشنهادات مدل‌های زبانی بدون لایه تأیید، ریسک توهم را بالا می‌برد. در حالت سنتی، توسعه‌دهندگان یا آژانس‌های کوچک معمولاً یک یا دو روز را صرف خواندن مستندات می‌کنند که این فرآیند مستعد خطای انسانی است و منجر به بروز مشکلاتی می‌شود که تنها در محیط عملیاتی (Production) ظاهر می‌شوند. این رویکرد تأییدمحور یادآور راهکارهای مشابهی است که ابزار اتنا برای حذف خطاهای بحرانی در تغییرات کد از طریق تحلیل محلی AST به کار گرفته بود.

به نقل از گزارشی در dev.to که در ۱۷ اکتبر ۲۰۲۶ منتشر شد، DepExit این مشکل را با معماری «پیشنهاد و تصمیم» حل می‌کند. در این ساختار، کدهای قطعی (Deterministic) وظیفه تحلیل فایل‌های requirements.txt و pyproject.toml را بر عهده دارند، در حالی که Gemma 4 (به‌طور خاص مدل gemma-4-31b-it از طریق API جمینای) استدلال لازم برای یافتن جایگزین‌ها را انجام می‌دهد.

فلسفه طراحی و سازوکار

قاعده اصلی در DepExit این است: «Gemma پیشنهاد می‌دهد و اجرا تصمیم می‌گیرد». بخش کدنویسی قطعی، با پیمایش فایل‌ها توسط ast به دنبال Importها و استفاده از APIهای خصوصی می‌گردد. سپس تاریخچه نسخه‌ها را از PyPI و گیت‌هاب استخراج می‌کند تا یک خط مبنای واقعی بسازد.

Gemma 4 — مثل یک متخصص ارشد که فقط شواهد جمع‌آوری‌شده و فایل‌های مربوطه را می‌بیند — وظیفه «تفکر» را بر عهده دارد. این مدل یک تصمیم برای جایگزینی، ویرایش‌های دقیق کد، تغییرات در نیازمندی‌ها و تست‌های کوچکی را بازمی‌گرداند که دقیقاً برای بازسازی رفتار مورد نیاز مخزن (Repository) طراحی شده‌اند.

خط لوله اعتبارسنجی

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

  • مشاهده (Observation): ابزار فایل‌های مخزن و متادیتای PyPI/GitHub را می‌خواند. این داده‌ها با برچسب OBSERVED ثبت می‌شوند و در این مرحله هیچ کدی اجرا نمی‌شود.
  • اندازه‌گیری (Measurement): پروژه در یک محیط مجازی (Virtual Environment) پاک نصب شده، هر بسته به‌صورت جداگانه Import می‌شود و pytest اجرا می‌گردد. نتایج با برچسب MEASURED ثبت می‌شوند.
  • پیشنهاد (Suggestion): Gemma 4 یک برنامه جایگزینی پیشنهاد می‌دهد که با برچسب AI-SUGGESTED مشخص می‌شود و به‌تنهایی قابل اعتماد نیست.
  • تأیید (Verification): ابزار برنامه را روی یک کپی ایزوله اعمال کرده و هر دو دسته تست‌های اصلی و تولیدشده توسط AI را اجرا می‌کند. یک برنامه تنها زمانی AI-VERIFIED می‌شود که تمام نشانگرهای ریسک حذف شوند و هیچ پس‌روی (Regression) در عملکرد رخ ندهد.

بر اساس گزارش‌های فنی، در یک اجرای آزمایشی روی مخزن LinkWatch در ۱۵ اکتبر ۲۰۲۶، DepExit ۱۶ وابستگی را تحلیل کرد و ۱۰ مورد پرریسک یافت. این ابزار توانست ۱۰ مورد از ۱۰ برنامه جایگزینی را از طریق اجرا تأیید کند که منجر به پاس شدن ۲۳ تست (۱۰ تست اصلی و ۱۳ تست نوشته شده توسط AI) بدون هیچ هشدار شد.

معماری فنی و قابلیت اطمینان

برای تضمین اعتماد، ابزار «تفکر» را از «قضاوت» جدا کرده است. Gemma 4 هرگز سطح ریسک را تعیین نمی‌کند، کار خود را نمره نمی‌دهد و منبع داده‌های OBSERVED یا MEASURED نیست. اگر مهاجرت شکست بخورد، خروجی دقیق خطا به مدل بازگردانده می‌شود تا یک تلاش نهایی برای اصلاح انجام دهد.

توسعه‌دهنده ابزار به باگی در نسخه‌های اولیه اشاره کرد که در آن بسته requests به‌دلیل پاسخ ناقص AI، به‌اشتباه تأیید شده بود. این موضوع منجر به پیاده‌سازی یک تجزیه‌کننده (Parser) سخت‌گیرانه‌تر و بازبینی مجدد هر نشانگر شد. برای تست بخش قطعی، ابزار بدون AI روی jazzband/prettytable اجرا شد که منجر به شناسایی چهار باگ در چیدمان شد که همان روز اصلاح شدند.

برای مشتریانی که حساسیت روی حریم خصوصی دارند، DepExit از استنتاج (Inference) — لحظه‌ای که مدل واقعاً جواب تولید می‌کند، شبیه به خودِ آشپزی و نه دوره آموزش آشپز — محلی از طریق Ollama پشتیبانی می‌کند تا کدها هرگز دستگاه را ترک نکنند. این رویکرد استنتاج محلی مشابه پیاده‌سازی در پروژه MenuMitra برای بومی‌سازی منوهای رستوران است که امنیت داده‌ها را در اولویت قرار می‌دهد. این ابزار تنها به کتابخانه استاندارد پایتون متکی است و نیازی به نصب خارجی ندارد.

کپسول خروج از وابستگی

هر وابستگی تحلیل‌شده به یک «کپسول خروج» تبدیل می‌شود که شامل سه بخش است:

۱. یک رکورد JSON برای پردازش ماشینی.
۲. یک صفحه Markdown خوانا برای بررسی انسانی.
۳. یک وصله (Patch) برای پیاده‌سازی.

این چرخش به سمت کدنویسی تأییدشده با اجرا، معیار ابزارهای توسعه را تغییر می‌دهد. با تبدیل «پیشنهاد AI» به «پیشنهاد AI و تأیید اجرا»، ریسک توهم (Hallucination) — وقتی مدل با اطمینان چیزی می‌گوید که وجود ندارد، مثل دوستی که خاطره‌ای را اشتباه تعریف می‌کند — در مهاجرت‌های کد حذف می‌شود. از آنجا که وزن‌های باز (Open Weights) مدل Gemma 4 تحت لایسنس Apache 2.0 است و تمام پرامپت‌ها ذخیره می‌شوند، فرآیند کاملاً قابل حسابرسی است.

برای کاربر نهایی، این یعنی هزینه نگهداری کدهای رهاشده به‌شدت کاهش می‌یابد. تیم‌های کوچک اکنون می‌توانند گزارشی تأییدشده و یک وصله آماده را به مشتری تحویل دهند و ساعات کاری صرف‌شده برای نگهداری‌های خسته‌کننده را کاهش دهند.

گام بعدی شما

  • اگر مخازن پایتون قدیمی دارید، DepExit را از طریق python -m depexit analyze روی گیت‌هاب خود تست کنید.
  • برای پروژه‌های حساس، از طریق Ollama استنتاج محلی را فعال کنید تا امنیت کد حفظ شود.
  • خروجی‌های Markdown را برای بررسی نهایی انسانی به کار ببرید تا منطق جایگزینی با نیازهای بیزنس همسو باشد.

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

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

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

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

برنامه‌نویسان ایرانی که در پروژه‌های Outsource یا نگهداری سیستم‌های قدیمی فعال‌اند، می‌توانند با استفاده از نسخه محلی (Ollama) بدون نیاز به API و نگرانی از تحریم‌ها، سرعت به‌روزرسانی کتابخانه‌ها را افزایش دهند.

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

جدا کردن لایه «پیشنهاد» از لایه «قضاوت» در DepExit، الگویی را معرفی می‌کند که در آن LLM دیگر به عنوان تصمیم‌گیرنده نهایی، بلکه به عنوان یک موتور تولید فرضیه عمل می‌کند. این رویکرد نشان می‌دهد که آینده ابزارهای کدنویسی نه در مدل‌های بزرگ‌تر، بلکه در ایجاد حلقه‌های بازخورد (Feedback Loops) سخت‌گیرانه است که خروجی مدل را با واقعیتِ محیط اجرا تطبیق می‌دهد.

منابع

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

گفتگو

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

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

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

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

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

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

دات‌هوش

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

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