stream: trueを設定するとServer-Sent Events(SSE)として出力を受け取れます。Phaseo APIキーはサーバーに保持し、出力をUIへ転送してください。
ストリーミングリクエストを送る
イベントを読む
呼び出したエンドポイントのイベント形式を使ってください。
SSEイベントは空行で区切られます。ネットワークチャンクはイベントの一部や複数イベントを含むため、各チャンクを独立したJSONとして解析しないでください。不完全なフレームをバッファリングするか、SDKのストリーミングヘルパーを使います。すべてのエンドポイントが
[DONE]を送るとは限りません。
SDKのヘルパーがストリーム転送を処理します。
- TypeScript:
streamResponses(),streamChat(),streamMessages(). - Python:
stream_responses(),stream_chat(),stream_message(). - Vercel AI SDK:
streamText()を使って@phaseo/ai-sdk-provider.
ツール呼び出しをストリーミングする
Gatewayはツールを伴うストリーミングを受け付けますが、対応状況はモデルとプロバイダーに依存します。呼び出し完了まで引数の差分を蓄積し、実行前に解析、検証、認可を行ってください。部分的な引数を実行しないでください。 継続リクエストはツール呼び出しパターン、検証と承認の制御はツールの安全性に従ってください。キャンセルと復旧
サーバー側HTTPクライアントにAbortSignalを渡し、ユーザーの停止や切断時にキャンセルします。処理に適した期限を設定してください。キャンセルしてもプロバイダーの即時停止や生成済み出力の無料化は保証されません。
部分テキストは順次表示できますが、エンドポイントの正常な最終イベントを受け取ってから完了としてください。接続の切断だけでは完了を証明できません。
出力開始後にストリームが失敗した場合:
- 部分応答を中断として記録します。
- リクエストまたは生成ID、エンドポイント、モデルをログに残します。
- 明示的な再試行を提示します。新しいリクエストは異なる出力と追加料金を生じる場合があります。
- 実行済みツールの再実行や、部分出力への再試行応答の自動追加をしないでください。