ym88659208ym87991671
Работа с функциями | Документация для разработчиков

Работа с функциями

Обновлено 4 августа 2025

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

Функции существенно расширяют возможности языковых моделей, давая им:

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

Общая схема работы с функциями.

Схема работы с функциями

Виды функций

Все модели GigaChat поддерживают встроенные и пользовательские функции.

Пользовательские функции — это функции, реализованные в вашем приложении или стороннем сервисе.

Модели GigaChat могут генерировать аргументы для таких функций на основе их описания, полученного в массиве functions, в запросе POST /chat/completions. Используйте полученные аргументы для вызова функции, а результаты ее работы возвращайте в модель в сообщении с ролью function.

Модели умеют генерировать аргументы автоматически, в зависимости от промпта, или принудительно. Подробнее — в разделе Режимы работы с функциями.

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

Запрос

curl --location 'https://gigachat.devices.sberbank.ru/api/v1/chat/completions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <токен_доступа>' \
--data '{
"model": "GigaChat-2-Pro",
"messages": [
{
"role": "user",
"content": "Погода в Манжероке на десять дней"
}
],
"functions": [
{
"name": "weather_forecast",
"description": "Возвращает температуру на заданный период",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "Местоположение, например, название города"
},
"format": {
"type": "string",
"enum": [
"celsius",
"fahrenheit"
],
"description": "Единицы измерения температуры"
},
"num_days": {
"type": "integer",
"description": "Период, для которого нужно вернуть"
}
},
"required": [
"location",
"num_days"
]
},
"return_parameters": {
"type": "object",
"properties": {
"status": {
"description": "Статус",
"enum": [
"success",
"fail"
],
"type": "string"
},
"location": {
"type": "string",
"description": "Местоположение, например, название города"
},
"temperature": {
"type": "integer",
"description": "Температура для заданного местоположения"
},
"forecast": {
"type": "array",
"items": {
"type": "string"
},
"description": "Описание погодных условий"
},
"error": {
"type": "string",
"description": "Возвращается при возникновении ошибки. Содержит описание ошибки"
}
}
}
}
]
}'

Ответ

{
"choices": [
{
"message": {
"content": "",
"role": "assistant",
"function_call": {
"name": "weather_forecast",
"arguments": {
"format": "celsius",
"location": "Манжерок",
"num_days": 10
}
},
"functions_state_id": "9b26f2cd-5efc-4005-a156-6914bdb89ad6"
},
"index": 0,
"finish_reason": "function_call"
}
],
"created": 1748505280,
"model": "GigaChat-2-Pro:2.0.28.2",
"object": "chat.completion",
"usage": {
"prompt_tokens": 127,
"completion_tokens": 46,
"total_tokens": 173,
"precached_prompt_tokens": 0
}
}

Подробнее о работе с пользовательскими функциями — в разделе Генерация аргументов.

ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей. Вы можете запретить сохранение cookie в настройках своего браузера.