ストリーミング応答
RouteAPI のストリーミング出力は Server-Sent Events(SSE)を使用します。リクエストで stream: true を設定すると、サーバーは増分内容を段階的に返します。
リクエスト例
Section titled “リクエスト例”curl https://www.routeapi.ai/v1/chat/completions \ -H "Authorization: Bearer $ROUTEAPI_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-4o", "stream": true, "messages": [ { "role": "user", "content": "ストリーミング出力とは何かを段階的に説明してください" } ] }'SSE 断片例
Section titled “SSE 断片例”data: {"id":"chatcmpl_xxx","choices":[{"delta":{"content":"RouteAPI"}}]}
data: {"id":"chatcmpl_xxx","choices":[{"delta":{"content":" は"}}]}
data: [DONE]クライアントは data: の内容を行単位で読み取り、[DONE] を受け取ったら今回のレスポンスを終了します。
usage の返却
Section titled “usage の返却”現在のモデルが対応している場合、ストリーミングリクエストでは stream_options により最後に usage を返すよう要求できます。
{ "stream": true, "stream_options": { "include_usage": true }}このフィールドに対応しているかどうかは、選択したモデルとサービス能力に依存します。
ストリーミングリクエストでは、接続確立後にサービス側エラーが発生することがあります。例:
- モデルサービスのタイムアウト
- アカウントクォータ不足
- ネットワーク切断
- クライアントによる切断
- ツール呼び出しパラメータ生成失敗
クライアント側の推奨事項:
- 各リクエストで request id を記録します。
- ネットワーク切断には限定的な再試行を行います。
- すでに副作用を発生させたツール呼び出しを自動再試行しないでください。
- コンソールの使用ログでサービス側エラーを調査します。