変更要約: 各節に図(figure)を追加=cert-figure-retrofit。AI-103 第2章を新規作成(生成AIアプリ=Foundry SDK でチャット補完/システムメッセージ/生成パラメーター/ストリーミング/構造化出力・関数呼び出し/安全フィルター、RAG 実装=埋め込み/ベクトル検索/Azure AI Search インデックス/チャンク/ハイブリッド検索/検索→文脈付与→生成→出典/評価=グラウンデッドネス・関連性)
2.1生成 AI アプリの実装
Foundry SDK でデプロイ済みモデルを呼び出し、チャット補完・システムメッセージ・生成パラメーター・ストリーミング・構造化出力(関数呼び出し)を使って生成 AI アプリを実装する流れと、安全フィルター(ガードレール)の組み込みを理解します。
生成 AI アプリの中心は、デプロイ済みモデルへの チャット補完(chat completion)呼び出しです。Foundry SDK(主に Python)で「クライアントを作る(エンドポイント+マネージド ID 認証)→ メッセージ配列を送る → 応答を受け取る」のが基本形。メッセージ配列は、役割を固定する システムメッセージ と、その都度の ユーザーメッセージ、必要なら過去のやり取り(履歴)で構成します。AI-103 では、この基本フローに生成パラメーター・ストリーミング・構造化出力・安全フィルターを組み合わせて実装する力が問われます。
2.1.1生成パラメーターとストリーミング
応答は temperature(低=安定/正確、高=多様/創造)や 最大トークン数(出力長の上限)で調整します。応答が長い場合、ストリーミング(streaming)を使うと、生成され次第トークンを逐次返せるため、ユーザー体感のレイテンシを大きく改善できます。チャット UI ではストリーミングが標準的な選択です。なお、入力+出力のトークン数が課金・コンテキスト長に影響する点は計画段階(第1章)と同じです。
2.1.2構造化出力と関数呼び出し
アプリにモデルの出力をプログラムで扱える形で取り込みたい場合、自由文ではなく 構造化出力(JSON など決まったスキーマ)を要求します。さらに 関数呼び出し(function/tool calling)を使うと、モデルが「この関数を・この引数で呼ぶべき」という指示を構造化して返し、アプリ側が実際の関数(在庫検索・予約 API など)を実行できます。これはエージェント(第3章)の基盤となる仕組みです。開発者は、関数の名前・引数スキーマ・説明を登録し、返ってきた呼び出し要求を検証してから実行します。
2.1.3安全フィルター(ガードレール)
本番アプリには 安全フィルター(コンテンツフィルター/ガードレール)を組み込みます。Foundry のデプロイには Azure AI Content Safety ベースのフィルターを構成でき、入力・出力の双方で暴力・憎悪・性的・自傷などのカテゴリをしきい値で検出・ブロックします。加えて、プロンプトインジェクション(入力で指示を乗っ取る攻撃)への対策として、システム指示の保護や入力検証を行います。これらは「あれば良い」ではなく本番の必須要件です。
頻出:
①「アプリからモデルを呼ぶ」=Foundry SDK でチャット補完(エンドポイント+マネージド ID)。
②「長い応答の体感を速く」=ストリーミング。
③「出力をプログラムで扱う/外部関数を呼ぶ」=構造化出力・関数呼び出し。
④「有害な入出力をブロック」=Content Safety ベースの安全フィルター。
⑤「役割固定」=システムメッセージ、「安定/正確」=低 temperature。
混同・注意:
①システムメッセージ(役割の土台)とユーザーメッセージ(都度の依頼)は別。
②ストリーミングは体感レイテンシ改善であり、総トークン数や課金を減らすわけではない。
③関数呼び出しはモデルが「呼ぶべき関数と引数」を返すだけ——実際の実行と検証はアプリ側の責任。
④安全フィルターは入力・出力の両方に効かせる。
カスタムモデルの学習やファインチューニング、MLOps が必要な場面では Azure Machine Learning を使います。Azure AI Foundry が生成 AI アプリの構築・評価・運用の中心である一方、独自データでの学習・パイプライン・モデル管理は Azure Machine Learning が担います。
2.1.4この節のまとめ
- 基本形:Foundry SDK でクライアント作成(エンドポイント+マネージド ID)→ メッセージ送信 → 応答受信
- 調整:temperature/最大トークン数、長応答はストリーミングで体感改善
- 構造化出力・関数呼び出しでプログラム連携(エージェントの基盤)
- Content Safety ベースの安全フィルターを入出力に+プロンプトインジェクション対策(本番必須)
進捗の記録にはログインが必要です。
理解度チェック
(軽い確認用)Q1. デプロイ済みモデルをアプリのコードから呼び出して生成 AI 機能を実装するのに使うのはどれですか?
Q2. 長い応答でユーザーの体感レイテンシを改善するために使うのはどれですか?
Q3. モデルが「呼ぶべき関数と引数」を構造化して返し、アプリが外部機能を実行できるようにする仕組みはどれですか?
Q4. 本番の生成 AI アプリで有害な入力・出力を検出・ブロックする安全フィルターの基盤となるのはどれですか?
Q5. モデルの出力をアプリでプログラム的に確実に扱えるようにするには、何を要求するのが適切ですか?
Q6. 関数呼び出しを使う際の開発者の責任として正しいものはどれですか?

