細粒度ツールストリーミングはベータ機能です。本番環境で使用する前に、必ずレスポンスを評価してください。モデルレスポンスの品質、API自体、またはドキュメントの品質についてのフィードバックを提供するには、このフォームをご利用ください。皆様からのご意見をお待ちしております!
細粒度ツールストリーミングを使用する際、無効または部分的なJSON入力を受信する可能性があります。コードでこれらのエッジケースを考慮するようにしてください。
細粒度ツールストリーミングの使用方法
このベータ機能を使用するには、ツール使用リクエストにベータヘッダーfine-grained-tool-streaming-2025-05-14
を追加し、ストリーミングを有効にするだけです。
APIで細粒度ツールストリーミングを使用する例を以下に示します:
lines_of_text
パラメータが有効なJSONかどうかを検証するためのバッファリングなしで、長い詩の行をツール呼び出しmake_file
にストリーミングできます。これにより、パラメータ全体のバッファリングと検証を待つことなく、到着時にパラメータストリームを確認できます。
細粒度ツールストリーミングでは、ツール使用チャンクのストリーミング開始が速くなり、多くの場合より長く、単語の区切りが少なくなります。これはチャンキング動作の違いによるものです。例:細粒度ストリーミングなし(15秒の遅延):細粒度ストリーミングあり(3秒の遅延):
細粒度ストリーミングはバッファリングやJSON検証なしでパラメータを送信するため、結果のストリームが有効なJSON文字列で完了する保証はありません。
特に、停止理由
max_tokens
に達した場合、ストリームはパラメータの途中で終了し、不完全になる可能性があります。一般的に、max_tokens
に達した場合を処理するための特別なサポートを記述する必要があります。ツールレスポンスでの無効なJSONの処理
細粒度ツールストリーミングを使用する際、モデルから無効または不完全なJSONを受信する可能性があります。この無効なJSONをエラーレスポンスブロックでモデルに戻す必要がある場合は、適切な処理を確保するためにJSONオブジェクトでラップできます(適切なキーを使用)。例:無効なJSONをラップする際は、ラッパーオブジェクトで有効なJSON構造を維持するために、無効なJSON文字列内の引用符や特殊文字を適切にエスケープしてください。