خلاصه فناوری Function Calling
خلاصه فناوری Function Calling
1. تعریف
Function Calling مکانیزمی است که به توسعهدهندگان اجازه میدهد ابزارهای خارجی (مانند API) را از طریق JSON schema به مدل زبانی بزرگ (LLM) توصیف کنند. هنگامی که مدل تشخیص دهد برای پاسخ به سوال کاربر نیاز به فراخوانی ابزار دارد، دادههای ساختاریافته tool_calls JSON را خروجی میدهد که نام تابع و پارامترهای مورد نظر را مشخص میکند. برنامه میزبان این فراخوانی را تجزیه و اجرا میکند، نتیجه را به مدل بازمیگرداند و مدل پاسخ نهایی را تولید میکند.
2. اصل اصلی و مشکلات حل شده
- ماهیت: یک حلقه بسته "دو دور گفتگو + اجرای میانی". در دور اول مدل تصمیم میگیرد و درخواست فراخوانی ابزار را خروجی میدهد؛ کد میانی ابزار را اجرا میکند؛ در دور دوم مدل بر اساس نتیجه اجرا پاسخ نهایی را تولید میکند.
- مشکلات حل شده: این روش مشکل وابستگی به تحلیل زبان طبیعی ناپایدار و مستعد خطا (if/else) را که پیشتر برای فراخوانی ابزار استفاده میشد، حل کرده و با خروجی ساختاریافته استانداردسازی و دقت را بهبود بخشیده است.
3. تقسیم وظایف (تشبیه به واگذاری وظیفه)
- توسعهدهنده (HR): ابزارها را تعریف میکند و JSON Schema حاوی توضیحات عملکرد ابزار، پارامترها و غیره را مینویسد.
- مدل LLM (مدیر): توضیحات ابزار را درک میکند، تصمیم میگیرد که آیا نیاز به فراخوانی است، کدام ابزار و با چه پارامترهایی، و درخواست فراخوانی ساختاریافته (
tool_calls) را خروجی میدهد. مدل فقط تصمیمگیری و تولید متن میکند و خود کد را اجرا نمیکند. - اجراکننده/کد میزبان (کارمند): درخواست
tool_callsمدل را تجزیه میکند، تابع یا API مربوطه را واقعاً اجرا میکند و نتیجه را بازمیگرداند.
4. تعریف ابزار (JSON Schema)
Schema "دفترچه راهنما"ی ابزار است که اطلاعات کلیدی شامل:
- name: شناسه یکتای ابزار.
- description: بسیار حیاتی، مدل کاملاً به این توضیحات وابسته است تا تصمیم بگیرد آیا ابزار را فراخوانی کند یا خیر. هرچه توضیحات واضحتر و دقیقتر باشد، تصمیم مدل دقیقتر است.
- parameters: پارامترهای مورد نیاز ابزار و نوع، توضیحات، محدودیتها (مانند مقادیر شمارشی، الزامی بودن و غیره) را تعریف میکند.
5. فرآیند کامل فراخوانی
مقاله با یک مثال کد برای پرسوجوی آبوهوا، فرآیند کامل از پرسش کاربر، اولین فراخوانی مدل همراه با تعریف ابزار، بازگشت tool_calls از مدل، اجرای تابع توسط کد، بازگرداندن نتیجه به عنوان پیام با role: "tool" به تاریخچه گفتگو، و در نهایت تولید پاسخ نهایی به زبان طبیعی توسط مدل را نشان میدهد.
6. ویژگی پیشرفته - فراخوانی موازی ابزار
زمانی که سوال کاربر نیاز به همکاری چند ابزار دارد (مثلاً پرسوجوی همزمان آبوهوای چند شهر)، مدل میتواند در یک پاسخ لیستی از چند tool_calls را خروجی دهد. کد میزبان میتواند این فراخوانیها را به صورت موازی اجرا کند، سپس همه نتایج را یکجا به مدل بازگرداند تا ترکیب کند و در نتیجه کارایی افزایش یابد.
评论
暂无已展示的评论。
发表评论(匿名)