Получить ответ модели на сообщения
/chat/completions
Возвращает ответ модели с учетом переданных сообщений.
Запрос
- application/json
Body
- Array [
system
— системный промпт, который задает роль модели, например, должна модель отвечать как академик или как школьник;assistant
— ответ модели;user
— сообщение пользователя;function
— сообщение с результатом работы пользовательской функции. В сообщении с этой ролью передавайте в полеcontent
валидный JSON-объект с результатами работы функции.- Array [
- ]
- ]
none
— режим работы по умолчанию. Если запрос не содержитfunction_call
или значение поля —none
, GigaChat не вызовет функции, а просто сгенерирует ответ в соотвествии с полученными сообщениями;auto
— в зависимости от содержимого запроса, модель решает сгенерировать сообщение или вызвать функцию. Модель вызывает встроенные функции, если отсутствует массивfunctions
с описанием пользовательских функций. Если запрос содержит"function_call": "auto"
и массивfunctions
с описанием пользовательских функций, модель будет генерировать аргументы для описанных функций и не сможет вызвать встроенные функции независимо от содержимого запроса;{"name": "название_функции"}
— принудительная генерация аргументов для указанной функции. Вы можете явно задать часть аргументов с помощью объектаpartial_arguments
. Остальные аргументы модель сгенерирует самостоятельно. При принудительной генерации, массивfunctions
обязан содержать объект с описанием указанной функции. В противном случае вернется ошибка.- function_call_custom_function
- function_call_none_auto
- string
Possible values: [
auto
,none
]Режим работы с функциями
- Array [
- Array [
- ]
- ]
- Значение 1.0 — нейтральное значение.
- При значении больше 1 модель будет стараться не повторять слова.
Возможные значения: [GigaChat
, GigaChat:latest
, GigaChat-Plus
, GigaChat-Pro
]
Название модели. Описание доступных моделей смотрите в разделе Модели GigaChat.
messages object[]required
Массив сообщений, которыми пользователь обменивался с моделью.
Возможные значения: [system
, user
, assistant
, function
]
Роль автора сообщения:
Для сохранения контекста диалога с пользователем передайте несколько сообщений. Подробнее читайте в разделе Работа с историей чата.
Содержимое сообщения. Зависит от роли.
Если поле передается в сообщении с ролью function
, то в нем указывается валидный JSON-объект с аргументами функции, указанной в поле function_call.name
.
В остальных случаях содержит либо системный промпт (сообщение с ролью system
), либо текст сообщения пользователя или модели.
data_for_context object[]
Массив сообщений, описывающих работу встроенных функций.
Для сохранения контекста, обязательно передавайте массив в запросе на генерацию, в сообщении с ролью assistant
.
function_call object
Поле которе отвечает за то, как GigaChat будет работать с функциями. Может быть строкой или объектом.
Возможные значения:
Название функции.
partial_arguments object
JSON-объект в котором вы можете явно задать некоторые аргументы указанной функции. Остальные аргументы модель сгенерирует самостоятлеьно.
functions object[]
Массив с описанием пользовательских функций.
Название пользовательской функции, для которой будут сгенерированы аргументы.
Текстовое описание функции.
parameters objectrequired
Валидный JSON-объект с набором пар ключ-значение, которые описывают аргументы функции.
few_shot_examples object[]
Объекты с парами запрос_пользователя
-параметры_функции
, которые будут служить модели примерами ожидаемого результата.
Запрос пользователя.
params objectrequired
Пример заполнения параметров пользовательской функции.
return_parameters object
JSON-объект с описанием параметров, которые может вернуть ваша функция.
Температура выборки. Значение температуры должно быть не меньше ноля. Чем выше значение, тем более случайным будет ответ модели. При значениях температуры больше двух, набор токенов в ответе модели может отличаться избыточной случайностью.
Значение по умолчанию зависит от выбранной модели (поле model
) и может изменяться с обновлениями модели.
Возможные значения: >= 0
и <= 1
Параметр используется как альтернатива температуре (поле temperature
). Задает вероятностную массу токенов, которые должна учитывать модель.
Так, если передать значение 0.1, модель будет учитывать только токены, чья вероятностная масса входит в верхние 10%.
Значение по умолчанию зависит от выбранной модели (поле model
) и может изменяться с обновлениями модели. Значения изменяются в диапазоне от ноля до единицы включительно.
Значение изменяется в диапазоне от 0 до 1.
Возможные значения: >= 1
и <= 4
По умолчанию: 1
Количество вариантов ответов, которые нужно сгенерировать для каждого входного сообщения.
Количество вариантов может изменяться от одного до четырех. По умолчанию модель возвращает один вариант ответа.
По умолчанию: false
Указывает, что сообщения надо передавать по частям в потоке.
Сообщения передаются по протоколу SSE.
Поток завершается событием data: [DONE]
.
Подробнее читайте в разделе Потоковая передача токенов.
По умолчанию: 1024
Максимальное количество токенов, которые будут использованы для создания ответов.
Количество повторений слов:
Значение по умолчанию зависит от выбранной модели (поле model
) и может изменяться с обновлениями модели.
Параметр потокового режима ("stream": "true"
).
Задает минимальный интервал в секундах, который проходит между отправкой токенов.
Например, если указать 1
, сообщения будут приходить каждую секунду, но размер каждого из них будет больше, так как за секунду накапливается много токенов.
OK
- application/json
- Схема
- Пример из схемы
Schema
- Array [
- Array [
- ]
stop
— модель закончила формировать гипотезу и вернула полный ответ;length
— достигнут лимит токенов в сообщении;function_call
— указывает что при запросе была вызвана встроенная функция или сгенерированы аргументы для пользовательской функции;blacklist
— запрос подпадает под тематические ограничения.- ]
choices object[]
Массив ответов модели.
message object
Сгенерированное сообщение.
Возможные значения: [assistant
, function_in_progress
]
Роль автора сообщения.
Роль function_in_progress
используется при работе встроенных функций в режиме потоковой передачи токенов.
Содержимое сообщения, например, результат генерации.
В сообщениях с ролью function_in_progress
содержит информацию о том, сколько времени осталось до завершения работы встроенной функции.
data_for_context object[]
Массив сообщений, описывающих работу встроенных функций.
Для сохранения контекста, обязательно передавайте массив в запросе на генерацию, в сообщении с ролью assistant
.
Индекс сообщения в массиве начиная с ноля.
Возможные значения: [stop
, length
, function_call
, blacklist
]
Причина завершения гипотезы. Возможные значения:
Дата и время создания ответа в формате Unix time.
Возможные значения: [GigaChat
, GigaChat:latest
, GigaChat-Plus
, GigaChat-Pro
]
Название модели. Описание доступных моделей смотрите в разделе Модели GigaChat.
usage object
Данные об использовании модели.
Количество токенов во входящем сообщении (роль user
).
Количество токенов, сгенерированных моделью (роль assistant
).
Общее количество токенов.
Количество токенов в системном промпте (роль system
).
Название вызываемого метода.
{
"choices": [
{
"message": {
"role": "assistant",
"content": "Здравствуйте! К сожалению, я не могу дать точный ответ на этот вопрос, так как это зависит от многих факторов. Однако обычно релиз новых функций и обновлений в GigaChat происходит постепенно и незаметно для пользователей. Рекомендую следить за новостями и обновлениями проекта в официальном сообществе GigaChat или на сайте разработчиков.",
"data_for_context": [
{}
]
},
"index": 0,
"finish_reason": "stop"
}
],
"created": 1678878333,
"model": "GigaChat",
"usage": {
"prompt_tokens": 18,
"completion_tokens": 68,
"total_tokens": 86,
"system_tokens": 86
},
"object": "chat.completion"
}
Bad request format
Unauthorized
No such Model
Validation error
Too many requests
Internal Server Error