امروزه مدلهای زبانی به بخش جدایی ناپذیر زندگی ما تبدیل شدهاند و ما تقریبا هر سوالی را از آنها میپرسیم. تا چند ماه پیش، این مدلهای زبانی فقط بر اساس دانشی که از پیش یاد گرفته بودند، پاسخ میدادند. آنها نمیتوانستند اطلاعات جدید دریافت کنند یا کارهای عملی انجام دهند. اما امروز، باTool Calling یا معادل فارسی اش فراخوانی ابزار اوضاع تغییر کرده است.
فراخوانی ابزار تنها برای گرفتن اطلاعات به روز نیست. با این قابلیت هوش مصنوعی میتواند محاسبات انجام دهد، ایمیل بفرستد، یا حتی یک قرار ملاقات تنظیم کند. این قابلیت، مدلهای زبانی را از یک پاسخدهنده ساده به دستیارهای هوشمند و کارآمد تبدیل کرده است. در این مقاله به صورت کامل با مفهوم Tool Calling در دنیای هوش مصنوعی آشنا میشویم.
Tool calling یا فراخوانی ابزار چیست؟
Tool Calling که به آن فراخوانی تابع (Function Calling) نیز گفته میشود، روشی است که به هوش مصنوعی اجازه میدهد با ابزارهای خارجی ارتباط برقرار کند و کارهای مختلفی انجام دهد. به جای اینکه فقط بر دانش از پیشآموختهشده تکیه کند، میتواند اطلاعات جدید بگیرد، محاسباتی را انجام دهد یا حتی یک کار واقعی را برای ما اجرا کند.
Tool Calling یکی از ارکان کلیدی هوش مصنوعی عاملمحور یا همان Agentic AI محسوب میشود. این قابلیت به سیستمهای خودکار اجازه میدهد تا وظایف پیچیده را با دسترسی و اقدام پویا بر روی منابع خارجی انجام دهند.
برای مثال، اگر مدتی قبل از چت جیپیتی در مورد آب و هوا سوال میپرسیدید، او به شما پاسخ میداد که «من فقط به دادههایی که تا فلان تاریخ در دسترس بودهاند، دسترسی دارم و نمیتوانم اطلاعات جدیدتر را ارائه دهم.» اما حالا اوضاع تغییر کرده است. برای مثال اگر آب و هوای شهرستان شهربابک را بپرسید، به راحتی پاسخ را دریافت میکنید. این کاری است که Tool Calling با هوش مصنوعی انجام میدهد.
یک مدل هوش مصنوعی بدون قابلیت Tool Calling چگونه بود؟
سرعت تحولات دنیای هوش مصنوعی به قدری بالا است که شاید حالا یادمان نیاید تا یک سال پیش مدلها چگونه بودهاند. اما بیایید یادآوری کنیم. یک مدل زبانی هنگامی که فقط بر اساس دادههای آموزشی خود عمل میکند، شبیه کودکی است که بلد است جمله سازی کند. مثلا اگر از او بپرسید یک انشا در مورد حیوان پلنگ بنویس، او میتواند حسابی و بسیار زیبا برای شما بنویسد، اما چیزی بیشتر ارائه نمیکند.
اما قابلیت Tool Calling به این دانش آموز دبستانی اجازه میدهد که به اینترنت برود، مقالاتی در مورد پلنگ بخواند، انشا را بنویسد، سپس حتی انشا را به دوستانش نیز ایمیل کند.
قابلیت Tool Calling مدل هوش مصنوعی را از یک کودک دبستانی انشا نویس، به پژوهشگری متخصص تبدیل میکند.
چگونه فراخوانی ابزار کار میکند؟
Tool Calling در هوش مصنوعی فرآیندی است که در آن مدل هوش مصنوعی تشخیص میدهد که برای پاسخ به یک درخواست، به اطلاعات یا قابلیتهای خارجی نیاز دارد. سپس ابزار مناسب را انتخاب میکند، دادهها را دریافت و پردازش میکند و در نهایت پاسخی دقیق و کاربردی ارائه میدهد.
نحوه عملکرد فراخوانی ابزار شبیه یک پروژه کلاسی در دانشگاه است. استاد سوالی را مطرح میکند، شما سپس میفهمید باید به سراغ چه منابعی بروید، سپس چه موضوعاتی را بررسی کنید، سپس با استفاده از چه نرم افزارها یا ابزارهایی کار را انجام دهید و در نهایت پروژه را به استاد تحویل دهید.
این فرآیند در چند مرحله انجام میشود.
۱. تشخیص نیاز به ابزار
هنگامی که کاربر سؤالی مطرح میکند، مدل زبانی ابتدا بررسی میکند که آیا میتواند با دانش داخلی خود ( بر اساس آموزشهای قبلی) پاسخ دهد یا نه. اگر پاسخ نیاز به دادههای در لحظه اینترنت ( نظیر دادههای هواشناسی یا نتایج مسابقات فوتبال)، محاسبات پیچیده یا انجام یک کار خاص داشته باشد، مدل تصمیم میگیرد که از یک ابزار خارجی استفاده کند.
مثلا وقتی شما در مورد آب و هوا میپرسید، مدل میفهمد که باید به سراغ یک ابزار هواشناسی برود. زیرا خودش نمیتواند به تنهایی پاسخ دهد.
۲. انتخاب ابزار مناسب
پس از که مدل فهمید به یک ابزار نیاز دارد، حالا باید انتخاب کند کدام ابزار مناسب است. این ابزارها میتوانند شامل APIهای اینترنتی، پایگاههای داده، موتورهای جستجو یا حتی سیستمهای اتوماسیون باشند. برای پاسخ به پرسش دمای هوا، مدل میتواند از یک سرویس مانند OpenWeather API یا Google Weather استفاده کند.
۳. ساخت و ارسال درخواست
مدل باید درخواست خود را به روشی ارسال کند که آن ابزار بتواند آن را بفهمد. مثلا ابزار هواشناسی که سوالات فارسی ما را نمیفهمد. هر ابزار دارای یک قالب خاص برای دریافت اطلاعات است، که معمولاً بهصورت JSON یا پارامترهای URL ارسال میشود.
به عنوان مثال مدل هوش مصنوعی درخواستی به شکل زیر برای API هواشناسی ارسال میکند:
"city": "Shahr-e-babak",
"unit": "Fahrenheit"
این درخواست از ابزار میخواهد که دمای شهربابک را به درجه سانتیگراد برگرداند.
۴. دریافت و پردازش پاسخ
حالا مدل هوش مصنوعی دادههای مورد نیاز خود در یک قالب خاص دریافت کرده است. اما این خروجی که او دریافت کرده است، چیزی نیست که ما میبینیم مثلا در مثال هواشناسی پاسخ خروجی API چیزی شبیه به زیر است:
{
"temperature": 57,
"humidity": 45,
"wind_speed": 10
}
حالا مدل هوش مصنوعی ما، این اطلاعات را پردازش میکند. و میفهمد که هوا چگونه است و سرعت باد چقدر است و …
۵. ارائه پاسخ نهایی به کاربر
در نهایت، پس از پردازش دادهها، مدل پاسخی طبیعی و خوانا را در اختیار ما قرار میدهد. این پاسخ میتواند در قالب متن، نمودار، یا حتی یک اقدام خودکار ( مثلا بر هم زدن یک قرار کاری) باشد. حتی ممکن است پیشنهادات دیگری نیز ارائه کند. مثلا بگوید اگر قصد بیرون رفتن دارید، حتما چتر بردارید.
دو روش اصلی فراخوانی ابزار: سنتی و جاسازی شده
برای Tool Calling توسط مدلهای هوش مصنوعی، دو رویکرد اصلی وجود دارد که تفاوتهای قابل توجهی در نحوه عملکرد و تعامل ابزارها با مدلهای زبان بزرگ دارند. این دو روش عبارتند از فراخوانی ابزار سنتی و فراخوانی ابزار جاسازی شده. در ادامه به توضیح و مقایسه این دو روش خواهیم پرداخت.
1. فراخوانی ابزار سنتی (Traditional Tool Calling)
در روش سنتی، یک برنامه کلاینت و یک مدل زبان بزرگ با هم همکاری میکنند. در این مدل، فرآیند به صورت زیر عمل میکند:
- برنامه کلاینت پیامها و تعاریف ابزار را به مدل زبان بزرگ ارسال میکند.
- مدل زبان بزرگ با توجه به درخواست کاربر، ابزار مناسبی را برای فراخوانی پیشنهاد میدهد.
- در این مرحله، مسئولیت فراخوانی ابزار و دریافت پاسخ از آن بر عهده برنامه کلاینت است.
- پس از دریافت پاسخ از ابزار، برنامه کلاینت پاسخ را به مدل زبان بزرگ ارسال میکند.
- مدل زبان بزرگ این پاسخ را تفسیر کرده و در صورت نیاز، ابزارهای دیگری را برای تکمیل درخواست پیشنهاد میدهد.
یکی از معایب مهم این روش این است که مدل زبان بزرگ ممکن است دچار توهم شود. به این معنا که ممکن است مدل ابزار اشتباهی را فراخوانی کند یا نتواند ابزار مناسب را شناسایی کند. در این حالت، عملکرد مدل دچار اختلال میشود و نیاز به بازبینی و اصلاح توسط برنامه کلاینت وجود دارد.
2. فراخوانی ابزار جاسازی شده (Embedded Tool Calling)
در روش فراخوانی ابزار جاسازی شده، کتابخانه یا فریمورکی بین مدل زبان بزرگ و برنامه کلاینت قرار میگیرد. این کتابخانه به عنوان واسط عمل کرده و فرآیند فراخوانی ابزار را مدیریت میکند. در این مدل، روند به این صورت است:
- برنامه کلاینت پیامی به مدل زبان بزرگ ارسال میکند.
- این پیام ابتدا از طریق کتابخانه عبور میکند. کتابخانه اطلاعات مربوط به تعاریف ابزارها را به پیام اضافه کرده و آن را به مدل زبان بزرگ میفرستد.
- مدل زبان بزرگ بر اساس اطلاعات ارسالشده، ابزار مورد نظر را شناسایی کرده و کتابخانه به جای برنامه کلاینت، ابزار را فراخوانی میکند.
- در نهایت، کتابخانه پاسخ نهایی را به مدل زبان بزرگ بازمیگرداند.
مزیت بزرگ این روش این است که مدل زبان بزرگ کمتر دچار توهم میشود. زیرا کتابخانه مسئولیت فراخوانی و اجرای ابزارها را به عهده دارد و این امکان را فراهم میکند که ابزارهای دقیقتری برای پاسخ به درخواستهای پیچیدهتر انتخاب شوند. همچنین اگر ابزار نتواند به درستی کار کند، کتابخانه قادر به بازآزمایی فراخوانیها است.
مقایسه دو روش
ویژگی | فراخوانی ابزار سنتی | فراخوانی ابزار جاسازی شده |
---|---|---|
مسئول فراخوانی ابزار | برنامه کلاینت مسئول فراخوانی ابزار است. | کتابخانه مسئول فراخوانی و اجرای ابزارها است. |
توهم مدل | مدل زبان بزرگ ممکن است ابزار اشتباهی را فراخوانی کند. | احتمال توهم کمتر است زیرا کتابخانه به دقت ابزار را انتخاب میکند. |
کنترل | کنترل بیشتر در دست برنامه کلاینت است. | کنترل فراخوانی ابزار در دست کتابخانه است. |
بازآزمایی فراخوانیها | نیاز به مداخله انسان برای اصلاح ابزار فراخوانی شده دارد. | کتابخانه میتواند فراخوانیها را مجدداً امتحان کند. |
کاربردهای Tool Calling در دنیای واقعی
قابلیت Tool Calling، هوش مصنوعی را از یک پاسخدهنده ساده به یک دستیار هوشمند و عملیاتی تبدیل میکند. با این قابلیت، مدلهای زبانی میتوانند اطلاعات لحظهای دریافت کنند، وظایف را خودکارسازی کنند، یا حتی دستگاههای مختلف را کنترل کنند. در ادامه، برخی از کاربردهای کلیدی این فناوری را بررسی میکنیم.
۱. دریافت دادههای لحظهای و جستجوی اطلاعات
هوش مصنوعی میتواند برای پاسخگویی به سؤالاتی که به اطلاعات بهروز نیاز دارند، از منابع معتبر استفاده کند. این قابلیت در بسیاری از حوزهها کاربرد دارد.
✅ مثالها:
- اخبار و رویدادها: دریافت آخرین اخبار از منابع خبری معتبر.
- قیمت ارز و سهام: پرسیدن “نرخ دلار امروز چند است؟” و دریافت دادههای مالی زنده.
- آبوهوا: اطلاع از وضعیت هوا در یک شهر خاص، با دادههای بهروز.
این که امروزه میتوانید به جای گوگل از چت جیپیتی استفاده کنید، به لطف همین قابلیت است.
۲. اتوماسیون وظایف و دستیارهای شخصی
فراخوانی ابزار میتواند بسیاری از کارهای تکراری را بهصورت خودکار انجام دهد و تجربه کاربری را بهبود ببخشد.
✅ مثالها:
- مدیریت ایمیل و زمانبندی: تنظیم قرار ملاقات، ارسال ایمیل یا یادآوری کارهای روزانه.
- پردازش درخواستها در کسبوکارها: مثل ثبت سفارش، مدیریت بلیتهای پشتیبانی یا ارسال فاکتور.
- چتباتهای هوشمند: ارائه پاسخهای دقیقتر در گفتوگوهای پشتیبانی مشتریان.
۳. تحلیل و پردازش دادهها
مدلهای زبانی میتوانند از ابزارهای محاسباتی برای انجام تحلیلهای پیچیده و پردازش دادهها استفاده کنند.
✅ مثالها:
- محاسبات مالی: حل معادلات مالی و مدیریت بودجه.
- تحلیل دادههای پزشکی: پردازش اطلاعات سلامت و ارائه توصیههای پزشکی (با ابزارهای تأییدشده).
- تبدیل و تحلیل متن: خلاصهسازی مقالات، ترجمه متون یا تحلیل احساسات در دادههای متنی.
۴. کنترل دستگاهها و اینترنت اشیا (IoT)
فراخوانی ابزار به هوش مصنوعی اجازه میدهد که دستگاههای فیزیکی را کنترل کند. این قابلیت در خانههای هوشمند، صنایع و حتی حملونقل کاربرد دارد.
مثلا اگر در خانه هوشمند شما با گفتن «چراغ حمام خاموش شود»، هوش مصنوعی از این قابلیت استفاده میکند.
✅ مثالها:
- کنترل خانه هوشمند: تغییر دمای ترموستات، روشن/خاموش کردن چراغها یا تنظیم سیستم امنیتی.
- مدیریت ناوگان حملونقل: بررسی مسیرهای بهینه و وضعیت خودروها.
- پایش تجهیزات صنعتی: کنترل و نظارت بر دستگاههای کارخانهای و ارسال هشدار در صورت بروز مشکل.
۵. تعامل با سیستمهای پیشرفته و چندمرحلهای
برخی از وظایف نیاز به چندین مرحله پردازش دارند که مدلهای دارای فراخوانی ابزار میتوانند بهصورت خودکار انجام دهند.
✅ مثالها:
- جستجوی اطلاعات و پردازش آن: ابتدا دریافت دادههای خام، سپس تحلیل و ارائه نتیجه.
- ترکیب چند ابزار: دریافت اطلاعات از یک منبع و پردازش آن در ابزار دیگر. مثلاً دریافت وضعیت آبوهوا و سپس پیشنهاد لباس مناسب.
- پشتیبانی از دستیارهای چندوظیفهای: ترکیب وظایف مختلف در یک مکالمه، مثل رزرو رستوران و همزمان بررسی مسیر دسترسی.
فریمورکها و ابزارهای محبوب برای فراخوانی ابزار
چندین فریمورک و ابزار وجود دارند که به مدلهای هوش مصنوعی کمک میکنند تا به ابزارها و سرویسهای خارجی متصل شوند و عملکردهای پیچیدهتری انجام دهند. در اینجا تنها به برخی از محبوبترین ابزارها اشاره میکنیم:
LangChain
LangChain یک فریمورک محبوب برای اتصال مدلهای زبانی به ابزارهای خارجی است. این ابزار به توسعهدهندگان اجازه میدهد تا ابزارهای مختلف را مدیریت کنند و فرآیندهای چندمرحلهای را به راحتی اجرا کنند.
OpenAI API
OpenAI API ابزار قدرتمندی است که به مدلهای هوش مصنوعی این امکان را میدهد تا از خدمات مختلف مانند تولید متن، ترجمه یا جستجوی اطلاعات استفاده کنند. این API برای اتصال مدلها به سرویسهای مختلف بسیار مفید است.
Zapier
Zapier ابزاری برای اتوماسیون است که به شما امکان میدهد مدلهای هوش مصنوعی را به بیش از ۲,۰۰۰ اپلیکیشن متصل کنید و کارهای خودکار مثل ارسال ایمیل یا مدیریت وظایف را انجام دهید.
Twilio
این موارد تنها بخشی از فریمورکها برای Tool calling هستند و روز به روز بر تعداد آنها افزوده میشود.