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

چطور llm-mock وابستگی تست‌های هوش مصنوعی به API را می‌گیرد؟

·۱ تیر ۱۴۰۵۳ دقیقه مطالعه
راهنما
نحوه شبیه‌سازی فراخوانی‌های API اوپن‌ای‌ای و آنتروپیک در pytest بدون monkeypatching
نحوه شبیه‌سازی فراخوانی‌های API اوپن‌ای‌ای و آنتروپیک در pytest بدون monkeypatching
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

معرفی مکانیزم شناسایی درخواست‌ها بر اساس هش (Hash) مدل و پرامپت برای ایجاد یک پایگاه داده‌ی پاسخ‌های متناظر در تست‌های pytest؛ رویکردی که برخلاف ابزارهای عمومی HTTP، معنای تعامل با LLM را درک می‌کند.

اگر برای هر بار اجرای تست‌های خود در محیط CI/CD مبلغی را به OpenAI می‌پردازید، این ابزار می‌تواند صورت‌حساب شما را به صفر برساند. llm-mock که در ژوئن ۲۰۲۶ منتشر شد، یک پلاگین تخصصی برای pytest است که با chặn کردن لایه‌ی HTTP، پاسخ‌های واقعی SDK را ضبط کرده و در دفعات بعد بازپخش می‌کند.

این رویکرد در راستای استراتژی‌های فنی برای کاهش هزینه‌های API قرار دارد که به توسعه‌دهندگان کمک می‌کند تا بدون کاهش کیفیت، بودجه‌های عملیاتی خود را بهینه کنند.

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

همان‌طور که در تحلیل قبلی ما درباره‌ی شکاف‌های اعتماد در گره‌های سازگار با OpenAI اشاره کردیم، پایداری ادغام این مدل‌ها در کدبیس یک چالش جدی است. llm-mock دقیقاً برای حل این ناپایداری طراحی شده است.

نحوه شبیه‌سازی فراخوانی‌های API اوپن‌ای‌ای و آنتروپیک در pytest (بدون monkeypatching)

به نقل از مستندات llm-mock در گیت‌هاب، این ابزار در سه حالت اصلی عمل می‌کند:

  • حالت ضبط (Record Mode): یک‌بار با API زنده ارتباط می‌گیرد و پاسخ را در یک فایل JSON انسان‌خوان ذخیره می‌کند.
  • حالت بازپخش (Replay Mode): پاسخ ذخیره‌شده را فوراً برمی‌گرداند؛ در این حالت نیازی به کلید API نیست و تأخیر شبکه صفر می‌شود.
  • حالت خودکار (Auto Mode): ترکیبی از دو حالت قبل است که اگر فایل ذخیره وجود داشته باشد از آن استفاده و در غیره، آن را ضبط می‌کند.

نحوه شبیه‌سازی فراخوانی‌های API اوپن‌ای‌ای و آنتروپیک در pytest (بدون monkeypatching)

بر اساس مستندات فنی این ابزار، درخواست‌ها با استفاده از هش SHA256 مدل، پیام‌ها و دما (Temperature) شناسایی می‌شوند. این یعنی هر پرامپت همیشه به ورودی متناظر خود در فایل ذخیره متصل می‌شود. این معماری از SDKهای OpenAI و Anthropic پشتیبانی می‌کند.

برای توسعه‌دهنده، این یعنی اجرای CI کاملاً قطعی و رایگان می‌شود. چون پاسخ‌ها در قالب JSON ساده هستند، تغییرات آن‌ها در Pull Requestها به‌راحتی قابل رصد است و می‌توان اثر تغییرات مهندسی پرامپت (Prompt Engineering) — که شبیه هنر سؤال درست پرسیدن از یک مشاور باتجربه است — را در طول زمان دنبال کرد.

این رویکرد صنعت را از ابزارهای عمومی ضبط HTTP مثل VCR.py دور می‌کند که معنای تخصصی تعاملات با مدل‌های زبانی را نمی‌فهمند. با تبدیل تعاملات مدل به آرتیفکت‌های نسخه‌بندی‌شده در Git، تیم‌ها می‌توانند یک «مجموعه داده طلایی» از پاسخ‌ها بسازند تا از عقب‌گرد کیفیت (Regression) جلوگیری کنند.

برای به‌روزرسانی پاسخ‌ها پس از آپدیت مدل، توسعه‌دهندگان می‌توانند از متغیر محیطی LLM_MOCK_DISABLED=1 استفاده کنند. این کار باعث می‌شود مجموعه تست بدون تغییر در کد، دوباره به API واقعی متصل شده و فایل‌های JSON را بازنویسی کند.

گام بعدی شما

  • نصب ابزار با دستور pip install llm-mock
  • اعمال دکوراتور @pytest.mark.llm_replay روی توابع تست
  • جایگزینی موک‌های دستی (Manual Mocks) با پاسخ‌های ضبط‌شده واقعی

اما مدیریت حافظه در این مدل‌ها چالش دیگری است؛ برای درک لایه‌های ذخیره‌سازی، به تحلیل ما درباره‌ی پروتکل MCP مراجعه کنید.

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

این ابزار با تکیه بر تجربه واقعی توسعه‌دهندگان، مشکل غیرقطعی بودن (Non-determinism) مدل‌های زبانی را در چرخه توسعه حل می‌کند. نتیجه آن کاهش چشمگیر هزینه‌های عملیاتی و افزایش سرعت انتشار نرم‌افزار در مقیاس صنعتی است.

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

این ابزار برای توسعه‌دهندگان ایرانی که با محدودیت‌های پرداخت ارزی برای APIهای OpenAI و Anthropic دست‌وپنجه نرم می‌کنند، حیاتی است؛ زیرا اجازه می‌دهد تست‌های سیستم را بدون هزینه و وابستگی به پرداخت‌های متناوب اجرا کنند.

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

انتقال تعاملات مدل از لایه‌ی شبکه به لایه‌ی Git، در واقع «داده‌محور کردن تست‌ها» را جایگزین «کدنویسی برای تست» می‌کند. این تغییر باعث می‌شود مهندسی پرامپت از یک فرآیند آزمون و خطا به یک مهندسی با قابلیت بازتولید (Reproducible) تبدیل شود. در واقع، llm-mock پاسخ‌های مدل را به بخشی از کد منبع تبدیل می‌کند.

منابع

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

گفتگو

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

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

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

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

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

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

دات‌هوش

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

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