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

# Crear solicitud de conversación

Genera una respuesta del modelo según el prompt y los parámetros especificados

## Encabezados de solicitud

<ParamField header="Content-Type" type="string" required={true}>
  Valores enumerados: `application/json`
</ParamField>

<ParamField header="Authorization" type="string" required={true}>
  Formato de autenticación Bearer: Bearer \{\{API Key}}.
</ParamField>

## Cuerpo de la solicitud

<ParamField body="model" type="string" required={true}>
  Nombre del modelo correspondiente. Para consultar los nombres de modelos disponibles, consulta la biblioteca de modelos en [JieKou AI](https://jiekou.ai/#model-library).
</ParamField>

<ParamField body="prompt" type="string" required={true}>
  Prompt utilizado para generar la conversación (el prompt puede ser una cadena, un array de cadenas, un array de tokens o un array de arrays de tokens).
</ParamField>

<ParamField body="max_tokens" type="integer" required={false}>
  Número máximo de tokens que se pueden generar al crear la conversación.<br />La cantidad de tokens del prompt más max\_tokens no puede superar la longitud de contexto del modelo.
</ParamField>

<ParamField body="stream" type="boolean | null">
  Indica si se usa transmisión en streaming. El valor predeterminado es false; si se establece, los tokens se enviarán como data-only server-sent events (SSE) y el flujo finalizará con un mensaje data: \[DONE].
</ParamField>

<ParamField body="stream_options" type="object">
  Opciones de respuesta en streaming. Solo se establece cuando stream está configurado como true.

  <Expandable title="propiedades" defaultOpen={false}>
    <ParamField body="include_usage" type="boolean" required={false}>
      Si se establece, se transmitirá un chunk adicional antes del mensaje data: \[DONE]. El campo usage de este chunk muestra las estadísticas de uso de tokens de toda la solicitud, mientras que el campo choices siempre es un array vacío. Todos los demás chunks también incluirán un campo usage, pero su valor será null.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="n" type="integer | null">
  Cuántas conversaciones generar para cada prompt. El valor predeterminado es 1.<br /><br />Nota: dado que este parámetro genera varias conversaciones, puede consumir rápidamente tu cuota de facturación de tokens. Úsalo con precaución y asegúrate de establecer valores razonables para max\_tokens y stop.<br />Rango requerido: 1 \< x \< 128
</ParamField>

<ParamField body="seed" type="integer | null">
  Si se especifica, nuestro sistema hará todo lo posible para realizar un muestreo determinista, de modo que las solicitudes repetidas con la misma seed y los mismos parámetros deberían devolver el mismo resultado.
</ParamField>

<ParamField body="frequency_penalty" type="number | null">
  El valor predeterminado es 0. Los valores positivos penalizan los nuevos tokens según su frecuencia de aparición en el texto actual, reduciendo así la probabilidad de que el modelo repita el mismo contenido.<br /><br />Si el objetivo es simplemente reducir muestras repetitivas, los valores razonables están aproximadamente entre 0.1 y 1. Si el objetivo es inhibir fuertemente la repetición, el coeficiente puede aumentarse hasta 2, pero esto puede reducir notablemente la calidad de las muestras. Los valores negativos pueden usarse para aumentar la probabilidad de repetición.<br /><br />Consulta también presence\_penalty, que penaliza a una tasa fija los tokens que aparecen al menos una vez<br />Rango requerido: -2 \< x \< 2
</ParamField>

<ParamField body="presence_penalty" type="number | null">
  El valor predeterminado es 0. Los valores positivos penalizan los nuevos tokens según si aparecen en el texto actual, aumentando así la probabilidad de que el modelo hable de temas nuevos.<br /><br />Si el objetivo es reducir ligeramente las muestras repetitivas, los valores razonables están aproximadamente entre 0.1 y 1. Si el objetivo es inhibir fuertemente la repetición, el coeficiente puede aumentarse hasta 2, pero esto puede reducir significativamente la calidad de las muestras. Los valores negativos pueden usarse para aumentar la probabilidad de repetición.<br /><br />Consulta también frequency\_penalty, que penaliza a una tasa incremental según la frecuencia con la que aparecen los tokens<br />Rango requerido: -2 \< x \< 2
</ParamField>

<ParamField body="repetition_penalty" type="number | null">
  Aplica una penalización a los tokens repetidos para inhibir o fomentar la repetición. Un valor de 1.0 significa que no hay penalización y permite la repetición libre. Los valores mayores que 1.0 penalizan la repetición, reduciendo la probabilidad de tokens repetidos. Los valores entre 0.0 y 1.0 recompensan la repetición, aumentando la probabilidad de tokens repetidos. Para lograr un buen equilibrio, normalmente se recomienda usar 1.2. Ten en cuenta que, en modelos solo decodificadores, la penalización se aplica tanto a la salida generada como al prompt.<br />Rango requerido: 0 \< x \< 2
</ParamField>

<ParamField body="stop" type="string | null">
  Hasta 4 secuencias en las que la API dejará de generar más tokens. El texto devuelto incluye la secuencia de parada.
</ParamField>

<ParamField body="temperature" type="number | null">
  Grado de aleatoriedad en la conversación; el valor predeterminado es 1 y está entre 0 y 2. Los valores más altos (como 0.8) hacen que la salida sea más aleatoria, mientras que los valores más bajos (como 0.2) hacen que la salida sea más enfocada y determinista.<br /><br />Por lo general, recomendamos ajustar solo este parámetro o top\_p, pero no ambos al mismo tiempo.<br />Rango requerido: 0 \< x \< 2
</ParamField>

<ParamField body="top_p" type="number | null">
  Como alternativa a temperature, llamada nucleus sampling, el modelo considera los resultados de los tokens con una masa de probabilidad top\_p. Por lo tanto, 0.1 significa que solo se consideran los tokens que constituyen el 10% superior de la masa de probabilidad. Por lo general, recomendamos ajustar solo este parámetro o temperature, pero no ambos al mismo tiempo.<br />Rango requerido: 0 \< x ≤ 1
</ParamField>

<ParamField body="top_k" type="integer | null">
  El muestreo Top-k es otro método de muestreo en el que se filtran los k tokens siguientes más probables y la masa de probabilidad se redistribuye únicamente entre esos k tokens. El valor de k controla la cantidad de candidatos para el siguiente token en cada paso de generación de texto.<br />Rango requerido: 1 \< x \< 128
</ParamField>

<ParamField body="min_p" type="number | null">
  Valor flotante que representa la probabilidad mínima para que un token sea considerado, en relación con la probabilidad del token más probable.<br />Rango requerido: 0 ≤ x ≤ 1
</ParamField>

<ParamField body="logit_bias" type="map[string, integer]">
  El valor predeterminado es null. Modifica la probabilidad de que los tokens especificados aparezcan en la conversación. Acepta un objeto JSON que asigna tokens a un valor de sesgo asociado de -100 a 100.
</ParamField>

<ParamField body="logprobs" type="integer | null">
  Devuelve las probabilidades logarítmicas de los logprobs tokens de salida más probables, incluyendo también la probabilidad del token seleccionado. Por ejemplo, si logprobs se establece en 5, la API devolverá una lista de las probabilidades logarítmicas de los 5 tokens más probables en cada paso de generación.<br />El valor máximo de logprobs es 5.
</ParamField>

<ParamField body="best_of" type="integer">
  El valor predeterminado es 1. Genera best\_of conversaciones y las procesa en el servidor, devolviendo la “mejor” (es decir, la que tiene la probabilidad logarítmica más alta por token). Los resultados no se pueden transmitir en streaming.<br /><br />Cuando se usa junto con n, best\_of controla el número de conversaciones candidatas y n especifica cuántas conversaciones se devuelven. best\_of debe ser mayor que n.<br /><br />Nota: dado que este parámetro genera varias conversaciones, puede consumir rápidamente tu cuota de facturación de tokens. Úsalo con precaución y asegúrate de establecer valores razonables para max\_tokens y stop.
</ParamField>

## Información de respuesta

<ResponseField name="choices" type="object[]" required={true}>
  Lista de opciones de conversación generadas.

  <Expandable title="propiedades" defaultOpen={true}>
    <ResponseField name="finish_reason" type="string" required={true}>
      Motivo por el que el modelo dejó de generar tokens. Será ‘stop’ si el modelo encontró un punto de parada natural o una secuencia de parada proporcionada; será ‘length’ si se alcanzó el número máximo de tokens especificado en la solicitud. Valores enumerados: `stop,length`.
    </ResponseField>

    <ResponseField name="index" type="integer" required={true}>
      Índice de la opción de conversación.
    </ResponseField>

    <ResponseField name="logprobs" type="object" required={true}>
      Probabilidades logarítmicas de los tokens más probables.

      <Expandable title="propiedades" defaultOpen={true}>
        <ResponseField name="text_offset" type="integer[]">
          Array de enteros de desplazamiento de texto.
        </ResponseField>

        <ResponseField name="token_logprobs" type="number[]">
          Array de números de probabilidades logarítmicas de tokens.
        </ResponseField>

        <ResponseField name="tokens" type="string[]">
          Array de cadenas de tokens.
        </ResponseField>

        <ResponseField name="top_logprobs" type="object[]">
          Array de objetos que contienen las probabilidades logarítmicas top.

          <Expandable title="propiedades">
            <ResponseField name="{key}" type="integer" required={true}>
              Valor de probabilidad logarítmica para la clave dada.
            </ResponseField>
          </Expandable>
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="text" type="string" required={true}>
      Contenido devuelto por la conversación.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="created" type="integer" required={true}>
  Marca de tiempo Unix en la que se generó la respuesta (en segundos).
</ResponseField>

<ResponseField name="id" type="string" required={true}>
  Identificador único de la respuesta.
</ResponseField>

<ResponseField name="model" type="string" required={true}>
  Modelo utilizado para la conversación.
</ResponseField>

<ResponseField name="object" type="string" required={true}>
  Tipo de objeto, siempre text\_completion.
</ResponseField>

<ResponseField name="usage" type="object" required={true}>
  Estadísticas de uso.<br />Para respuestas en streaming, el campo usage se incluye en el último bloque de respuesta devuelto.

  <Expandable title="propiedades" defaultOpen={true}>
    <ResponseField name="completion_tokens" type="integer" required={true}>
      Número de tokens generados por la conversación.
    </ResponseField>

    <ResponseField name="prompt_tokens" type="integer" required={true}>
      Número de tokens en el prompt.
    </ResponseField>

    <ResponseField name="total_tokens" type="integer" required={true}>
      Número total de tokens usados en la solicitud (prompt + completion).
    </ResponseField>
  </Expandable>
</ResponseField>
