¡Invita a amigos y gana tokens gratuitos!Saber más

Documentación de la API de Finalización de Chat (Chat Completions)

Esta interfaz se utiliza para proporcionar un aviso (Prompt), tras lo cual el modelo devolverá uno o más resultados de finalización predictivos (Completions). Puede generar texto basado en el historial de la conversación y controlar la aleatoriedad, la longitud y el formato del proceso de generación.

  • Nombre de la interfaz: Listar modelos / Chat Completions
  • Método de solicitud: GET (Nota: según la definición de datos proporcionada)
  • URL de solicitud: https://api.codingplanx.ai/v1/models
  • Estado: Publicado (Released)

1. Parámetros de Solicitud

1.1 Parámetros de Cabecera (Header)

Nombre del ParámetroObligatorioTipoValor de EjemploDescripción
Content-TypeSíStringapplication/jsonFormato del cuerpo de la solicitud de la interfaz
AcceptSíStringapplication/jsonFormato de respuesta de la interfaz
AuthorizationNoStringBearer {{YOUR_API_KEY}}Clave API utilizada para la autenticación

1.2 Parámetros del Cuerpo (Body)

Aunque la definición original es GET, según la lógica empresarial, los siguientes parámetros generalmente se pasan a través del Body en formato JSON.

Nombre del ParámetroTipoObligatorioValor PredeterminadoDescripción
modelstringSí-ID del modelo a utilizar. Ejemplo: gpt-3.5-turbo.
messagesarraySí-Lista de mensajes que componen la conversación hasta el momento. Cada mensaje contiene un role y content.
temperaturenumberNo1Temperatura de muestreo, entre 0 y 2. Valores más altos hacen que la salida sea más aleatoria.
top_pnumberNo1Muestreo de núcleo (Nucleus sampling). 0.1 significa que solo se consideran los tokens que componen el 10% superior de la masa de probabilidad.
nintegerNo1Cuántas opciones de finalización de chat se generan para cada entrada.
streambooleanNofalseSi se transmite en flujo (streaming). Cuando se establece en true, se enviarán incrementos parciales de mensajes (SSE).
stopstring/arrayNonullSecuencias de parada. El modelo dejará de generar cuando encuentre estos caracteres.
max_tokensintegerNoinfNúmero máximo de tokens a generar.
presence_penaltynumberNo0Número entre -2.0 y 2.0. Los valores positivos aumentan la probabilidad de que el modelo hable sobre nuevos temas.
frequency_penaltynumberNo0Número entre -2.0 y 2.0. Los valores positivos reducen la probabilidad de que el modelo repita las mismas líneas.
logit_biasobjectNonullModifica la probabilidad de que los tokens especificados aparezcan en la finalización.
userstringNo-Identificador único que representa al usuario final, ayuda a monitorear el abuso.
response_formatobjectNo-Especifica el formato de salida del modelo, como { "type": "json_object" } para habilitar el modo JSON.
toolsarrayNo-Lista de herramientas (como funciones) que el modelo puede llamar.
tool_choiceobjectNoautoControla qué función llama el modelo.

2. Parámetros de Respuesta

Nombre del ParámetroTipoDescripción
idstringIdentificador único de la solicitud.
objectstringTipo de objeto, generalmente chat.completion.
createdintegerMarca de tiempo (en segundos) de cuando se creó la solicitud.
choicesarrayLista que contiene los resultados de la finalización.
├─ indexintegerÍndice de esta opción en la lista.
├─ messageobjectMensaje específico generado por el modelo.
│ ├─ rolestringRol, generalmente assistant.
│ └─ contentstringContenido del texto del mensaje.
└─ finish_reasonstringMotivo de parada, como stop (parada normal) o length (alcanzó la longitud máxima de tokens).
usageobjectEstadísticas de uso de tokens.
├─ prompt_tokensintegerNúmero de tokens consumidos por la entrada (prompt).
├─ completion_tokensintegerNúmero de tokens generados en la salida.
└─ total_tokensintegerNúmero total de tokens consumidos.

3. Ejemplos de Solicitud

Ejemplo de Solicitud Exitosa

curl --location --request GET 'https://api.codingplanx.ai/v1/models' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data '{
  "model": "gpt-3.5-turbo",
  "messages": [
    {
      "role": "user",
      "content": "Hello there, how may I assist you today?"
    }
  ],
  "temperature": 1,
  "top_p": 1,
  "n": 1,
  "stream": false,
  "user": "user-1234"
}'

Ejemplo de Respuesta Exitosa

{
    "id": "chatcmpl-123",
    "object": "chat.completion",
    "created": 1677652288,
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "\r
\r
Hello there, how may I assist you today?"
            },
            "finish_reason": "stop"
        }
    ],
    "usage": {
        "prompt_tokens": 9,
        "completion_tokens": 12,
        "total_tokens": 21
    }
}

4. Preguntas Frecuentes (FAQs)

P: ¿Por qué la documentación muestra el método GET, pero parece una solicitud POST? R: En la especificación estándar de OpenAI, la creación de finalizaciones generalmente usa el método POST. Sin embargo, según los metadatos proporcionados, esta interfaz se define como GET. Asegúrese de confirmar la configuración real del lado del servidor al realizar la llamada. Si GET no funciona, intente usar POST.

P: ¿Cómo debo elegir entre temperature y top_p? R: Recomendamos ajustar solo uno de ellos. Si desea una respuesta más precisa y determinista, reduzca temperature (por ejemplo, a 0.2); si desea una respuesta más diversa y creativa, puede aumentarla.

P: ¿Cómo habilito el modo JSON? R: Necesita configurar { "type": "json_object" } en response_format y especificar claramente al modelo (en el mensaje de System o User dentro de messages) que debe generar formato JSON. De lo contrario, el modelo puede producir errores de análisis o devolver espacios en blanco infinitos.

P: ¿Qué son presence_penalty y frequency_penalty? R:

  • presence_penalty (Penalización por presencia): Se centra en penalizar los temas que ya han aparecido, fomentando que el modelo hable sobre nuevos tópicos.
  • frequency_penalty (Penalización por frecuencia): Se centra en penalizar el vocabulario que se repite, evitando que el modelo repita las mismas oraciones en un corto período de tiempo.

P: ¿Cómo funciona la salida en flujo (stream: true)? R: Después de habilitar el flujo (streaming), la API devolverá los datos palabra por palabra a través de Server-Sent Events (SSE). Cada bloque de datos es una cadena JSON que comienza con data: y termina con data: [DONE]. Esto es muy útil para la visualización en tiempo real de la generación de textos largos.