← 返回列表

Обобщение на технологията 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. Хост кодът може да изпълни тези извиквания паралелно, след което да върне всички резултати на модела за обобщение, което повишава ефективността.

评论

暂无已展示的评论。

发表评论(匿名)