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

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

بر اساس مستندات فنی این ابزار، درخواستها با استفاده از هش 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 مراجعه کنید.




گفتگو