← 学習メニュー
CCDV-F 練習問題 21
CCDV-F
ストリーミングでツールを使う処理を自前で実装しています。ツールの引数が input_json_delta のイベントで少しずつ届くため、イベントを受け取るたびに partial_json を json.loads で解析していますが、ほとんどのイベントで解析エラーになります。最も適切な修正はどれですか。
スポンサーリンク
選択肢を押して回答
正解と解説
正解:C
判断のポイント
ストリーミングでは、ツールの引数が input_json_delta の partial_json として分割して届きます。ブロックの終わりまで連結してから解析します。
A. 解析に失敗した partial_json は捨て、解析に成功したイベントの値だけを引数として使う(不正解)
途中の断片は単独では JSON として成り立たないため、捨てると引数の大部分を失います。
B. input_json_delta は不完全なデータなので受け取りを無視し、引数は空のままツールを実行する(不正解)
引数のないツールの実行は、誤った結果や失敗につながります。
C. partial_json をブロックごとに連結し、ブロックの終了後にまとめて解析する(正解)
ツールの引数は、部分的な JSON 文字列に分割されて届きます。同じ content block の partial_json を順に連結し、ブロックが終わった(content_block_stop)時点で解析します。公式の SDK には、届いた分を累積する仕組みもあります。
D. ツールの引数が途中で切れないよう、max_tokens を大きくしてからもう一度送り直す(不正解)
引数が分割して届くのはストリーミングの仕様で、出力の上限とは関係がありません。
出題範囲:CCDV-F 分野2「アプリケーションと連携」・項目2.4 ソフトウェア工学の基礎(REST・JSON・非同期・バージョン管理・レビュー)
参考資料(公式ドキュメント)
公開資料をもとにした独自解説です。本番の問題・難易度・合否を再現するものではありません。
