Saltar al contenido
Español

Interfaz de diálogo Chat Completions

Solicitud mínima, campos comunes, lectura de respuestas y forma de escribir diálogos de múltiples turnos para POST /v1/chat/completions.

Usa un cliente compatible con OpenAI, o si ya tienes código chat.completions.create, comienza con esta interfaz. La dirección completa es https://1zheai.com/v1/chat/completions; en la Base URL del SDK solo se rellena hasta /v1.

Primero configura ONEZHE_API_KEY en la terminal con la clave de este sitio. Los modelos siguientes deben existir en tu lista de modelos disponibles.

bash
curl --fail-with-body --connect-timeout 10 --max-time 120 \
https://1zheai.com/v1/chat/completions \
-H "Authorization: Bearer $ONEZHE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.6-sol",
"messages": [{"role": "user", "content": "请用一句中文解释 DNS 的作用。"}]
}'

--fail-with-body hace que los errores HTTP devuelvan un código de salida distinto de cero, conservando a la vez el cuerpo del error; requiere curl 7.76 o una versión más reciente. En versiones anteriores, puedes usar primero -i para ver el código de estado.

CampoTipoForma de uso
modelstringObligatorio, copia el ID del modelo de este sitio, sin añadir prefijos de proveedor de otras plataformas
messagesarrayObligatorio, envía en orden la pregunta de esta ronda y los mensajes del historial que deban conservarse
messages[].rolestringPara conversaciones normales usa user / assistant; el soporte del rol de instrucciones del sistema depende del modelo
messages[].contentstring o array de bloques de contenidoPara texto plano usa primero una cadena; la entrada de imágenes requiere que el modelo admita el bloque de contenido correspondiente
streambooleanCuando se establece en true se lee SSE, sin tratar toda la respuesta como un único JSON
temperaturenumberOpcional, algunos modelos de razonamiento no admiten modificarlo; omítelo primero y verifica elemento por elemento
tools / tool_choicearray / string u objectOpcional, tanto el modelo como el origen deben admitirlo; la ejecución real de las herramientas la realiza tu programa

Los parámetros de límite de salida varían según el modelo. No intercambies mecánicamente el max_tokens de Claude, el max_output_tokens de Responses y los parámetros de Chat Completions; consulta los requisitos del modelo elegido y, ante un 400, revisa primero el cuerpo del error.

El resultado de texto normal se encuentra en choices[0].message.content. El motivo de finalización está en choices[0].finish_reason; cuando se devuelven llamadas a herramientas, el texto puede estar vacío y es necesario leer message.tool_calls. El id, model y usage de la respuesta pueden usarse para verificar esta llamada.

A continuación solo se muestra la estructura que requiere atención; los campos y números omitidos no representan el resultado real de una solicitud:

json
{
"id": "example-completion",
"object": "chat.completion",
"model": "gpt-5.6-sol",
"choices": [{
"index": 0,
"message": {"role": "assistant", "content": "DNS 将域名解析为网络地址。"},
"finish_reason": "stop"
}]
}

La interfaz no recuerda automáticamente la ronda anterior solo porque reutilices la misma clave. Envía junto el historial que deba conservarse:

json
{
"model": "gpt-5.6-sol",
"messages": [
{"role": "user", "content": "我正在学习 DNS。"},
{"role": "assistant", "content": "我们可以从域名解析开始。"},
{"role": "user", "content": "它和 HTTP 有什么区别?"}
]
}

Cuanto más largo es el historial, mayor es la solicitud. La aplicación debe recortar o resumir según el límite de contexto y conservar los pares completos de llamadas a herramientas y resultados.

Al añadir "stream": true, los incrementos de texto provienen de choices[].delta.content. Algunos eventos no tienen texto o choices está vacío, por lo que hay que comprobarlo al leer; consulta salida en streaming.

Ejecuta directamente ejemplo completo en Python / Node.js, o cambia a Responses; los parámetros nativos de Claude están en Messages.