Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Foundation Models
    • О сервисе Yandex Foundation Models
      • Обзор
      • Модели
      • Токены
      • Вызов функций
      • Режим рассуждений
    • Мультимодальные модели
    • Эмбеддинги
    • Датасеты
    • Дообучение
    • Квоты и лимиты
  • Yandex Cloud ML SDK
  • Совместимость с OpenAI
  • Управление доступом
  • Правила тарификации
  • Публичные материалы
  • История изменений

В этой статье:

  • Как вызывать функции в API генерации текста
  • Примеры использования
  1. Концепции
  2. Генерация текста
  3. Вызов функций

Вызов функций в генеративных моделях

Статья создана
Yandex Cloud
Обновлена 28 апреля 2025 г.
  • Как вызывать функции в API генерации текста
  • Примеры использования

Большинство приложений для работы с искусственным интеллектом взаимодействуют с человеком напрямую, но не могут обращаться к внешним базам данных, API и другим инструментам. Возможности моделей можно расширить с помощью вызова функций (Function Calling) — специального параметра, позволяющего описать доступные внешние инструменты и интерпретировать результаты их работы.

При вызове функции модель не генерирует текст самостоятельно, а только подставляет параметры для внешнего инструмента.

Например, у вас есть функция получения прогноза погоды, которую вы предлагаете модели использовать. Тогда при генерации ответа на запрос "Какая погода в Санкт-Петербурге?" модель сможет инициировать вызов этой функции, получить текущий прогноз погоды и сгенерировать ответ, используя полученное значение. Подробный пример см. в пошаговой инструкции.

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

Вызовы функций могут быть полезны во многих случаях, например:

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

Как вызывать функции в API генерации текста

При работе с моделями через API генерации текста вы можете описать все доступные модели функции в поле tools. Определение каждой функции в поле tools должно содержать название функции, описание ее назначения или поведения и список параметров, которые модель должна вернуть для корректного применения функции. Описание параметров передаются в виде JSON Schema:

request_body = {
    "messages": [
        { "role":"system", "text":"<текст_инструкции>" }, 
        { "role":"user", "text":"<текст_запроса>" },
    ],
    "tools": [ {
        "function": {
            "name": "weatherTool",
            "description": "Получает прогноз погоды в городе через API", # Старайтесь делать описание функции подробным
            "parameters": {
                "type": "object",
                "properties": {
                    "city": {
                        "type": "string", # Тип параметра
                        "description": "Название города, для которого нужно получить погоду." # Описание параметра
                    },
                    "units": {
                        "type": "string",
                        "enum": ["metric", "imperial"], # Список допустимых значений
                        "default": "metric", # Значение по умолчанию
                        "description": "Единицы измерения температуры. 'metric' для Цельсия, 'imperial' для Фаренгейта."
                    },
                    "days": {
                        "type": "integer",
                        "default": 1,
                        "minimum": 1, # Ограничения для параметров
                        "maximum": 5,
                        "description": "Количество дней, для которых нужно получить погоду, начиная с текущего дня."
                    },
                    "regions": {
                        "type": "array", # Массивы
                        "default": ["center"],
                        "maxItems": 3,
                        "description": "Части города, для которых нужно получить погоду. Например: 'center', 'west', 'west-east' и т.д."
                    },
                },
                
                "required": ["city"] # Список обязательных параметров, без которых функция не сможет работать
            }
        }
    } ] 
}

Вы также можете указать базовые типы данных, валидацию строк, чисел и массивов и другие параметры. Более подробное описание JSON Schema см. на официальном сайте.

Наличие поля tools в вызове функции не гарантирует, что модель обязательно вызовет какой-то из инструментов. Если исходя из контекста модель решит воспользоваться дополнительным инструментом, в ответ на запрос пользователя придет сообщение с полем ToolCallList, содержащим обращение к вызываемой функции и необходимые параметры в виде JSON Schema. Результат работы функции отправьте в сообщении в поле ToolResultList. После этого модель сгенерирует итоговый ответ, используя результаты вызова функции.

Если же модель, основываясь на контексте запроса, решит не использовать предложенные инструменты, итоговый ответ будет сгенерирован сразу.

Использовать вызов функций можно при работе с моделями YandexGPT Pro и Llama 70B1, а также при работе с этими моделями через API AI-ассистентов.

Примеры использования

Вызвать функцию из модели

Была ли статья полезна?

Предыдущая
Токены
Следующая
Режим рассуждений
Проект Яндекса
© 2025 ООО «Яндекс.Облако»