チャット応答をストリームする
ShareAIチャット補完のサーバー送信イベントを読み取り、コンテンツデルタを一度だけ追加し、完了、エラー、および中断されたストリームを処理します。
このページについて
設定 stream: true 応答を段階的に受け取るために。HTTP接続を開いたままにし、完全なSSEイベントを解析し、各コンテンツデルタを一度だけ追加します。
https://api.shareai.now/api/v1/chat/completionsサーバー送信イベントストリームを返します。
- ベースURL
https://api.shareai.now- 認証
- Bearer APIキーまたは承認済みOAuthアクセストークン
cURL
curl --no-buffer --fail-with-body https://api.shareai.now/api/v1/chat/completions \
-H "Authorization: Bearer $SHAREAI_API_KEY" \
-H "Content-Type: application/json" \
--data '{"model":"MODEL_IDENTIFIER","messages":[{"role":"user","content":"Explain server-sent events briefly."}],"stream":true}'
イベント境界を読む#
SSEは空行でイベントを区切ります。ネットワークチャンクはJSON値を分割することも、複数のイベントを含むこともあるため、各ネットワークリードを完全なJSON応答として解析しないでください。UTF-8を段階的にデコードし、イベントが完了するまで不完全なデータを保持してください。
Plain text
data: {"object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"Hello"},"finish_reason":null}]}
data: {"object":"chat.completion.chunk","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
data: [DONE]
コンテンツを一度だけレンダリングする#
存在する場合は追加します。 choices[0].delta.content 空白と繰り返しの単語を保持します。役割のみまたは最終チャンクにはコンテンツがない場合があります。 [DONE] ストリーム終了記号として扱います。
ストリームエラーを処理する#
SSEパーサーに入る前にHTTPステータスを確認してください。ストリーミングが開始された後、イベントと予期しない切断を処理します。中断された回答を不完全としてマークし、ユーザーが明示的に再試行できるようにします。部分的な出力に独立して生成された2つ目の回答を追加しないでください。 event: error イベントと予期しない切断。中断された回答を不完全としてマークし、ユーザーが明示的に再試行できるようにします。不完全な出力に対して独立して生成された2つ目の回答を追加しないでください。
アプリケーションからキャンセルする#
ユーザーが生成を停止した際には、HTTPクライアントのキャンセル機能を使用してください。キャンセル、ネットワーク障害、完了した回答はそれぞれ別のUI状態として保持してください。クライアント接続を閉じることで、すでに処理された使用量が取り消されると約束しないでください。
最終更新日 2026年9月15日