AI Prompt Engineering · レッスン

マルチモーダル出力の制御

複数メディアを含む応答の形式を整えます。

レッスン 4/413 ステップ

「マルチモーダル出力の制御」はCoddyKit上の無料AI Prompt Engineeringレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAI Prompt Engineering学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AI Prompt Engineeringコースには全4レッスンが含まれています。

混合メディア出力の制御

出力制御とは、回答がテキスト、構造化データ、生成または選択されたメディアへの参照にまたがるとき、応答がどのような形式になるかを形作る技法です。モデルは文章をデフォルトにしますが、本番システムには、解析、描画、組み合わせが可能な成果物が必要です。

  • 単に質問するのではなく、レンダリング契約を指定します。
  • 形式の豊富さよりも形式の信頼性が重要です。予測可能な形が優先されます。

コンテンツとプレゼンテーションの分離

モデルには構造化コンテンツを出力させ、メディアは自分の側でレンダリングします。テキストモデルに画像の生バイト列やマークアップの多いレイアウトを出力させるのは脆弱です。一方、レンダラーがメディアに変換できる型付きの説明を求める方法は堅牢です。

モデルが決めるのは何を出すかであり、パイプラインが決めるのはどのように見せるかです。

block = {
  'type': 'figure',
  'caption': 'Quarterly revenue',
  'chart': {'kind': 'bar', 'x': ['Q1','Q2'], 'y': [10, 14]},
  'alt_text': 'Bar chart rising from 10 to 14.'
}

ブロック型のレスポンススキーマ

リッチなレスポンスを、型付きブロックの順序付きリストとしてモデル化します。ブロックの型は text、code、image_ref、table、chart_spec です。各ブロックには、その型に必要なフィールドだけを持たせます。レンダラーはリストを走査し、型ごとに適切なコンポーネントを出力します。

これにより、チャットUI、レポート、スライド生成ツールは、何千ものレスポンスに対しても信頼性を維持できます。

schema = {
  'blocks': [
    {'type': 'text', 'value': '...'},
    {'type': 'code', 'lang': 'python', 'value': '...'},
    {'type': 'image_ref', 'id': 'fig1', 'alt': '...'},
    {'type': 'table', 'columns': [...], 'rows': [...]}
  ]
}

メディアの参照と埋め込み

埋め込みよりも参照を優先します。モデルはIDまたは生成仕様を出力し、システムがそれを実際のアセットに解決します。これにより言語処理の段階とメディア処理の段階が分離され、再プロンプトなしでアセットをキャッシュ、再生成、交換できます。

  • 埋め込み:レスポンスがアセットをインラインで保持します(重く、脆弱です)。
  • 参照:レスポンスがポインターまたはレシピを保持します(軽量で、組み合わせやすいです)。
image_block = {
  'type': 'image_ref',
  'spec': {'prompt': 'minimal line icon of a gear', 'size': '512x512'},
  'alt': 'Settings gear icon'
}
# Pipeline calls the image model with spec, fills in the URL.

生成仕様の制約

モデルが下流の生成ツール(画像、チャート、TTS)向けの仕様を書く場合は、その仕様を厳密に制約します。自由記述の仕様はぶれますが、列挙された選択肢ならブランドと予算を守れます。

使用できる語彙をモデルに与えます。たとえば、許可するチャートの種類、画像スタイル、音声を定義し、自由形式での逸脱を禁止します。

chart_spec = {
  'kind': 'one of [bar, line, scatter]',   # enumerated
  'palette': 'brand_default',               # not a hex free-for-all
  'max_series': 4
}

必須のアクセシビリティフィールド

すべてのメディアブロックにはaltテキストまたは文字起こしフィールドを持たせ、スキーマ上で必須にします。これはアクセシビリティ要件であると同時に、検証の手がかりでもあります。altテキストから、メディアで伝えることをモデルが意図した内容が分かるため、それを仕様と照合できます。

インターリーブの順序とレイアウト意図

ブロックの順序がレイアウトになります。モデルが説明文より先にチャートを返すと、レンダリングされた文書は正しく読めません。レイアウトの意図を明記します。「説明文は、それが説明する図より前に置き、図の直後には必ず1行の要点を置く」と指定します。

読み上げ順のルールをエンコードし、ブロックのリストが一貫した物語としてレンダリングされるようにします。

ブロックごとの長さと密度の予算

冗長さは全体ではなく、ブロック単位で制御します。キャプションは1行、セクションの導入は短い段落、テーブルは最大N行とします。ブロックごとの予算により、モデルが1つのコンポーネントだけを膨張させ、別のコンポーネントを犠牲にすることを防げます。

  • 「キャプション:最大12語」
  • 「テーブル:最大8行。残りは最後の行に要約する」
limits = {'caption_words': 12, 'table_rows': 8, 'intro_sentences': 3}

検証と修復のループ

混合メディアスキーマの品質は、バリデーター次第です。ブロックのリストを解析し、各ブロックを型のスキーマに照らして検証します。失敗した場合は、違反箇所を正確に示した対象を絞った修復プロンプトを発行します。

再生成よりも修復が優れています。レスポンス全体を再要求するとトークンを無駄にし、正しかった部分まで壊す可能性があります。

def validate(blocks):
    for b in blocks:
        if b['type'] == 'image_ref' and 'alt' not in b:
            return f'Block {b} missing required alt text'
    return None  # ok

混合メディアのストリーミング

ストリーミングでは、UIがレスポンス全体を待たず、各ブロックの完了時にそれぞれをレンダリングできるよう、ブロックを個別に解析可能にする必要があります。最後の角括弧が来るまで無効な巨大な配列を1つ出力するのではなく、ブロックごとに整形式のJSONオブジェクトを1つずつ、改行区切りで出力します。

ブロック単位のストリーミングにより、応答性の高いUIと早期検証が実現します。

{'type': 'text', 'value': 'Revenue grew this quarter.'}
{'type': 'chart_spec', 'kind': 'bar', 'x': ['Q1','Q2'], 'y': [10,14], 'alt': '...'}
{'type': 'text', 'value': 'The bulk came from new accounts.'}

出力制御の契約

完全な混合メディア契約では、型付きブロックの語彙、埋め込みではなく参照を使うこと、列挙された生成仕様、必須のaltテキストまたは文字起こし、読み上げ順のルール、ブロックごとの予算、ストリーミングに適したシリアライズ方式を指定します。これを再利用可能なシステムブロックとしてまとめると、レンダラーはさまざまなタスクで安定した出力先になります。

クイックチェック

段落、テーブル、図を組み合わせたレスポンスを、自分のフロントエンドでレンダリングするレポート生成ツールを構築しています。

まとめ:混合メディアレスポンスの設計

リッチな出力をレンダリング契約として扱います。つまり、型付きブロックの語彙、埋め込みではなく参照または制約付き生成仕様としてのメディア、必須のaltテキストまたは文字起こしフィールド、明示的な読み上げ順とブロックごとの予算、そして検証と修復を備えたストリーミング向けのシリアライズ方式です。モデルが決める内容とパイプラインがレンダリングする方法を分離すれば、混合メディアレスポンスは予測可能で、監査可能かつ組み合わせやすくなります。

無料で開始

AI チューターと学ぶ AI Prompt Engineering — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
53
レッスン
199

よくある質問

「マルチモーダル出力の制御」レッスンは無料ですか?

はい。「マルチモーダル出力の制御」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AI Prompt Engineeringコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AI Prompt Engineeringコースには全4レッスンが含まれています。

「マルチモーダル出力の制御」で何を学びますか?

複数メディアを含む応答の形式を整えます。 ブラウザで直接実行するハンズオンコードでAI Prompt Engineeringを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

AI Prompt Engineeringを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのAI Prompt Engineeringは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「マルチモーダル出力の制御」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このAI Prompt Engineeringレッスンでコードを書いて実行できますか?

はい。すべてのAI Prompt Engineeringレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. テキストと画像の組み合わせ
  2. モダリティをまたぐグラウンディング
  3. 音声、テキスト、画像の統合
  4. マルチモーダル出力の制御
← AI Prompt Engineeringに戻る