Saltar al contenido principal
POST
/
openai
/
v1
/
chat
/
completions
Crear solicitud de conversación de chat
curl --request POST \
  --url https://api.highwayapi.ai/openai/v1/chat/completions \
  --header 'Authorization: <authorization>' \
  --header 'Content-Type: <content-type>' \
  --data '
{
  "model": "<string>",
  "messages": [
    {
      "content": {
        "type": "<string>",
        "text": "<string>",
        "image_url": "<string>",
        "video_url": "<string>"
      },
      "role": "<string>",
      "name": "<string>"
    }
  ],
  "max_tokens": 123,
  "stream": {},
  "stream_options": {
    "include_usage": true
  },
  "n": {},
  "seed": {},
  "frequency_penalty": {},
  "presence_penalty": {},
  "repetition_penalty": {},
  "stop": {},
  "temperature": {},
  "top_p": {},
  "top_k": {},
  "min_p": {},
  "logit_bias": {},
  "logprobs": {},
  "top_logprobs": {},
  "tools": {
    "type": "<string>",
    "function": {
      "name": "<string>",
      "description": {},
      "parameters": {},
      "strict": true
    }
  },
  "response_format": {
    "type": "<string>",
    "json_schema": {
      "name": "<string>",
      "description": {},
      "schema": {},
      "strict": true
    }
  },
  "separate_reasoning": {},
  "enable_thinking": {}
}
'
{
  "choices": [
    {
      "finish_reason": "<string>",
      "index": 123,
      "message": {
        "role": "<string>",
        "content": {},
        "reasoning_content": {}
      }
    }
  ],
  "created": 123,
  "id": "<string>",
  "model": "<string>",
  "object": "<string>",
  "usage": {
    "completion_tokens": 123,
    "prompt_tokens": 123,
    "total_tokens": 123
  }
}
Genera una respuesta del modelo según la conversación de chat especificada

Encabezados de la solicitud

Content-Type
string
requerido
Valores de enumeración: application/json
Authorization
string
requerido
Formato de autenticación Bearer: Bearer {{API Key}}.

Cuerpo de la solicitud

model
string
requerido
Nombre del modelo que se utilizará.
messages
object[]
requerido
Lista de mensajes que componen la conversación actual.
max_tokens
integer
requerido
Número máximo de tokens que se generarán en la completación.Si su prompt (mensajes anteriores) más los tokens de max_tokens supera la longitud de contexto del modelo, el comportamiento depende de context_length_exceeded_behavior. De forma predeterminada, max_tokens se reducirá para ajustarse a la ventana de contexto, en lugar de devolver un error.
stream
boolean | null
predeterminado:false
Si se debe devolver el progreso parcial en streaming. Si se establece, los tokens se enviarán como eventos enviados por el servidor (SSE) de solo datos a medida que estén disponibles, y el stream finalizará con un mensaje data: [DONE].
stream_options
object | null
Opciones para la respuesta en streaming. Establezca esto solo cuando stream esté configurado en true.
n
integer | null
predeterminado:1
Número de completaciones que se generarán para cada prompt.Nota: dado que este parámetro genera muchas completaciones, puede consumir rápidamente su cuota de tokens. Úselo con precaución y asegúrese de tener configuraciones razonables para max_tokens y stop.Rango requerido: 1 < x < 128
seed
integer | null
Si se especifica, nuestro sistema hará todo lo posible por muestrear de forma determinista, de modo que repetir solicitudes con el mismo seed y los mismos parámetros debería devolver los mismos resultados.
frequency_penalty
number | null
predeterminado:0
Los valores positivos penalizan los nuevos tokens según su frecuencia existente en el texto, lo que reduce la probabilidad de que el modelo repita literalmente la misma línea.Si el objetivo es solo reducir ligeramente las muestras repetitivas, los valores razonables están entre 0.1 y 1. Si el objetivo es suprimir fuertemente la repetición, puede aumentar el coeficiente hasta 2, pero esto puede reducir significativamente la calidad de las muestras. Los valores negativos pueden usarse para aumentar la probabilidad de repetición.Consulte también presence_penalty, que penaliza a una tasa fija los tokens que aparecen al menos una vez.Rango requerido: -2 < x < 2
presence_penalty
number | null
predeterminado:0
Los valores positivos penalizan los nuevos tokens según si aparecen en el texto, lo que aumenta la probabilidad de que el modelo hable de temas nuevos.Si el objetivo es solo reducir ligeramente las muestras repetitivas, los valores razonables están entre 0.1 y 1. Si el objetivo es suprimir fuertemente la repetición, puede aumentar el coeficiente hasta 2, pero esto puede reducir significativamente la calidad de las muestras. Los valores negativos pueden usarse para aumentar la probabilidad de repetición.Consulte también frequency_penalty, que penaliza los tokens a una tasa incremental según la frecuencia con la que aparecen.Rango requerido: -2 < x < 2
repetition_penalty
number | null
Aplica una penalización a los tokens repetidos para desalentar o fomentar la repetición. Un valor de 1.0 significa que no hay penalización y permite la repetición libre. Los valores superiores a 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 obtener un buen equilibrio, generalmente se recomienda usar un valor de 1.2. Tenga en cuenta que la penalización se aplica tanto a la salida generada como al prompt en modelos solo de decodificador.Rango requerido: 0 < x < 2
stop
string | null
Hasta 4 secuencias en las que la API dejará de generar tokens adicionales. El texto devuelto contendrá la secuencia de parada.
temperature
number | null
predeterminado:1
Temperatura de muestreo que se utilizará, 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, la hacen más enfocada y determinista.Por lo general, recomendamos cambiar esto o top_p, pero no ambos.Rango requerido: 0 < x < 2
top_p
number | null
Un método alternativo a la temperatura de muestreo, llamado muestreo de núcleo, en el que el modelo considera los resultados de tokens con masa de probabilidad top_p. Por lo tanto, 0.1 significa que solo se consideran los tokens que componen el 10% superior de la masa de probabilidad. Por lo general, recomendamos cambiar esto o la temperatura, pero no ambos.Rango requerido: 0 < x <= 1
top_k
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 solo entre esos k tokens siguientes. El valor de k controla la cantidad de candidatos para el siguiente token en cada paso durante la generación de texto.Rango requerido: 1 < x < 128
min_p
number | null
Representa la probabilidad mínima para que se consideren los tokens, relativa a la probabilidad del token más probable.Rango requerido: 0 <= x <= 1
logit_bias
map[string, integer] | null
Modifica la probabilidad de que los tokens especificados aparezcan en la completación.Acepta un objeto JSON que asigna tokens a valores de sesgo asociados entre -100 y 100. Matemáticamente, el sesgo se suma a los logits generados por el modelo antes del muestreo. El efecto exacto varía según el modelo.Por ejemplo, establecer "logit_bias":{"1024": 6} aumentará la probabilidad de los tokens con el ID de token 1024.
logprobs
boolean | null
predeterminado:false
Si se deben devolver las probabilidades logarítmicas de los tokens de salida. Si es true, se devuelven las probabilidades logarítmicas de cada token de salida en el contenido del mensaje.
top_logprobs
integer | null
Un entero entre 0 y 20 que especifica la cantidad de tokens más probables que se devolverán en cada posición de token, cada uno con una probabilidad logarítmica asociada. Si usa este parámetro, debe establecer logprobs en true.Rango requerido: 0 <= x <= 20
tools
object[] | null
Lista de herramientas que el modelo puede llamar. Actualmente, solo se admiten funciones como herramientas. Use esto para proporcionar una lista de funciones para las que el modelo puede generar entradas JSON.Obtenga más información sobre las llamadas a funciones en la guía de llamadas a funciones.
response_format
object | null
Permite forzar al modelo a generar un formato de salida específico.Establézcalo en { "type": "json_schema", "json_schema": {...} } para habilitar salidas estructuradas, asegurando que el modelo coincida con el JSON schema que proporcione.Establézcalo en { "type": "json_object" } para habilitar el modo JSON heredado, asegurando que el mensaje generado por el modelo sea JSON válido. Para los modelos que lo admiten, se recomienda usar json_schema.
separate_reasoning
boolean | null
predeterminado:false
Si se debe separar el razonamiento de “content” en el campo “reasoning_content”.Modelos admitidos:
  • deepseek/deepseek-r1-turbo
enable_thinking
boolean | null
predeterminado:true
Controla el cambio entre los modos de pensamiento y no pensamiento.Modelos admitidos:
  • zai-org/glm-4.5

Información de la respuesta

choices
object[]
requerido
Lista de opciones de completación de chat.
created
integer
requerido
Hora Unix (en segundos) en la que se generó la respuesta.
id
string
requerido
Identificador único de la respuesta.
model
string
requerido
Modelo utilizado para la completación de chat.
object
string
requerido
Tipo de objeto, siempre chat.completion.
usage
object
Estadísticas de uso.Para las respuestas en streaming, el campo usage se incluye en el último bloque de respuesta devuelto.