實用工具
輸入
結果
結果會顯示在這裡。串流式 LLM 呼叫出問題時,手上通常只有一份滿是 data: 行的日誌——幾百個細碎的 JSON 片段,讀起來非常痛苦。這個工具會把它們重新組回來。它依照 openai-node(openai/openai-node,Apache-2.0)和 Anthropic SDK 所實作的 WHATWG 規則解析事件串流,辨識每個事件的傳輸格式,並顯示組合後的回答、串流參數已接合完整的工具呼叫、結束原因、模型以及 Token 用量。
它是怎麼運作的
- 可讀取四種格式:OpenAI Chat Completions 及所有仿照它的 API(DeepSeek、Qwen、Groq、vLLM、Ollama 的 /v1)、OpenAI Responses、Anthropic Messages,以及 Gemini 的 streamGenerateContent。
- CR、LF 或 CRLF 行尾、多行 data 欄位、: keep-alive 之類的註解,以及缺少最後一個空行的情況,都依標準規定處理。
- 推理內容——DeepSeek 的 reasoning_content、Anthropic 的 thinking 增量、Gemini 的 thought 片段、OpenAI 的推理摘要——會另外收集,開啟後顯示在回答上方。
- 不是合法 JSON 的事件會連同行號列出,而不會中斷解碼;事件之間的空行遺失的日誌,也會被重新拆回一個個獨立事件。
你的資料去了哪裡
哪也沒去。本工具完全在你的瀏覽器裡執行:你貼上的文字由頁面處理,不會傳輸到任何伺服器,也不會寫進任何紀錄。
本工具免費且免登入,執行結果只存在於你目前的頁面裡,不會被儲存到任何地方。
它要花多少
本工具完全免費,不需要登入,也不消耗點數。
常見問題
- 要怎麼擷取原始串流?
- 用 curl 的話,在請求中加上 -N(不緩衝),再複製它印出的內容。在瀏覽器中,開發人員工具的「網路」分頁會顯示該請求的 EventStream 檢視或原始回應。在你自己的程式碼中,則在 SDK 解析前把每一行記錄下來。
- 為什麼顯示串流不完整?
- 因為沒有收到結束原因,也沒有 [DONE] 或 message_stop,所以連線很可能在模型完成前就中斷、逾時或被代理伺服器切斷了。請查看輸出中有沒有串流錯誤,並檢查代理伺服器與負載平衡器的逾時設定,它們常常在 60 秒時結束較長的串流。
- 為什麼沒有 Token 用量?
- OpenAI 的 Chat Completions API 只有在請求設定了 stream_options: {"include_usage": true} 時,才會在最後一個區塊中送出用量;許多相容 API 也是如此。Anthropic 在 message_start 和 message_delta 中送出用量,Gemini 在 usageMetadata 中,Responses API 則在 response.completed 中,所以只要有這些資料就會顯示。
- n > 1 或有多個 choice 時會怎樣?
- 只會組合 choice 0。在同一個串流中要求多個結果時,它們會依 index 交錯出現,混在一起只會得到亂七八糟的內容;如果需要其他 index 的內容,請先把那些行篩選出來。
背後的開源專案
本工具是獨立實作,並未打包第三方函式庫。openai/openai-node(Apache-2.0)在程式碼層面做的是同一件事——如果你需要在自己的程式裡實作它,從那裡開始,而不是呼叫一個網頁。
openai/openai-node也常被稱作
- sse 解析
- server-sent events 解析
- openai stream 解析
- 串流回應 解碼
- anthropic stream events
- llm 串流 除錯