Підсумок технології Function Calling
Підсумок технології Function Calling
1. Визначення
Function Calling — це механізм, який дозволяє розробникам описувати доступні зовнішні інструменти (наприклад, API) великій мовній моделі (LLM) за допомогою JSON-схеми. Коли модель вирішує, що для відповіді на запитання користувача потрібно викликати інструмент, вона виводить структуровані дані tool_calls у форматі JSON, вказуючи назву функції та параметри. Хост-програма аналізує та виконує цей виклик, повертає результат моделі, а модель генерує остаточну відповідь.
2. Основний принцип та вирішувані проблеми
- Сутність: Замкнений цикл "два раунди діалогу + проміжне виконання". У першому раунді модель приймає рішення та виводить запит на виклик інструменту; проміжний код виконує інструмент; у другому раунді модель на основі результату виконання генерує остаточну відповідь.
- Вирішувані проблеми: Вирішує проблему нестабільного та схильного до помилок аналізу природної мови (if/else), яка раніше використовувалася для виклику інструментів моделлю, забезпечуючи стандартизацію та підвищення точності завдяки структурованому виведенню.
3. Розподіл обов'язків (аналогія з делегуванням завдань)
- Розробник (HR): Визначає інструменти, створює JSON-схему з описом функціональності, параметрів тощо.
- Модель LLM (менеджер): Розуміє опис інструменту, приймає рішення про необхідність виклику, який саме інструмент викликати та з якими параметрами, і виводить структурований запит на виклик (
tool_calls). Модель лише приймає рішення та генерує текст, але не виконує код. - Виконавець/хост-код (співробітник): Аналізує запит
tool_callsмоделі, фактично виконує відповідну функцію або виклик API та повертає результат.
4. Визначення інструменту (JSON-схема)
Схема — це "інструкція" для інструменту, ключова інформація включає:
- name: Унікальний ідентифікатор інструменту.
- description: Надзвичайно важливо, модель повністю покладається на цей опис, щоб вирішити, чи викликати інструмент. Чим чіткіший і точніший опис, тим точніше рішення моделі.
- parameters: Визначає необхідні параметри інструменту, їх типи, описи, обмеження (наприклад, значення переліку, обов'язковість тощо).
5. Повний процес виклику
Стаття на прикладі коду для запиту погоди демонструє весь процес: від запитання користувача, першого виклику моделі з визначенням інструменту, повернення моделлю tool_calls, виконання функції кодом, вставки результату в історію діалогу з role: "tool", до остаточного формування моделлю відповіді природною мовою.
6. Розширені можливості - паралельний виклик інструментів
Коли запитання користувача потребує спільної роботи кількох інструментів (наприклад, одночасний запит погоди в кількох містах), модель може в одній відповіді вивести список з кількох tool_calls. Хост-код може виконувати ці виклики паралельно, а потім повернути всі результати моделі для узагальнення, що підвищує ефективність.
评论
暂无已展示的评论。
发表评论(匿名)