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

Crear Chat de Generación de Imágenes (Sin Streaming)

Este endpoint de la API se utiliza para enviar un prompt (que contiene texto o imágenes) al modelo, el cual devolverá una o más respuestas generadas. Es especialmente adecuado para modelos que admiten entradas multimodales (como procesamiento de imágenes, embellecimiento y creación a partir del reconocimiento de imágenes), como gpt-4o-image-vip.

Información del Endpoint

  • URL del Endpoint: https://api.codingplanx.ai/v1/chat/completions
  • Método de solicitud: POST
  • Content-Type: application/json
  • Tipo de respuesta: application/json

Encabezados de la solicitud (Headers)

ParámetroRequeridoTipoEjemploDescripción
Content-TypeSíStringapplication/jsonFormato del cuerpo de la solicitud
AcceptSíStringapplication/jsonFormato de respuesta esperado
AuthorizationNoStringBearer {{YOUR_API_KEY}}Clave API para autenticación

Parámetros del cuerpo (Body)

El cuerpo de la solicitud es un objeto JSON que contiene los siguientes campos:

ParámetroTipoRequeridoValor por defectoDescripción
modelStringSí-ID del modelo a utilizar. Ejemplo: gpt-4o-image-vip.
messagesArraySí-Lista de mensajes del chat. Cada objeto contiene un role (user/assistant/system) y content. El content puede ser un string o una matriz de objetos con el tipo y la URL de la imagen.
toolsArraySí-Lista de herramientas que el modelo puede llamar. Actualmente solo admite funciones.
tool_choiceObjectSínoneControla qué función llama el modelo. none para no llamar a ninguna, auto para selección automática.
temperatureNumberNo1Temperatura de muestreo (0-2). Valores más altos son más aleatorios, valores más bajos son más enfocados.
top_pNumberNo1Muestreo de núcleo (Nucleus sampling). Solo considera los tokens con la masa de probabilidad del top P. Se recomienda ajustar esto o la temperatura, pero no ambos.
nIntegerNo1Cuántas opciones de finalización de chat generar por cada entrada.
streamBooleanNofalseSi se debe transmitir de forma continua (streaming). Para este endpoint se define como sin streaming (false).
max_tokensIntegerNoinfNúmero máximo de tokens a generar.
stopString/ArrayNonullSecuencia de parada. La API dejará de generar más tokens.
presence_penaltyNumberNo0Entre -2.0 y 2.0. Penaliza nuevos tokens en función de si ya han aparecido en el texto, aumentando la probabilidad de hablar sobre nuevos temas.
frequency_penaltyNumberNo0Entre -2.0 y 2.0. Penaliza los nuevos tokens según su frecuencia existente en el texto.
response_formatObjectNo-Especifica el formato de salida, ej. { "type": "json_object" } para habilitar el modo JSON.
userStringNo-Identificador único que representa a su usuario final, utilizado para monitorear abusos.
seenIntegerNo-(Beta) Valor de la semilla (seed) para intentar lograr un muestreo determinista.

Parámetros de respuesta

ParámetroTipoDescripción
idStringIdentificador único de la solicitud.
objectStringTipo de objeto, fijo como chat.completion.
createdIntegerMarca de tiempo Unix (en segundos).
choicesArrayMatriz que contiene las opciones de respuesta generadas.
└ indexIntegerÍndice de la opción.
└ messageObjectObjeto de mensaje que contiene role y content.
└ finish_reasonStringRazón de parada (ej. stop, length).
usageObjectEstadísticas de uso de tokens.
└ prompt_tokensIntegerNúmero de tokens consumidos por el prompt.
└ completion_tokensIntegerNúmero de tokens consumidos por la generación de respuesta.
└ total_tokensIntegerConsumo total de tokens.

Ejemplos

Ejemplo de Solicitud (Embellecimiento/Creación de Imágenes)

{
    "model": "gpt-4o-image-vip",
    "messages": [
      {
            "role": "user",
            "content": [
                {"type": "text", "text": "Embellece esta imagen, añade las palabras 'Amo a China' y ajusta la proporción a [4:3]"},
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://lsky.zhongzhuan.chat/i/2024/10/17/6711068a14527.png"
                    }
                }
            ]
        }
    ],
    "tools": [],
    "tool_choice": "none"
}

Ejemplo de Respuesta

{
    "id": "chatcmpl-123",
    "object": "chat.completion",
    "created": 1677652288,
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "Entendido, he procesado la imagen para ti. Puedes ver el resultado generado a continuación: [Enlace/Descripción de la imagen]"
            },
            "finish_reason": "stop"
        }
    ],
    "usage": {
        "prompt_tokens": 9,
        "completion_tokens": 12,
        "total_tokens": 21
    }
}

FAQs (Preguntas Frecuentes)

P: ¿Por qué falla la solicitud al usar response_format: { "type": "json_object" }? R: Al usar el modo JSON, debes indicarle explícitamente al modelo en messages que genere un JSON (por ejemplo, añadiendo "Por favor, responde en formato JSON" en el prompt del sistema). De lo contrario, el modelo puede entrar en un bucle infinito o generar un error por emitir contenido que no es JSON.

P: ¿Cómo asegurar que los resultados generados sean consistentes en cada solicitud? R: Aunque los modelos de IA son inherentemente estocásticos, puedes intentar configurar el parámetro seen (semilla/seed) y mantener la temperature en 0, mientras observas el campo system_fingerprint en la respuesta para monitorear si el entorno del backend ha cambiado.

P: ¿Cuál es un valor adecuado para max_tokens? R: Esto depende de tu caso de uso. Para descripciones de imágenes breves, un valor de 100-300 es suficiente; si necesitas análisis detallados o creación de textos largos, se recomienda establecerlo por encima de 1000. Ten en cuenta que la suma de los tokens de entrada (incluidas las imágenes) y los tokens de salida no debe superar el límite de contexto del modelo.

P: ¿Cómo manejo la entrada de imágenes? R: En el campo content de messages, utiliza type: "image_url". Actualmente, se recomienda utilizar enlaces de imágenes HTTPS que sean de acceso público en Internet.

P: ¿Son obligatorios tools y tool_choice? R: Según la definición de este endpoint de la API, ambos campos están marcados como requeridos. Si no necesitas llamar a una herramienta específica, configura tools como un array vacío [] y tool_choice como "none".