---
title: "Chat Completions-Dialogschnittstelle"
description: "Minimalanfrage, gebräuchliche Felder, Antwortauslesen und Mehrrunden-Dialoge für POST /v1/chat/completions."
headingIds: {"Minimalanfrage":"section-1","Gebräuchliche Felder":"section-2","So lesen Sie die Antwort aus":"section-3","Mehrrunden-Dialog":"section-4","Streaming und nächste Schritte":"section-5"}
---

<aside className="docs-publication" data-pagefind-ignore>

Dokumentation gepflegt von [1ZheAI](https://1zheai.com/en/editorial/#publisher). [Quellen und Korrekturen](https://1zheai.com/en/editorial/).

Fehler gefunden? [Support kontaktieren](mailto:support@1zheai.com) mit Seitenadresse und Beschreibung. Senden Sie keine API-Schlüssel oder Kontodaten.

</aside>
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

Legen Sie im Terminal zuerst `ONEZHE_API_KEY` auf den Schlüssel dieser Website fest. Das folgende Modell muss in [Ihrer verfügbaren Modellliste](/de/docs/api-models/) 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.

## 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

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"
  }]
}
```

## 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:

```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.

## 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](/de/docs/streaming/).

Führen Sie direkt [Python-/Node.js-Vollbeispiel](/de/docs/code-examples/) aus oder wechseln Sie zu [Responses](/de/docs/api-responses/); Claude-native Parameter finden Sie unter [Messages](/de/docs/api-messages/).
