SSE ストリームビューア
生のストリーミング応答を貼れば、本文・ツール呼び出し・使用量が戻ってきます。
生のストリームには応答全体が含まれます。ブラウザー内で解析され、送信されません。
それを生んだループの費用を出す
SSE ストリームビューア について
ストリーミング呼び出しの挙動が怪しいとき、手元にあるのは event 行と data 行の壁です。そして知りたい三つのことは、その中に散らばっています。モデルは実際に何と言ったのか、なぜ止まったのか、何を使ったのか。本文は断片で届き、ツールの引数は最後の一片が来て初めて解析できる部分的な JSON で届き、使用量は最初のイベントと最後のイベントに分かれています。ここではそれらを組み立て直します。実際に貼られるのは両方なので、よくある二つのストリーム形式のどちらも扱い、解析できなかったイベントは黙って飛ばさず報告します。
機能
- 差分から本文を順序どおりに組み立て直し
- 部分的な JSON からツール引数を復元して整形
- 停止理由・モデル・使用量を抽出
- ブロック差分形式と choices/delta 形式の両方に対応
- 仕様どおり、繰り返された data 行を連結
- keep-alive のコメントはイベントとして数えず無視
- エラーイベントを飛ばさず表示
- 各イベントを展開でき、名前ごとの件数も表示
SSE ストリームビューア の使い方
- 生のストリームを貼ります
- 組み立て直された本文を読みます
- 停止理由と使用量を確かめます
- まだ腑に落ちなければ個々のイベントを展開します
例
入力
delta: {"type":"text_delta","text":"Order 4471 "}
出力
Order 4471 shipped on 30 August.
六つのイベントに散った断片を、順序どおりに組み立て直しました。
よくあるエラーとトラブルシューティング
- 本文が出てこない。 — 内容が出る前にストリームが終わったのかもしれません。イベント一覧と停止理由を見てください。拒否やエラーイベントでも、妥当で中身のないストリームになります。
- ツールの引数が途中で切れている。 — 引数は複数イベントにまたがる部分的な JSON で届きます。ストリームが途切れていれば JSON は閉じず、解析結果の代わりに生の断片を表示します。
- 一部のイベントが解析できない。 — たいていコピーの際にイベントの途中で切れたストリームです。それらは捨てずに、位置とともに報告します。
- 使用量の数字が欠けて見える。 — ストリームの中で分かれています。入力トークンは冒頭、出力トークンは末尾です。最後のイベントが欠けたストリームは半分を失っています。
よくある質問
- server-sent events とは何ですか。
- 単純なストリーミング形式です。項目と値の行が並び、イベントは空行で区切られます。ストリーミングの API 応答はこれを使うので、失敗した呼び出しはこの壁を手元に残します。
- どのストリーム形式に対応していますか。
- コンテンツブロックの中で型付き差分として本文が届くブロック形式と、choices/delta 形式です。人はクライアントが記録したほうを貼るので、どちらも自動で判別します。
- なぜ引数が細切れで届くのですか。
- 呼び出しが完了する前にクライアントが描画を始められるよう、部分的な JSON として流れるからです。つまり最後の一片が届くまで解析できず、途切れたストリームには不正な JSON が残ります。
- 費用は分かりますか。
- 使用量ブロックがあれば、キャッシュ読み出しも含めて抽出します。その呼び出しが何を使ったかが分かります。そこから先は費用のツールの出番です。
- ストリームはどこかへ送られますか。
- いいえ。ストリームには応答全体と、多くの場合それを生んだプロンプトが含まれます。解析はすべてブラウザー内で行われます。
関連ツール
AI・エージェントの他のツール
AI・エージェントのツールをすべて見る · すべてのツール