Databricks Certified Generative AI Engineer Associate 無料問題 1 / 10 ・ 分野1: Design Applications
Foundation Model APIs のチャットモデル(databricks-gpt-oss-20b)に、response_format の type を json_schema にして渡し、問い合わせのメールから受付票の JSON を作らせる。スキーマの書き方のうち、Foundation Model APIs が対応しているものはどれか。
- 備考の項目の type を ["string", "null"] と書き、無いときは null にする
- 住所の形を1か所に定義しておき、送り先と請求先の両方の項目から $ref で参照して使い回す
- 連絡先の項目を anyOf で「電話番号の形」と「メールの形」の2通りに分けて書いておく
- 郵便番号の項目に pattern で「3桁-4桁」の正規表現を書いておき、形そのものをスキーマで縛る
正解と解説を見る
正解: A
正解の理由
Foundation Model APIs は OpenAI が受け付ける structured outputs に広く対応するが、JSON スキーマの仕様は一部だけを受け付ける。単純なスキーマのほうが質の高い JSON を生成できる、というのがその理由である。対応しないものとして、pattern の正規表現、anyOf・oneOf・allOf・prefixItems・$ref による入れ子や組み合わせ、型の並び(リスト)が挙がっている。ただし型の並びには例外があり、[type, "null"] のように、1つが有効な JSON の型でもう1つが "null" の組だけは書ける。値が無いことのある備考の項目を ["string", "null"] にする書き方は、この例外に当たる。
違う選択肢
「郵便番号の項目に pattern で「3桁-4桁」の正規表現を書いておき、形そのものをスキーマで縛る」… pattern による正規表現は、対応していないキーとして名前が挙がっている。OpenAI の書き方をそのまま持ち込むと、この項目は Foundation Model APIs では使えない。郵便番号の形は、受け取った後の検査で確かめる。
「連絡先の項目を anyOf で「電話番号の形」と「メールの形」の2通りに分けて書いておく」… anyOf・oneOf・allOf・prefixItems のような、スキーマを組み合わせて検証する書き方は対応しないとされている。2通りの形を1つの項目に持たせたいときは、電話番号の項目とメールの項目を別々に置く。
「住所の形を1か所に定義しておき、送り先と請求先の両方の項目から $ref で参照して使い回す」… $ref による参照も、対応しないキーの一覧に入っている。送り先と請求先の住所は、それぞれの項目の中に同じ形を書き並べる必要がある。
押さえどころ
OpenAI の API 向けに書いたスキーマを持ち込むときに、つまずきやすい点である。形の縛り(正規表現)・2通りの形・定義の使い回しは、スキーマの外で受け持つ。たとえば、受け取った後の検査に回すか、項目を分けて平らに書く。
Databricks Certified Generative AI Engineer Associateの演習アプリ(無料10問・全問は解錠で)へ