Zum Inhalt springen
Deutsch

Chat Completions-Dialogschnittstelle

Minimalanfrage, gebräuchliche Felder, Antwortauslesen und Mehrrunden-Dialoge für POST /v1/chat/completions.

Verwenden Sie einen OpenAI-kompatiblen Client oder beginnen Sie mit dieser Schnittstelle, wenn Sie bereits über chat.completions.create-Code verfügen. Die vollständige Adresse lautet https://1zheai.com/v1/chat/completions; die Base URL des SDK wird nur bis zu /v1 eingetragen.

Legen Sie im Terminal zuerst ONEZHE_API_KEY auf den Schlüssel dieser Website fest. Das folgende Modell muss in Ihrer verfügbaren Modellliste vorhanden sein.

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 sorgt dafür, dass HTTP-Fehler einen Nicht-Null-Exitcode zurückgeben und gleichzeitig den Fehlertext erhalten bleiben; erfordert curl 7.76 oder neuer. Bei älteren Versionen können Sie zuerst mit -i den Statuscode anzeigen.

FeldTypVerwendung
modelstringErforderlich, Modell-ID dieser Website kopieren, keine Anbieterpräfixe anderer Plattformen hinzufügen
messagesarrayErforderlich, sendet die Frage dieser Runde und die zu behaltenden Verlaufsnachrichten in Reihenfolge
messages[].rolestringFür normale Dialoge user / assistant verwenden; die Unterstützung der Rolle für Systemanweisungen hängt vom Modell ab
messages[].contentstring oder Array von InhaltblöckenFür reinen Text zuerst eine Zeichenkette verwenden; Bildeingaben erfordern die entsprechenden Inhaltsblöcke vom Modell unterstützt
streambooleanWenn auf true gesetzt, wird SSE gelesen und die gesamte Antwort nicht mehr als ein JSON behandelt
temperaturenumberOptional, einige Reasoning-Modelle unterstützen keine Änderung; zuerst weglassen und dann einzeln prüfen
tools / tool_choicearray / string oder objectOptional, sowohl Modell als auch Upstream müssen es unterstützen; die tatsächliche Ausführung der Tools erfolgt durch Ihr Programm

Die Obergrenze für die Ausgabe variiert je nach Modell. Tauschen Sie Claude’s max_tokens, Responses’ max_output_tokens und die Parameter von Chat Completions nicht mechanisch aus; beziehen Sie sich auf die Anforderungen des gewählten Modells und sehen Sie bei einem 400 zuerst im Fehlertext nach.

Das normale Textergebnis befindet sich in choices[0].message.content. Der Beendigungsgrund steht in choices[0].finish_reason; bei Rückgabe eines Tool-Aufrufs kann der Text leer sein, dann muss message.tool_calls gelesen werden. Die id, model und usage der Antwort können zur Überprüfung dieses Aufrufs verwendet werden.

Nachfolgend wird nur die Struktur gezeigt, auf die Sie achten müssen; weggelassene Felder und Zahlen entsprechen nicht dem tatsächlichen Anfrageergebnis:

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

Die Schnittstelle erinnert sich nicht automatisch an die vorherige Runde, nur weil Sie denselben Schlüssel erneut verwenden. Senden Sie den zu behaltenden Verlauf gemeinsam mit:

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

Je länger der Verlauf, desto größer die Anfrage. Die Anwendung sollte gemäß den Kontextbeschränkungen kürzen oder zusammenfassen und die vollständigen Tool-Aufrufe mit den zugehörigen Ergebnissen paarweise erhalten.

Nach Hinzufügen von "stream": true stammen die Textinkremente aus choices[].delta.content. Einige Ereignisse enthalten keinen Text oder choices ist leer; dies muss beim Lesen berücksichtigt werden; siehe Streaming-Ausgabe.

Führen Sie direkt Python-/Node.js-Vollbeispiel aus oder wechseln Sie zu Responses; Claude-native Parameter finden Sie unter Messages.