Обобщение на технологията Function Calling
Обобщение на технологията Function Calling
1. Определение
Function Calling е механизъм, който позволява на разработчиците да опишат налични външни инструменти (като API) на голям езиков модел (LLM) чрез JSON схема. Когато моделът прецени, че е необходимо да извика инструмент, за да отговори на потребителския въпрос, той извежда структурирани JSON данни tool_calls, указващи името на функцията и параметрите. Хост програмата анализира и изпълнява това извикване, връща резултата на модела, а моделът генерира окончателния отговор.
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. Хост кодът може да изпълни тези извиквания паралелно, след което да върне всички резултати на модела за обобщение, което повишава ефективността.
评论
暂无已展示的评论。
发表评论(匿名)