Streaming von Textvervollständigungen
Legacy-API
Die Text Completions API ist eine Legacy-API. Zukünftige Modelle und Funktionen erfordern die Verwendung der Messages API, und wir empfehlen, so bald wie möglich zu migrieren.
Bei der Erstellung einer Textvervollständigung können Sie "stream": true
setzen, um die Antwort schrittweise mittels Server-Sent Events (SSE) zu streamen. Wenn Sie unsere Client-Bibliotheken verwenden, wird die Verarbeitung dieser Events automatisch für Sie übernommen. Wenn Sie jedoch eine direkte API-Integration entwickeln, müssen Sie diese Events selbst verarbeiten.
Beispiel
curl https://api.anthropic.com/v1/complete \
--header "anthropic-version: 2023-06-01" \
--header "content-type: application/json" \
--header "x-api-key: $ANTHROPIC_API_KEY" \
--data '
{
"model": "claude-2",
"prompt": "\n\nHuman: Hello, world!\n\nAssistant:",
"max_tokens_to_sample": 256,
"stream": true
}
'
event: completion
data: {"type": "completion", "completion": " Hello", "stop_reason": null, "model": "claude-2.0"}
event: completion
data: {"type": "completion", "completion": "!", "stop_reason": null, "model": "claude-2.0"}
event: ping
data: {"type": "ping"}
event: completion
data: {"type": "completion", "completion": " My", "stop_reason": null, "model": "claude-2.0"}
event: completion
data: {"type": "completion", "completion": " name", "stop_reason": null, "model": "claude-2.0"}
event: completion
data: {"type": "completion", "completion": " is", "stop_reason": null, "model": "claude-2.0"}
event: completion
data: {"type": "completion", "completion": " Claude", "stop_reason": null, "model": "claude-2.0"}
event: completion
data: {"type": "completion", "completion": ".", "stop_reason": null, "model": "claude-2.0"}
event: completion
data: {"type": "completion", "completion": "", "stop_reason": "stop_sequence", "model": "claude-2.0"}
Events
Jedes Event enthält einen benannten Event-Typ und zugehörige JSON-Daten.
Event-Typen: completion
, ping
, error
.
Fehler-Event-Typen
Gelegentlich können wir Fehler im Event-Stream senden. Zum Beispiel können Sie während Zeiten hoher Auslastung einen overloaded_error
erhalten, der normalerweise einem HTTP 529 in einem nicht-streamenden Kontext entsprechen würde:
event: completion
data: {"completion": " Hello", "stop_reason": null, "model": "claude-2.0"}
event: error
data: {"error": {"type": "overloaded_error", "message": "Overloaded"}}
Ältere API-Versionen
Wenn Sie eine API-Version vor 2023-06-01
verwenden, wird die Antwortstruktur anders sein. Weitere Details finden Sie unter Versionierung.