細粒度工具串流
細粒度工具串流
工具使用現在支援參數值的細粒度串流。這讓開發者能夠串流工具使用參數而無需緩衝/JSON驗證,減少開始接收大型參數的延遲。
細粒度工具串流是一個測試版功能。請確保在生產環境中使用之前評估您的回應。
請使用此表單提供關於模型回應品質、API本身或文件品質的回饋意見——我們迫不及待想聽到您的意見!
使用細粒度工具串流時,您可能會收到無效或部分的JSON輸入。請確保在您的程式碼中考慮這些邊緣情況。
如何使用細粒度工具串流
要使用此測試版功能,只需在工具使用請求中添加測試版標頭fine-grained-tool-streaming-2025-05-14
並開啟串流。
以下是如何在API中使用細粒度工具串流的範例:
在此範例中,細粒度工具串流使Claude能夠將長詩的行串流到工具呼叫make_file
中,而無需緩衝來驗證lines_of_text
參數是否為有效的JSON。這意味著您可以在參數到達時看到參數串流,而無需等待整個參數緩衝和驗證。
使用細粒度工具串流時,工具使用區塊開始串流得更快,通常更長且包含較少的斷詞。這是由於分塊行為的差異。
範例:
沒有細粒度串流(15秒延遲):
使用細粒度串流(3秒延遲):
由於細粒度串流在沒有緩衝或JSON驗證的情況下發送參數,因此無法保證結果串流將以有效的JSON字串完成。
特別是,如果達到停止原因 max_tokens
,串流可能會在參數中途結束並可能不完整。您通常必須編寫特定的支援來處理達到max_tokens
的情況。
處理工具回應中的無效JSON
使用細粒度工具串流時,您可能會從模型收到無效或不完整的JSON。如果您需要在錯誤回應區塊中將此無效JSON傳回模型,您可以將其包裝在JSON物件中以確保正確處理(使用合理的鍵)。例如:
這種方法幫助模型理解內容是無效的JSON,同時保留原始格式錯誤的資料以供除錯目的。
包裝無效JSON時,請確保正確轉義無效JSON字串中的任何引號或特殊字元,以維持包裝物件中的有效JSON結構。