کارت درس سری همیشه به‌روز دربارهٔ کنترل انتخاب ابزار و پارامتر tool_choice

کنترل انتخاب ابزار؛ چطور تعیین کنیم مدل کِی و کدام ابزار را صدا بزند

⏱ زمان مطالعه: حدود ۱۲ دقیقه✏️ تمرین دارد🎯 سطح: میانی

سارا در یک استارتاپ فین‌تک، ربات پشتیبانی مشتری را راه انداخته است. سه ابزار به مدل داده: پیگیری وضعیت تراکنش، مسدودکردن کارت، و ارسال پیامک به کاربر. هفتهٔ اول همه‌چیز خوب پیش می‌رود تا اینکه گزارش‌ها می‌رسد: کاربری فقط نوشته «سلام، ساعت کاری‌تان چند است؟» و ربات بی‌درنگ ابزار پیگیری تراکنش را صدا زده و پرسیده شمارهٔ تراکنش چند است. جای دیگر، کاربری خواسته کارتش مسدود شود و مدل به‌جای صدازدن ابزار، یک پاراگراف دلسوزانه نوشته که «حتماً پیگیری می‌کنیم». سارا فکر می‌کند مدل ضعیف است. مدل ضعیف نیست؛ فقط هیچ‌کس به او نگفته که در هر لحظه چقدر آزادی دارد.

پارامتری که این آزادی را تنظیم می‌کند tool_choice نام دارد و در ظاهر ساده‌ترین بخش کار با ابزار است: یک آبجکت کوچک با یک فیلد type. اما همین آبجکت کوچک تعیین می‌کند سامانهٔ شما قابل‌اعتماد است یا نه. در درس‌های قبلی یاد گرفتیم ابزار چیست و چطور از آن برای گرفتن دادهٔ ساخت‌یافته استفاده کنیم. این درس دربارهٔ کنترل است: چه کسی تصمیم می‌گیرد ابزار صدا زده شود، شما یا مدل؟

آنچه در این درس یاد می‌گیرید

  • چهار حالت tool_choice — یعنی auto، any، tool و none — و اینکه هرکدام دقیقاً چه چیزی را تضمین می‌کنند.
  • چرا در حالت خودکار، کیفیت پرامپت سیستمی از کیفیت مدل مهم‌تر می‌شود.
  • هزینهٔ پنهان اجبار: چرا وقتی ابزار را اجباری می‌کنید، مدل دیگر توضیح نمی‌دهد و چطور این را دور بزنید.
  • کنترل فراخوانی موازی با کلید disable_parallel_tool_use و تفاوت رفتارش در حالت‌های مختلف.
  • رابطهٔ کمترشناخته‌شدهٔ tool_choice با کش پرامپت و هزینه‌ای که تعویض بی‌دلیل حالت روی دست‌تان می‌گذارد.
  • یک چارچوب تصمیم‌گیری ساده برای انتخاب حالت درست در هر سناریو.

چهار حالت، چهار قرارداد متفاوت

به هر حالت به‌چشم یک قرارداد نگاه کنید؛ قراردادی که شما با مدل می‌بندید و بر اساس آن می‌توانید بگویید در پاسخ چه چیزی حتماً خواهد بود و چه چیزی ممکن است نباشد.

حالت auto پیش‌فرض است هر وقت فهرست ابزارها را بفرستید. یعنی مدل خودش تصمیم می‌گیرد ابزار صدا بزند یا با متن ساده جواب بدهد. تضمینی وجود ندارد. حالت any می‌گوید حتماً یکی از ابزارها را صدا بزن، اما انتخاب اینکه کدام‌یک با خودت است. حالت tool یک قدم سخت‌گیرانه‌تر است: نام ابزار را هم شما تعیین می‌کنید و مدل چاره‌ای جز صدا زدن همان یکی ندارد. و حالت none که پیش‌فرض حالتی است که اصلاً ابزاری نفرستاده باشید، جلوی هر فراخوانی را می‌گیرد؛ ابزارها در متن پرامپت هستند اما مدل حق استفاده ندارد.

ترجمهٔ این چهار قرارداد به زبان سارا: برای پیام «سلام، ساعت کاری‌تان چند است؟» حالت درست auto است. برای دکمهٔ «کارتم را مسدود کن» که کاربر عمداً فشار داده، tool با نام ابزار مسدودسازی. برای صفحهٔ «مشکلت را انتخاب کن»، any. و برای دور دومی که فقط می‌خواهید مدل نتیجهٔ ابزار را خلاصه کند، none.

حالت خودکار: جایی که پرامپت سیستمی حرف آخر را می‌زند

در حالت خودکار، همهٔ بار تصمیم روی دوش پرامپت است. مستندات رسمی آنتروپیک هم روی همین نکته تأکید می‌کند: مدل می‌تواند در صدازدن ابزار «بیش‌ازحد مشتاق» باشد و تنها چیزی که جلوی این اشتیاق را می‌گیرد، دستور صریح شماست. نمونهٔ رسمی برای یک ابزار جست‌وجوی وب چنین است:

تا اینجا مقدمه بود. بخش اصلی این درس — نمونه‌ها، پرامپت‌های آماده و تمرین‌ها — برای اعضای ویژه باز می‌شود.

🔒

کنترل انتخاب ابزار؛ چطور تعیین کنیم مدل کِی و کدام ابزار را صدا بزند

برای دیدن این بخش باید عضو ویژه (VIP) باشی. با شمارهٔ موبایلت وارد شو تا ۱۴ روز دسترسی رایگان فعال شود.

🎁 ورود / ثبت‌نام و شروع ۱۴ روز رایگان
قبلاً عضو شده‌ای؟ فقط کافی است وارد شوی. اشتراک: از ۱۹۹٬۰۰۰ تومان / ماه
— (0 رأی)

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *