> ## 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.

# Создание запроса диалога

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

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

<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}>
  Название соответствующей модели. Доступные названия моделей см. в библиотеке моделей: [JieKou AI](https://jiekou.vip/#model-library).
</ParamField>

<ParamField body="prompt" type="string" required={true}>
  Подсказка для генерации диалога (подсказка может быть строкой, массивом строк, массивом tokens или массивом массивов tokens).
</ParamField>

<ParamField body="max_tokens" type="integer" required={false}>
  Максимальное количество tokens, которое может быть сгенерировано при создании диалога.<br />Количество tokens в prompt плюс max\_tokens не должно превышать длину контекста модели.
</ParamField>

<ParamField body="stream" type="boolean | null">
  Использовать ли потоковую передачу. По умолчанию false; если включено, tokens будут отправляться как data-only server-sent events (SSE), а поток завершится сообщением data: \[DONE].
</ParamField>

<ParamField body="stream_options" type="object">
  Параметры потокового ответа. Задаются только когда stream установлено в true.

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

<ParamField body="n" type="integer | null">
  Сколько диалогов генерировать для каждой подсказки. Значение по умолчанию — 1.<br /><br />Примечание: поскольку этот параметр генерирует несколько диалогов, он может быстро расходовать ваш лимит оплаты tokens. Используйте его с осторожностью и убедитесь, что для max\_tokens и stop установлены разумные значения.<br />Требуемый диапазон: 1 \< x \< 128
</ParamField>

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

<ParamField body="frequency_penalty" type="number | null">
  Значение по умолчанию — 0. Положительные значения штрафуют новые tokens в зависимости от частоты их появления в текущем тексте, тем самым снижая вероятность того, что модель будет повторять одно и то же содержимое.<br /><br />Если цель — лишь немного уменьшить повторяющиеся сэмплы, разумные значения находятся примерно в диапазоне от 0.1 до 1. Если цель — сильно подавить повторения, коэффициент можно увеличить до 2, но это может заметно снизить качество сэмплов. Отрицательные значения можно использовать для увеличения вероятности повторения.<br /><br />См. также presence\_penalty, который штрафует tokens, появившиеся хотя бы один раз, с фиксированной скоростью<br />Требуемый диапазон: -2 \< x \< 2
</ParamField>

<ParamField body="presence_penalty" type="number | null">
  Значение по умолчанию — 0. Положительные значения штрафуют новые tokens в зависимости от того, появляются ли они в текущем тексте, тем самым повышая вероятность того, что модель будет говорить на новые темы.<br /><br />Если цель — немного уменьшить повторяющиеся сэмплы, разумные значения находятся примерно в диапазоне от 0.1 до 1. Если цель — сильно подавить повторения, коэффициент можно увеличить до 2, но это может значительно снизить качество сэмплов. Отрицательные значения можно использовать для увеличения вероятности повторения.<br /><br />См. также frequency\_penalty, который штрафует tokens с возрастающей скоростью в зависимости от частоты их появления<br />Требуемый диапазон: -2 \< x \< 2
</ParamField>

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

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

<ParamField body="temperature" type="number | null">
  Степень случайности в диалоге; значение по умолчанию — 1, диапазон от 0 до 2. Более высокие значения (например, 0.8) делают вывод более случайным, а более низкие значения (например, 0.2) делают вывод более сфокусированным и детерминированным.<br /><br />Обычно мы рекомендуем настраивать либо этот параметр, либо top\_p, но не оба одновременно.<br />Требуемый диапазон: 0 \< x \< 2
</ParamField>

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

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

<ParamField body="min_p" type="number | null">
  Число с плавающей точкой, обозначающее минимальную вероятность, при которой tokens рассматриваются, относительно вероятности наиболее вероятного tokens.<br />Требуемый диапазон: 0 ≤ x ≤ 1
</ParamField>

<ParamField body="logit_bias" type="map[string, integer]">
  По умолчанию null. Изменяет вероятность появления указанных tokens в диалоге. Принимает JSON-объект, сопоставляющий tokens с ассоциированным значением смещения от -100 до 100.
</ParamField>

<ParamField body="logprobs" type="integer | null">
  Возвращает логарифмические вероятности logprobs наиболее вероятных выходных token, а также вероятность выбранного token. Например, если logprobs задано равным 5, API вернет список логарифмических вероятностей 5 наиболее вероятных token на каждом шаге генерации.<br />Максимальное значение logprobs — 5.
</ParamField>

<ParamField body="best_of" type="integer">
  По умолчанию 1. Генерирует best\_of диалогов и обрабатывает их на стороне сервера, возвращая «лучший» (то есть тот, у которого наибольшая логарифмическая вероятность для каждого tokens). Результат нельзя передавать потоково.<br /><br />При использовании вместе с n параметр best\_of управляет количеством диалогов-кандидатов, а n задает, сколько диалогов вернуть. best\_of должен быть больше n.<br /><br />Примечание: поскольку этот параметр генерирует несколько диалогов, он может быстро расходовать ваш лимит оплаты tokens. Используйте его с осторожностью и убедитесь, что для max\_tokens и stop установлены разумные значения.
</ParamField>

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

<ResponseField name="choices" type="object[]" required={true}>
  Список сгенерированных вариантов диалога.

  <Expandable title="properties" defaultOpen={true}>
    <ResponseField name="finish_reason" type="string" required={true}>
      Причина, по которой модель прекратила генерацию tokens. Если модель достигла естественной точки остановки или предоставленной стоп-последовательности, значение будет ‘stop’; если достигнуто максимальное количество tokens, указанное в запросе, значение будет ‘length’. Перечисляемые значения: `stop,length`.
    </ResponseField>

    <ResponseField name="index" type="integer" required={true}>
      Индекс варианта диалога.
    </ResponseField>

    <ResponseField name="logprobs" type="object" required={true}>
      Логарифмические вероятности наиболее вероятных tokens.

      <Expandable title="properties" defaultOpen={true}>
        <ResponseField name="text_offset" type="integer[]">
          Массив целых чисел смещения текста.
        </ResponseField>

        <ResponseField name="token_logprobs" type="number[]">
          Массив чисел логарифмических вероятностей token.
        </ResponseField>

        <ResponseField name="tokens" type="string[]">
          Массив строк tokens.
        </ResponseField>

        <ResponseField name="top_logprobs" type="object[]">
          Массив объектов, содержащих top логарифмические вероятности.

          <Expandable title="properties">
            <ResponseField name="{key}" type="integer" required={true}>
              Значение логарифмической вероятности для заданного ключа.
            </ResponseField>
          </Expandable>
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="text" type="string" required={true}>
      Содержимое, возвращенное диалогом.
    </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}>
  Тип объекта, всегда text\_completion.
</ResponseField>

<ResponseField name="usage" type="object" required={true}>
  Статистика использования.<br />Для потоковых ответов поле usage включается в последний возвращаемый блок ответа.

  <Expandable title="properties" defaultOpen={true}>
    <ResponseField name="completion_tokens" type="integer" required={true}>
      Количество tokens, сгенерированных для диалога.
    </ResponseField>

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

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