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

Получить ответ модели на сообщения

Обновлено 27 марта 2024
Скачать спецификацию
POST
/chat/completions

Возвращает ответ модели с учетом переданных сообщений.

Запрос

Body

    model
    string
    required

    Возможные значения: [GigaChat, GigaChat:latest, GigaChat-Plus, GigaChat-Pro]

    Название модели. Описание доступных моделей смотрите в разделе Модели GigaChat.

    messages object[]required

    Массив сообщений, которыми пользователь обменивался с моделью.

  • Array [
  • role
    string

    Возможные значения: [system, user, assistant, function]

    Роль автора сообщения:

    • system — системный промпт, который задает роль модели, например, должна модель отвечать как академик или как школьник;
    • assistant — ответ модели;
    • user — сообщение пользователя;
    • function — сообщение с результатом работы пользовательской функции. В сообщении с этой ролью передавайте в поле content валидный JSON-объект с результатами работы функции.

    Для сохранения контекста диалога с пользователем передайте несколько сообщений. Подробнее читайте в разделе Работа с историей чата.

    content

    Содержимое сообщения. Зависит от роли.

    Если поле передается в сообщении с ролью function, то в нем указывается валидный JSON-объект с аргументами функции, указанной в поле function_call.name.

    В остальных случаях содержит либо системный промпт (сообщение с ролью system), либо текст сообщения пользователя или модели.

    data_for_context object[]

    Массив сообщений, описывающих работу встроенных функций.

    Для сохранения контекста, обязательно передавайте массив в запросе на генерацию, в сообщении с ролью assistant.

  • Array [
  • ]
  • ]
  • function_call object

    Поле которе отвечает за то, как GigaChat будет работать с функциями. Может быть строкой или объектом.

    Возможные значения:

    • none — режим работы по умолчанию. Если запрос не содержит function_call или значение поля — none, GigaChat не вызовет функции, а просто сгенерирует ответ в соотвествии с полученными сообщениями;

    • auto — в зависимости от содержимого запроса, модель решает сгенерировать сообщение или вызвать функцию. Модель вызывает встроенные функции, если отсутствует массив functions с описанием пользовательских функций. Если запрос содержит "function_call": "auto" и массив functions с описанием пользовательских функций, модель будет генерировать аргументы для описанных функций и не сможет вызвать встроенные функции независимо от содержимого запроса;

    • {"name": "название_функции"} — принудительная генерация аргументов для указанной функции. Вы можете явно задать часть аргументов с помощью объекта partial_arguments. Остальные аргументы модель сгенерирует самостоятельно. При принудительной генерации, массив functions обязан содержать объект с описанием указанной функции. В противном случае вернется ошибка.

    oneOf
    name
    string

    Название функции.

    partial_arguments object

    JSON-объект в котором вы можете явно задать некоторые аргументы указанной функции. Остальные аргументы модель сгенерирует самостоятлеьно.

    functions object[]

    Массив с описанием пользовательских функций.

  • Array [
  • name
    string
    required

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

    description
    string

    Текстовое описание функции.

    parameters objectrequired

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

    few_shot_examples object[]

    Объекты с парами запрос_пользователя-параметры_функции, которые будут служить модели примерами ожидаемого результата.

  • Array [
  • request
    string
    required

    Запрос пользователя.

    params objectrequired

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

  • ]
  • return_parameters object

    JSON-объект с описанием параметров, которые может вернуть ваша функция.

  • ]
  • temperature
    float

    Температура выборки. Значение температуры должно быть не меньше ноля. Чем выше значение, тем более случайным будет ответ модели. При значениях температуры больше двух, набор токенов в ответе модели может отличаться избыточной случайностью.

    Значение по умолчанию зависит от выбранной модели (поле model) и может изменяться с обновлениями модели.

    top_p
    float

    Возможные значения: >= 0 и <= 1

    Параметр используется как альтернатива температуре (поле temperature). Задает вероятностную массу токенов, которые должна учитывать модель. Так, если передать значение 0.1, модель будет учитывать только токены, чья вероятностная масса входит в верхние 10%.

    Значение по умолчанию зависит от выбранной модели (поле model) и может изменяться с обновлениями модели. Значения изменяются в диапазоне от ноля до единицы включительно.

    Значение изменяется в диапазоне от 0 до 1.

    n
    int64

    Возможные значения: >= 1 и <= 4

    По умолчанию: 1

    Количество вариантов ответов, которые нужно сгенерировать для каждого входного сообщения.

    Количество вариантов может изменяться от одного до четырех. По умолчанию модель возвращает один вариант ответа.

    stream
    boolean

    По умолчанию: false

    Указывает, что сообщения надо передавать по частям в потоке.

    Сообщения передаются по протоколу SSE.

    Поток завершается событием data: [DONE].

    Подробнее читайте в разделе Потоковая передача токенов.

    max_tokens
    int64

    По умолчанию: 1024

    Максимальное количество токенов, которые будут использованы для создания ответов.

    repetition_penalty
    float

    Количество повторений слов:

    • Значение 1.0 — нейтральное значение.
    • При значении больше 1 модель будет стараться не повторять слова.

    Значение по умолчанию зависит от выбранной модели (поле model) и может изменяться с обновлениями модели.

    update_interval
    number

    Параметр потокового режима ("stream": "true"). Задает минимальный интервал в секундах, который проходит между отправкой токенов. Например, если указать 1, сообщения будут приходить каждую секунду, но размер каждого из них будет больше, так как за секунду накапливается много токенов.

Ответы

OK

Schema
    choices object[]

    Массив ответов модели.

  • Array [
  • message object

    Сгенерированное сообщение.

    role
    string

    Возможные значения: [assistant, function_in_progress]

    Роль автора сообщения.

    Роль function_in_progress используется при работе встроенных функций в режиме потоковой передачи токенов.

    content
    string

    Содержимое сообщения, например, результат генерации.

    В сообщениях с ролью function_in_progress содержит информацию о том, сколько времени осталось до завершения работы встроенной функции.

    data_for_context object[]

    Массив сообщений, описывающих работу встроенных функций.

    Для сохранения контекста, обязательно передавайте массив в запросе на генерацию, в сообщении с ролью assistant.

  • Array [
  • ]
  • index
    int32

    Индекс сообщения в массиве начиная с ноля.

    finish_reason
    string

    Возможные значения: [stop, length, function_call, blacklist]

    Причина завершения гипотезы. Возможные значения:

    • stop — модель закончила формировать гипотезу и вернула полный ответ;
    • length — достигнут лимит токенов в сообщении;
    • function_call — указывает что при запросе была вызвана встроенная функция или сгенерированы аргументы для пользовательской функции;
    • blacklist — запрос подпадает под тематические ограничения.
  • ]
  • created
    int64

    Дата и время создания ответа в формате Unix time.

    model
    string

    Возможные значения: [GigaChat, GigaChat:latest, GigaChat-Plus, GigaChat-Pro]

    Название модели. Описание доступных моделей смотрите в разделе Модели GigaChat.

    usage object

    Данные об использовании модели.

    prompt_tokens
    int32

    Количество токенов во входящем сообщении (роль user).

    completion_tokens
    int32

    Количество токенов, сгенерированных моделью (роль assistant).

    total_tokens
    int32

    Общее количество токенов.

    system_tokens
    int32

    Количество токенов в системном промпте (роль system).

    object
    string

    Название вызываемого метода.

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