← 返回列表

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

评论

暂无已展示的评论。

发表评论(匿名)