Что такое вызов функций?

Вызов функций — это возможность больших языковых моделей запрашивать выполнение внешнего кода или инструментов, формируя структурированные аргументы вместо генерации произвольного текста. Он связывает запросы на естественном языке с детерминированным ПО, позволяя LLM надёжно взаимодействовать с базами данных, API и другими сервисами

Вызов функций — это возможность больших языковых моделей запрашивать выполнение внешнего кода или инструментов, формируя структурированные аргументы вместо генерации свободного текста. Он связывает запросы на естественном языке с детерминированным ПО, позволяя LLM надёжно взаимодействовать с базами данных, API и другими сервисами. Модель сама решает, когда требуется функция, и формирует машиночитаемый пакет данных, а вызывающее приложение отвечает за фактическое выполнение функции и передачу результата обратно модели.

Как работает вызов функций

Разработчики регистрируют в модели набор определений функций — как правило, в виде JSON-схем, описывающих имя, назначение и параметры каждой функции. Когда пользователь отправляет запрос вроде «Какая погода в Токио?», модель не отвечает напрямую. Вместо этого она возвращает структурированный объект — например, {"name": "get_weather", "arguments": {"city": "Tokyo"}}. Основное приложение разбирает этот объект, выполняет реальную функцию (часто обращаясь к стороннему API) и добавляет результат в разговор как новое сообщение. Затем LLM превращает этот результат в естественно-языковой ответ для пользователя.

Большинство провайдеров реализуют этот же сценарий через свои API чат-дополнений. Модель сама никогда не выполняет код; вызов функций — это, по сути, дисциплинированный способ заставить языковую модель «говорить на JSON», чтобы детерминированное ПО могло безопасно с этим работать.

Почему это важно

LLM хорошо справляются с языком и рассуждениями, но плохо — с арифметикой, данными в реальном времени и побочными эффектами. Вызов функций превращает чат-модель в слой рассуждений агентной системы: модель планирует, инструменты исполняют. Этот шаблон лежит в основе ИИ-ассистентов, способных бронировать встречи в календаре, обращаться к CRM, выполнять SQL-запросы, вызывать внутренние микросервисы или инициировать действия роботов — и при этом разработчик сохраняет полный контроль над тем, какой код фактически запускается. Кроме того, это резко снижает уровень галлюцинаций при фактологических запросах, поскольку ответы опираются на реальные результаты работы инструментов, а не на параметрическую память модели.

Ключевые шаблоны вызова функций

  • Однократное использование инструмента: модель вызывает одну функцию за ход — например, калькулятор или веб-поиск.
  • Параллельные вызовы: модель запрашивает несколько независимых функций в одном ответе — удобно для одновременного получения данных из разных источников.
  • Многошаговые / агентные циклы: приложение в цикле передаёт модели результаты работы инструментов, пока она не решит, что дальнейшие вызовы не нужны, что позволяет выстраивать цепочки действий.
  • Ограниченная декодировка: методы, которые заставляют модель формировать выход по токенам в строгом соответствии с JSON-схемой, повышая надёжность для строгих API.

Сегодня вызов функций — это стандартная возможность у ведущих поставщиков моделей, и именно на ней построено большинство современных ИИ-агентов, копилотов и пайплайнов извлечения данных.

Вам также может понравиться

Похожие статьи