← 学習メニュー

CCDV-F 練習問題 21

CCDV-F

ストリーミングでツールを使う処理を自前で実装しています。ツールの引数が input_json_delta のイベントで少しずつ届くため、イベントを受け取るたびに partial_json を json.loads で解析していますが、ほとんどのイベントで解析エラーになります。最も適切な修正はどれですか。

スポンサーリンク
1つ選択してください

選択肢を押して回答

正解と解説

正解: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・非同期・バージョン管理・レビュー)

参考資料(公式ドキュメント)

公開資料をもとにした独自解説です。本番の問題・難易度・合否を再現するものではありません。