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.
Minimalanfrage
Abschnitt mit dem Titel „Minimalanfrage“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.
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.
Gebräuchliche Felder
Abschnitt mit dem Titel „Gebräuchliche Felder“| Feld | Typ | Verwendung |
|---|---|---|
model | string | Erforderlich, Modell-ID dieser Website kopieren, keine Anbieterpräfixe anderer Plattformen hinzufügen |
messages | array | Erforderlich, sendet die Frage dieser Runde und die zu behaltenden Verlaufsnachrichten in Reihenfolge |
messages[].role | string | Für normale Dialoge user / assistant verwenden; die Unterstützung der Rolle für Systemanweisungen hängt vom Modell ab |
messages[].content | string oder Array von Inhaltblöcken | Für reinen Text zuerst eine Zeichenkette verwenden; Bildeingaben erfordern die entsprechenden Inhaltsblöcke vom Modell unterstützt |
stream | boolean | Wenn auf true gesetzt, wird SSE gelesen und die gesamte Antwort nicht mehr als ein JSON behandelt |
temperature | number | Optional, einige Reasoning-Modelle unterstützen keine Änderung; zuerst weglassen und dann einzeln prüfen |
tools / tool_choice | array / string oder object | Optional, 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.
So lesen Sie die Antwort aus
Abschnitt mit dem Titel „So lesen Sie die Antwort aus“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:
{ "id": "example-completion", "object": "chat.completion", "model": "gpt-5.6-sol", "choices": [{ "index": 0, "message": {"role": "assistant", "content": "DNS 将域名解析为网络地址。"}, "finish_reason": "stop" }]}Mehrrunden-Dialog
Abschnitt mit dem Titel „Mehrrunden-Dialog“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:
{ "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.
Streaming und nächste Schritte
Abschnitt mit dem Titel „Streaming und nächste Schritte“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.
