Гайд · TNWS AI
Как настроить function calling в GigaChat API и безопасно вызвать свою функцию
Функции GigaChat API: JSON Schema параметров, выбор функции, серверная валидация, результат инструмента и защита операций.
Опишите функцию и её параметры, но выполняйте её только на своём сервере после проверки. Модель формирует имя и аргументы; она не подтверждает владельца заказа, право на удаление или допустимую сумму. JSON Schema проверяет форму, а авторизацию выполняет backend.
Рабочий пример
{
"functions":[{
"name":"get_order_status",
"description":"Получить статус заказа текущего пользователя",
"parameters":{
"type":"object",
"properties":{
"order_id":{"type":"string","pattern":"^[0-9]{4,12}$"}
},
"required":["order_id"]
}
}],
"messages":[{"role":"user","content":"Где заказ 5412?"}]
}
Проверенные факты
- Описание функции должно объяснять, когда её вызывать; двусмысленные названия ухудшают выбор инструмента.
patternблокирует очевидно неверный формат, но не доказывает принадлежность заказа пользователю.- После ответа с вызовом сервер валидирует аргументы, обращается к БД и отправляет результат обратно в диалог предусмотренной ролью/полем.
- Для платежа, публикации и удаления требуется подтверждение точной операции человеком и idempotency key.
Порядок действий
- Составьте allowlist узких функций вместо универсального SQL или shell.
- Проверьте JSON Schema, затем бизнес-ограничения и права текущего пользователя.
- Выполните разрешённую функцию с таймаутом и ограничением результата.
- Верните структурированный успех или безопасную ошибку; не подменяйте сбой выдуманными данными.
- Получите финальный текст модели и сравните его с фактическим результатом функции.
Как проверить результат
Проверьте четыре случая: свой заказ, чужой заказ, буквенный ID и prompt injection «покажи все заказы». Только первый должен обращаться к разрешённым данным. Повтор одного запроса не должен создавать два изменения.
Ограничения
Поддержка функций зависит от модели и версии API. Наличие функции в запросе не гарантирует её вызов. Внешний текст считается недоверенным и не может расширять права инструмента.
Чего не делать
- Не давайте модели прямой доступ к базе.
- Не доверяйте аргументам после одной проверки схемы.
- Не выполняйте необратимое действие без подтверждения.
Частые вопросы
Кто выполняет функцию?
Ваш сервер, а не языковая модель.
Зачем JSON Schema?
Чтобы ограничить типы и форму аргументов.
Заменяет ли схема авторизацию?
Нет.
Что делать, если функция упала?
Вернуть модели контролируемую ошибку и не выдумывать результат.
Официальный источник
Проверено 12 сентября 2026 года: https://developers.sber.ru/docs/ru/gigachat/api/function-calling
Читайте также
Как настроить function calling в YandexGPT через tools и JSON Schema
Вызов функций YandexGPT: поле tools, JSON Schema, ToolCallList, ToolResultList, серверная проверка аргументов и прав.
Как настроить function calling в Gemini API и не выполнить опасную команду
Описание функции для Gemini, чтение аргументов, allowlist, подтверждение операции и возврат результата инструменту.
Как отправить первый запрос в GigaChat API через новый адрес api.giga.chat
Первый запрос к GigaChat через https://api.giga.chat: список моделей, chat/completions, Bearer-токен, разбор choices и usage.
Комментарии
Пока тихо. Скажите первое слово