> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jiekou.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Создать запрос чат-диалога

Генерирует ответ модели на основе указанного чат-диалога

## Заголовки запроса

<ParamField header="Content-Type" type="string" required={true}>
  Значения перечисления: `application/json`
</ParamField>

<ParamField header="Authorization" type="string" required={true}>
  Формат аутентификации Bearer: Bearer \{\{API 秘钥}}.
</ParamField>

## Тело запроса

<ParamField body="model" type="string" required={true}>
  Имя модели, которую нужно использовать.
</ParamField>

<ParamField body="messages" type="object[]" required={true}>
  Список сообщений, составляющих текущий диалог.

  <Expandable title="Свойства" defaultOpen={false}>
    <ParamField body="content" type="string | object[] | null" required={true}>
      Содержимое сообщения. Для всех сообщений требуется content; для сообщений assistant, содержащих вызовы функций, content может быть null.

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

      <Frame>
        <div class="param_frame">
          <Tabs>
            <Tab title="Текстовое содержимое">
              <p class="param_text">Вариант 1:</p>
              <p class="param_text">Вы можете использовать строковый тип для представления текстового содержимого сообщения.</p>

              <br />

              <p class="param_text">Вариант 2:</p>
              <p class="param_text">Используйте массив частей содержимого, object\[]. Подробные поля:</p>

              <ParamField body="type" type="string" required={true}>
                Тип части содержимого, в данном случае `text`.
              </ParamField>

              <ParamField body="text" type="string" required={true}>
                Текстовое содержимое.
              </ParamField>
            </Tab>

            <Tab title="Содержимое изображения">
              <p class="param_text">Можно использовать только с визуально-языковыми моделями.</p>
              <p class="param_text">Массив частей содержимого, object\[]. Подробные поля:</p>

              <ParamField body="type" type="string" required={true}>
                Тип части содержимого, в данном случае `image_url`.
              </ParamField>

              <ParamField body="image_url" type="string" required={true}>
                <Expandable title="Свойства" defaultOpen={true}>
                  <ParamField body="url" type="string" required={true}>
                    URL изображения или данные изображения в кодировке base64 (модели серии claude поддерживают только данные изображения в кодировке base64).
                  </ParamField>
                </Expandable>
              </ParamField>
            </Tab>

            <Tab title="Видеосодержимое">
              <p class="param_text">Можно использовать только с моделями, поддерживающими видео.</p>
              <p class="param_text">Массив частей содержимого, object\[]. Подробные поля:</p>

              <ParamField body="type" type="string" required={true}>
                Тип части содержимого, в данном случае `video_url`.
              </ParamField>

              <ParamField body="video_url" type="string" required={true}>
                <Expandable title="Свойства" defaultOpen={true}>
                  <ParamField body="url" type="string" required={true}>
                    URL видео.
                  </ParamField>
                </Expandable>
              </ParamField>
            </Tab>
          </Tabs>
        </div>
      </Frame>
    </ParamField>

    <ParamField body="role" type="string" required={true}>
      Роль автора сообщения. Может быть system, user или assistant.

      Значения перечисления: `system`, `user`, `assistant`
    </ParamField>

    <ParamField body="name" type="string">
      Имя автора этого сообщения. Может содержать a-z, A-Z, 0-9 и подчеркивания; максимальная длина — 64 символа.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="max_tokens" type="integer" required={true}>
  Максимальное количество tokens, генерируемых в завершении.

  Если сумма tokens вашего запроса (предыдущих сообщений) и max\_tokens превышает длину контекста модели, поведение зависит от context\_length\_exceeded\_behavior. По умолчанию max\_tokens будет уменьшено, чтобы уместиться в контекстное окно, вместо возврата ошибки.
</ParamField>

<ParamField body="stream" type="boolean | null" default={false}>
  Возвращать ли частичный прогресс потоково. Если включено, tokens будут отправляться как server-sent events (SSE), предназначенные только для данных, по мере их доступности, а поток завершится сообщением `data: [DONE]`.
</ParamField>

<ParamField body="stream_options" type="object | null">
  Опции потокового ответа. Устанавливайте это только когда stream имеет значение true.

  <Expandable title="Свойства" defaultOpen={false}>
    <ParamField body="include_usage" type="boolean">
      Если установлено, перед сообщением data: \[DONE] будет потоково передан дополнительный chunk. Поле usage в этом chunk показывает статистику использования tokens для всего запроса, а поле choices всегда является пустым массивом. Все остальные chunk также будут содержать поле usage, но со значением null.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="n" type="integer | null" default={1}>
  Количество завершений, генерируемых для каждого промпта.

  Примечание: поскольку этот параметр генерирует множество завершений, он может быстро расходовать вашу квоту tokens. Используйте с осторожностью и убедитесь, что у вас заданы разумные значения для max\_tokens и stop.

  Требуемый диапазон: `1 < x < 128`
</ParamField>

<ParamField body="seed" type="integer | null">
  Если указано, наша система приложит все усилия для детерминированной выборки, чтобы повторные запросы с тем же seed и параметрами возвращали одинаковый результат.
</ParamField>

<ParamField body="frequency_penalty" type="number | null" default={0}>
  Положительные значения штрафуют новые tokens в зависимости от их текущей частоты в тексте, снижая вероятность того, что модель будет дословно повторять одни и те же строки.

  Если цель — лишь немного уменьшить повторяющиеся образцы, разумные значения находятся в диапазоне от 0.1 до 1. Если цель — сильно подавить повторения, коэффициент можно увеличить до 2, но это может существенно снизить качество образцов. Отрицательные значения можно использовать для увеличения вероятности повторения.

  См. также presence\_penalty, который штрафует tokens, появившиеся хотя бы один раз, с фиксированной скоростью.

  Требуемый диапазон: `-2 < x < 2`
</ParamField>

<ParamField body="presence_penalty" type="number | null" default={0}>
  Положительные значения штрафуют новые tokens в зависимости от того, появляются ли они в тексте, повышая вероятность того, что модель будет говорить на новые темы.

  Если цель — лишь немного уменьшить повторяющиеся образцы, разумные значения находятся в диапазоне от 0.1 до 1. Если цель — сильно подавить повторения, коэффициент можно увеличить до 2, но это может существенно снизить качество образцов. Отрицательные значения можно использовать для увеличения вероятности повторения.

  См. также `frequency_penalty`, который штрафует tokens с возрастающей скоростью в зависимости от частоты их появления.

  Требуемый диапазон: `-2 < x < 2`
</ParamField>

<ParamField body="repetition_penalty" type="number | null">
  Применяет штраф к повторяющимся tokens, чтобы препятствовать или способствовать повторению. Значение 1.0 означает отсутствие штрафа и позволяет свободные повторения. Значения выше 1.0 штрафуют повторения, снижая вероятность повторяющихся tokens. Значения между 0.0 и 1.0 поощряют повторения, увеличивая вероятность повторяющихся tokens. Для хорошего баланса обычно рекомендуется значение 1.2. Обратите внимание, что штраф применяется к сгенерированному выводу и к промпту в моделях только с декодером.

  Требуемый диапазон: `0 < x < 2`
</ParamField>

<ParamField body="stop" type="string | null">
  До 4 последовательностей, при которых API прекратит генерацию дальнейших tokens. Возвращаемый текст будет содержать стоп-последовательность.
</ParamField>

<ParamField body="temperature" type="number | null" default={1}>
  Используемая температура выборки, от 0 до 2. Более высокие значения, например 0.8, делают вывод более случайным, а более низкие значения, например 0.2, делают его более сфокусированным и детерминированным.

  Обычно мы рекомендуем изменять либо этот параметр, либо `top_p`, но не оба одновременно.

  Требуемый диапазон: `0 < x < 2`
</ParamField>

<ParamField body="top_p" type="number | null">
  Альтернативный температуре выборки метод, называемый nucleus sampling, при котором модель учитывает результаты tokens с вероятностной массой top\_p. Поэтому 0.1 означает, что учитываются только tokens, составляющие верхние 10% вероятностной массы. Обычно мы рекомендуем изменять либо этот параметр, либо температуру, но не оба одновременно.

  Требуемый диапазон: `0 < x <= 1`
</ParamField>

<ParamField body="top_k" type="integer | null">
  Top-k sampling — это еще один метод выборки, при котором фильтруются k наиболее вероятных следующих tokens, а вероятностная масса перераспределяется только между этими k следующими tokens. Значение k управляет количеством кандидатов на следующий tokens на каждом шаге генерации текста.

  Требуемый диапазон: `1 < x < 128`
</ParamField>

<ParamField body="min_p" type="number | null">
  Представляет минимальную вероятность, при которой tokens рассматриваются, относительно вероятности наиболее вероятного tokens.

  Требуемый диапазон: `0 <= x <= 1`
</ParamField>

<ParamField body="logit_bias" type="map[string, integer] | null" required={false}>
  Изменяет вероятность появления указанных tokens в завершении.

  Принимает JSON-объект, сопоставляющий tokens со связанными значениями смещения от -100 до 100.
  Математически смещение добавляется к logits, сгенерированным моделью перед выборкой. Точный эффект зависит от модели.

  Например, установка `"logit_bias":{"1024": 6}` увеличит вероятность tokens с token ID 1024.
</ParamField>

<ParamField body="logprobs" type="boolean | null" default={false}>
  Возвращать ли логарифмические вероятности выходных tokens. Если true, возвращаются логарифмические вероятности каждого выходного tokens в содержимом сообщения.
</ParamField>

<ParamField body="top_logprobs" type="integer | null">
  Целое число от 0 до 20, указывающее количество наиболее вероятных tokens, возвращаемых в каждой позиции tokens, каждый с соответствующей логарифмической вероятностью. Если используется этот параметр, `logprobs` должен быть установлен в true.

  Требуемый диапазон: `0 <= x <= 20`
</ParamField>

<ParamField body="tools" type="object[] | null">
  Список инструментов, которые модель может вызывать. В настоящее время в качестве инструментов поддерживаются только функции. Используйте этот параметр, чтобы предоставить список функций, для которых модель может сгенерировать JSON-ввод.

  Подробнее о вызове функций см. в [руководстве по вызову функций](/ru/docs/model/llm-function-calling).

  <Expandable title="Свойства" defaultOpen={false}>
    <ParamField body="type" type="string" required={true}>
      Тип инструмента.

      Поддерживаемые типы: `function`
    </ParamField>

    <ParamField body="function" type="object" required={true}>
      <Expandable title="Свойства" defaultOpen={false}>
        <ParamField body="name" type="string" required={true}>
          Имя функции, которую нужно вызвать. Должно содержать a-z, A-Z, 0-9 либо подчеркивания и дефисы; максимальная длина — 64.
        </ParamField>

        <ParamField body="description" type="string | null">
          Описание функции, которое модель использует для выбора, когда и как вызывать функцию.
        </ParamField>

        <ParamField body="parameters" type="object | null">
          Параметры, принимаемые функцией, описанные как объект JSON Schema. Документацию по формату см. в [справочнике JSON Schema](https://json-schema.org/understanding-json-schema/).
        </ParamField>

        <ParamField body="strict" type="boolean" default={false}>
          Включать ли строгое следование схеме при генерации вызова функции. Если установлено true, модель будет следовать точной схеме, определенной в поле parameters.
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="response_format" type="object | null">
  Позволяет принудительно заставить модель генерировать определенный формат вывода.

  Установка `{ "type": "json_schema", "json_schema": {...} }` включает структурированный вывод и гарантирует, что модель будет соответствовать предоставленной вами JSON schema.

  Установка `{ "type": "json_object" }` включает старый режим JSON и гарантирует, что сообщения, сгенерированные моделью, будут валидным JSON. Для моделей, которые это поддерживают, рекомендуется использовать `json_schema`.

  <Expandable title="Свойства" defaultOpen={false}>
    <ParamField body="type" type="string" required={true} default="text">
      Значения перечисления: `text`, `json_object`, `json_schema`
    </ParamField>

    <ParamField body="json_schema" type="object | null">
      Формат ответа JSON Schema. Используется для генерации структурированного JSON-ответа.

      Поддерживается только когда `type` установлен в `json_schema`, и также является обязательным, когда `type` установлен в `json_schema`.

      Подробнее см. в [руководстве по структурированному выводу](/ru/docs/model/llm-structured-outputs).

      <Expandable title="Свойства" defaultOpen={false}>
        <ParamField body="name" type="string" required={true}>
          Имя формата ответа. Должно содержать a-z, A-Z, 0-9 либо подчеркивания и дефисы; максимальная длина — 64.
        </ParamField>

        <ParamField body="description" type="string | null">
          Описание формата ответа, которое модель использует, чтобы определить, как отвечать в этом формате.
        </ParamField>

        <ParamField body="schema" type="object | null">
          Схема формата ответа, описанная как объект JSON Schema. Узнайте, как создавать JSON schema, [здесь](https://json-schema.org/specification).

          Поддерживаемые типы: `string`, `number`, `integer`, `boolean`, `array`, `object`, `enum`, `anyOf`.
        </ParamField>

        <ParamField body="strict" type="boolean" default={false}>
          Включать ли строгое следование схеме при генерации вывода. Если установлено true, модель всегда будет следовать точной схеме, определенной в поле schema. Когда strict равен true, поддерживается только подмножество JSON Schema.

          Если вы включите структурированный вывод, указав `strict: true`, и вызовете API с неподдерживаемой JSON Schema, вы получите ошибку.
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="separate_reasoning" type="boolean | null" default={false}>
  Отделять ли рассуждения от "content" в поле "reasoning\_content".

  Поддерживаемые модели:

  * `deepseek/deepseek-r1-turbo`
</ParamField>

<ParamField body="enable_thinking" type="boolean | null" default={true}>
  Управляет переключением между режимом мышления и режимом без мышления.

  Поддерживаемые модели:

  * `zai-org/glm-4.5`
</ParamField>

## Информация об ответе

<ResponseField name="choices" type="object[]" required={true}>
  Список вариантов завершения чата.

  <Expandable title="Свойства" defaultOpen={false}>
    <ResponseField name="finish_reason" type="string" required={true}>
      Причина, по которой модель прекратила генерацию tokens. "stop", если модель достигла естественной точки остановки или предоставленной стоп-последовательности; "length", если достигнуто максимальное количество tokens, указанное в запросе.

      Доступные варианты: `stop`, `length`
    </ResponseField>

    <ResponseField name="index" type="integer" required={true}>
      Индекс варианта завершения чата.
    </ResponseField>

    <ResponseField name="message" type="object" required={true}>
      <Expandable title="Свойства" defaultOpen={false}>
        <ResponseField name="role" type="string" required={true}>
          Роль автора этого сообщения.

          Доступные варианты: `system`, `user`, `assistant`
        </ResponseField>

        <ResponseField name="content" type="string | null">
          Содержимое сообщения.
        </ResponseField>

        <ResponseField name="reasoning_content" type="string | null">
          Содержимое шагов рассуждения.

          <Warning>
            Это поле доступно только когда `separate_reasoning` установлено в true.
          </Warning>
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="created" type="integer" required={true}>
  Unix-время генерации ответа (в секундах).
</ResponseField>

<ResponseField name="id" type="string" required={true}>
  Уникальный идентификатор ответа.
</ResponseField>

<ResponseField name="model" type="string" required={true}>
  Модель, использованная для завершения чата.
</ResponseField>

<ResponseField name="object" type="string" required={true}>
  Тип объекта, всегда `chat.completion`.
</ResponseField>

<ResponseField name="usage" type="object">
  Статистика использования.

  Для потоковых ответов поле usage содержится в последнем возвращаемом блоке ответа.

  <Expandable title="Свойства" defaultOpen={false}>
    <ResponseField name="completion_tokens" type="integer" required={true}>
      Количество tokens в сгенерированном завершении.
    </ResponseField>

    <ResponseField name="prompt_tokens" type="integer" required={true}>
      Количество tokens в промпте.
    </ResponseField>

    <ResponseField name="total_tokens" type="integer" required={true}>
      Общее количество tokens, использованных в запросе (промпт + завершение).
    </ResponseField>
  </Expandable>
</ResponseField>
