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.
Solicitud mínima
Sección titulada “Solicitud mínima”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.
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.
Campos comunes
Sección titulada “Campos comunes”| Campo | Tipo | Forma de uso |
|---|---|---|
model | string | Obligatorio, copia el ID del modelo de este sitio, sin añadir prefijos de proveedor de otras plataformas |
messages | array | Obligatorio, envía en orden la pregunta de esta ronda y los mensajes del historial que deban conservarse |
messages[].role | string | Para conversaciones normales usa user / assistant; el soporte del rol de instrucciones del sistema depende del modelo |
messages[].content | string o array de bloques de contenido | Para texto plano usa primero una cadena; la entrada de imágenes requiere que el modelo admita el bloque de contenido correspondiente |
stream | boolean | Cuando se establece en true se lee SSE, sin tratar toda la respuesta como un único JSON |
temperature | number | Opcional, algunos modelos de razonamiento no admiten modificarlo; omítelo primero y verifica elemento por elemento |
tools / tool_choice | array / string u object | Opcional, 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.
Cómo leer la respuesta
Sección titulada “Cómo leer la respuesta”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:
{ "id": "example-completion", "object": "chat.completion", "model": "gpt-5.6-sol", "choices": [{ "index": 0, "message": {"role": "assistant", "content": "DNS 将域名解析为网络地址。"}, "finish_reason": "stop" }]}Diálogo de múltiples turnos
Sección titulada “Diálogo de múltiples turnos”La interfaz no recuerda automáticamente la ronda anterior solo porque reutilices la misma clave. Envía junto el historial que deba conservarse:
{ "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.
Streaming y siguientes pasos
Sección titulada “Streaming y siguientes pasos”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.
