
Azure OpenAI Serviceを導入しても、同じモデルを使えば自動的に業務に適した回答が得られるわけではありません。業務アプリとして安定して使うには、利用者が入力する質問文だけでなく、アプリ側の固定指示、参照情報、出力形式、評価方法まで含めて設計する必要があります。
一方で、「役割を与える」「具体的に書く」「思考手順を細かく指定する」といった従来型のプロンプトテクニックを、すべてのモデルへ機械的に当てはめるのも適切ではありません。Microsoftの現行ドキュメントでは、一般的な従来型のプロンプトエンジニアリング手法はGPT-5シリーズやo-seriesなどの推論モデルには推奨されないと案内されています。
そのため重要なのは、プロンプトを単なる「質問文」ではなく、生成AIアプリの振る舞いを決める仕様の一部として扱うことです。本記事では、Azure OpenAI Serviceのプロンプトの基本から、RAG・Structured Outputs・ファインチューニングとの使い分け、モデル別の設計、業務テンプレート、評価、セキュリティ、本番運用まで一続きで整理します。
最終的なゴールは、一度だけ良い回答を出すことではありません。複数の利用者、複数の入力、モデル変更後でも、一定の品質を再現できる仕組みを作ることです。
- Azure OpenAI Serviceのプロンプトとは|アプリの振る舞いを決める指示情報
- Azure OpenAI ServiceのプロンプトとChatGPT・RAG・ファインチューニングの違い
- Azure OpenAI Serviceで精度を高めるプロンプトの基本設計
- GPT-5シリーズ・o-seriesを含むAzure OpenAI Serviceのモデル別プロンプト設計
- Azure OpenAI Serviceの業務別プロンプトテンプレート4選
- Azure OpenAI Serviceのプロンプトを本番運用へ移すための管理・コスト最適化
- Azure OpenAI Serviceのプロンプト設計で起きる失敗要因と対策
- Azure OpenAI Serviceのプロンプトを業務へ組み込む5ステップ
- Azure OpenAI Serviceのプロンプト活用事例
- Azure OpenAI Serviceのプロンプト改善範囲を判断する基準
- AI導入支援は「フリーコンサルタント.jp」へご相談ください
- まとめ
Azure OpenAI Serviceのプロンプトとは|アプリの振る舞いを決める指示情報
Azure OpenAI Serviceにおけるプロンプトは、利用者が入力する質問文だけを指すものではありません。企業の業務システムでは、役割、背景情報、対象データ、制約、出力条件、回答例などを組み合わせて、モデルへ「何を、どの条件で、どのように実行してほしいか」を伝えます。
質問文だけに限定しないプロンプト設計
「この文章を要約して」という1文もプロンプトです。ただし、社内業務へ組み込む場合は、それだけでは回答品質が利用者の入力スキルに左右されます。
たとえば社内FAQであれば、次の情報まで設計対象になります。
・誰として回答するか
・どの情報を根拠にするか
・対象外の質問をどう扱うか
・情報がない場合にどう返すか
・回答をどの形式で返すか
Azure OpenAI Serviceでは、これらをアプリケーション側の固定指示として組み込めます。個人利用から業務システムへ進むほど、「良い質問を書くこと」より「変わらないルールをアプリ側へ固定すること」の重要性が高まります。
system・developer・user・assistantの役割分担
チャット型のAPIでは、用途に応じて複数のロールへ情報を分けます。一般的には、固定したい指示をsystemまたはdeveloper側、利用者ごとに変わる依頼をuser側、過去のモデル回答やFew-shotの回答例をassistant側へ置く考え方です。
たとえば社内FAQなら、「社内規程のみを根拠にする」「根拠がない場合は確認できないと返す」といった共通ルールを固定側へ置き、「育児休業の申請期限を教えて」といった質問をuser側へ渡します。
すべてを1つのuserメッセージへ連結するより、変わらないルールと毎回変わる入力を分けた方が、修正箇所と評価対象を管理しやすくなります。ただし、対応ロールや推奨構成はモデルやAPIによって異なります。たとえばMicrosoftの推論モデル向け例ではdeveloperロールがシステム相当の指示として使われているため、ロール構成を全モデル共通の固定仕様にせず、利用モデルの現行API仕様を確認することが必要です。
| ロール | 主な役割 | 固定・可変の目安 | 社内FAQでの例 |
|---|---|---|---|
| system | アシスタント全体の役割・境界・回答方針 | 固定 | 社内規程だけを根拠に回答する |
| developer | アプリ側で維持したい開発者指示。モデル・APIに応じてsystem相当として利用 | 固定 | 根拠がない場合は推測しない |
| user | 利用者ごとに変わる依頼・入力 | 可変 | 育児休業の申請期限を教えて |
| assistant | 過去の回答、会話履歴、Few-shotの回答例など | 可変/例として固定する場合あり | 理想的な回答例を提示する |
出典:Microsoft Learn:高度なプロンプトエンジニアリング、Microsoft Learn:推論モデルの使用方法
Azure OpenAI ServiceのプロンプトとChatGPT・RAG・ファインチューニングの違い
プロンプト改善だけで解決できない問題まで文章の工夫で直そうとすると、プロンプトが長くなり、保守も難しくなります。まず「何が原因で回答品質が悪いのか」を切り分け、プロンプト、RAG、Structured Outputs、ファインチューニングの役割を分けることが重要です。
ChatGPT의 都度入力とAzure OpenAI Serviceのアプリ設計の違い
自然言語で目的や条件を明確に伝えるという基本は、ChatGPTの利用でもAzure OpenAI Serviceでも共通します。違いは、業務アプリでは利用者の入力だけでなく、アプリ側の固定指示、参照情報、出力仕様、モデル設定、ガードレールなどをあらかじめ設計できる点です。
たとえばChatGPTを個人で使う場合、担当者が毎回「あなたは人事担当者です」と入力する運用でも成立します。一方、社内FAQアプリでは、役割や禁止事項をアプリ側へ固定し、誰が使っても同じルールが適用される方が再現性を確保しやすくなります。
つまり、ChatGPTでのプロンプト利用を「AIへの質問テクニック」とするなら、Azure OpenAI Serviceを組み込んだ業務アプリでは、プロンプトを生成AIアプリの仕様として管理する視点が必要です。
| 比較軸 | ChatGPTでの都度利用 | Azure OpenAIを組み込んだ業務アプリ |
|---|---|---|
| 指示の主体 | 利用者が都度入力する比重が高い | アプリ側の固定指示+利用者入力 |
| 再利用 | 個人のテンプレートや設定で再利用 | システム仕様として共通化しやすい |
| 利用者差 | 入力スキルで差が出やすい | UI・固定ルールで差を抑えやすい |
| 評価 | 個人の目視になりやすい | テストセット・ログで継続評価可能 |
| システム連携 | 手作業中心の利用も可能 | API、RAG、業務システムと連携 |
| 管理方法 | 個人利用単位になりやすい | モデル・プロンプト・設定をバージョン管理 |
プロンプト・RAG・Structured Outputs・ファインチューニングの改善対象
4つの手段は、改善する対象が異なります。
プロンプト設計は、「モデルへ何をしてほしいか」を明確にする手段です。目的、制約、回答方針、例、出力条件などを整えます。
RAG(Retrieval-Augmented Generation:検索拡張生成)は、社内文書や更新頻度の高い情報などを検索し、回答時にモデルへ渡す仕組みです。モデルが元から持っていない独自情報や、最新情報を根拠に回答させたい場合に向きます。
Structured Outputsは、JSON SchemaをAPI側で与え、出力を指定した構造へ準拠させる仕組みです。Microsoft Learnでは、従来のJSON modeが有効なJSONを保証する一方、Structured Outputsは指定スキーマへの厳格な準拠を目的とする機能として説明されています。
ファインチューニングは、高品質な学習例を使ってモデル自体を特定タスクへ適応させる方法です。プロンプトや少数例では安定しにくい特定動作を、多数の例から学習させたい場合に検討します。
一次判断は次のように整理できます。
・答え方や指示解釈が悪い:プロンプト
・必要な知識が足りない:RAG
・JSONなどの構造が崩れる:Structured Outputs
・多数の例から特定動作を定着させたい:ファインチューニング
これらは排他的ではありません。RAGで取得した社内情報を、プロンプトで「参照情報だけを根拠に回答する」と制御し、Structured Outputsで構造化データへ変換するなど、組み合わせて利用できます。
| 手段 | 解決する問題 | 主な入力データ | 実装負荷の目安 | 更新性 | 向く用途 |
|---|---|---|---|---|---|
| プロンプト設計 | 指示解釈、回答方針、粒度 | 指示、背景、例 | 低 | 高 | 要約、文書作成、分類 |
| RAG | 独自情報・最新情報の不足 | 社内文書、DB、検索結果 | 中 | 高 | 社内FAQ、文書検索 |
| Structured Outputs | JSON等の構造崩れ | JSON Schema | 中 | 高 | 情報抽出、システム連携 |
| ファインチューニング | 特定タスク・振る舞いの定着 | 多数の高品質な学習例 | 高 | 学習・再評価が必要 | 特定分類、定型スタイル、専門タスク |
出典:Microsoft Learn:LLMのカスタマイズ、Microsoft Learn:RAGとファインチューニングの使い分け、Microsoft Learn:Structured Outputs
Azure OpenAI Serviceで精度を高めるプロンプトの基本設計
プロンプトは長く書くほど高精度になるわけではありません。業務で再利用しやすい形にするには、「目的」「コンテキスト」「制約」「出力仕様」の4つへ分け、必要な情報だけを具体化します。
目的・役割・完了条件の固定
最初に明確にしたいのは、「誰のために」「何を作り」「どの状態なら完了か」です。「あなたは○○です」と役割だけを与えても、成果物の基準が曖昧なら回答は安定しません。
悪い例:
営業メールを書いて。
改善例:
法人営業担当者として、過去6か月取引のない既存顧客へ商談再開を促すメールを作成する。対象は部長職。300字以内で、過度な売り込み表現を避け、最後に30分の打ち合わせ候補日の確認を入れる。
このように、目的、対象者、成果物、完了条件を分けて書くと、何を満たせば良い回答なのかを評価しやすくなります。ペルソナや肩書きは、回答品質に必要な場合だけ追加します。
Microsoftのシステムメッセージ設計でも、明確な指示、競合するルールの回避、情報不足時のフォールバック動作が重要とされています。
判断に必要なコンテキストの具体化
次に、モデルがタスクを実行するために必要な前提情報を渡します。顧客条件、処理対象の文章、社内ルール、過去データなどのうち、回答判断に必要なものだけを選びます。
ここでは「背景」と「処理対象データ」を分けることが重要です。たとえば文章要約なら、背景として「役員会議前に5分で確認する」、処理対象として会議議事録そのものを別ブロックに置きます。ルールと素材を同じ文章へ混ぜると、どこまでが指示でどこからが処理対象か分かりにくくなります。
社内規程や製品情報など、量が多い、または頻繁に更新される情報は、巨大なシステムプロンプトへ貼り続けるのではなくRAGを検討します。RAGを使う場合も、「参照情報のみを根拠にする」「根拠がない場合は推測しない」といった回答方針はプロンプト側で定義します。
制約・禁止事項・不明時動作の明示
業務利用では、正常に答えられるケースだけでなく、情報不足、対象外質問、禁止対象でも意図した動作を再現できることが重要です。
プロンプトには、必要に応じて次の条件を記載します。
・文字数や項目数
・回答対象の範囲
・利用してよい情報源
・出してはいけない情報
・根拠がない場合の返し方
・不足情報がある場合の確認方法
たとえば社内FAQなら、「参照情報で確認できない場合は推測せず、『確認できません』と返す」「質問に必要な前提が不足している場合は不足項目を1つずつ確認する」といった失敗時の動作まで仕様にします。
また、「簡潔に、かつすべて詳細に説明する」のような競合する指示は避めます。Microsoftのシステムメッセージ設計でも、優先順位のない競合指示は典型的な落とし穴として挙げられています。
通常時だけでなく、失敗時の振る舞いまで決めて初めて、業務用プロンプトとして評価可能になります。
出力形式・評価基準・回答例の指定
回答内容が正しくても、見出し構造や項目名が毎回違えば、そのまま業務へ組み込みにくくなります。後工程で必要な成果物の形までプロンプトに含めます。
たとえば、次のように指定します。
・見出しは「要点」「根拠」「次の対応」の3つ
・各項目は箇造書き3点以内
・数値と期限は省略しない
・原文にない情報は補完しない
・根拠が確認できない内容は「未確認」と記載
さらに、「良い回答」の条件を正確性、簡潔さ、根拠明示、対象読者への分かりやすさなどへ分けておくと、後の評価にも使えます。
説明だけでは出力パターンを伝えにくい場合は、入力例と理想回答のFew-shotを加えます。ただし、機械処理するJSONなど厳格な形式が必要な場合は、自然言語の指定だけへ依存せずStructured Outputsを検討します。
【汎用プロンプトテンプレート】
[目的]
あなたの役割:[役割]
対象読者:[対象者]
成果物:[作成物]
完了条件:[満たす条件]
[コンテキスト]
背景:[業務背景]
処理対象:[対象データ]
参照情報:[利用可能な情報]
[制約]
・[必須ルール]
・[禁止事項]
・情報不足時:[動作]
[出力仕様]
・形式:[見出し/箇条書き/項目名など]
・分量:[文字数等]
・評価条件:[正確性/根拠/簡潔さ等]
出典:Microsoft Learn:システムメッセージ設計
GPT-5シリーズ・o-seriesを含むAzure OpenAI Serviceのモデル別プロンプト設計
Azure OpenAI Serviceでは、モデルごとに推奨される指示方法や利用できる設定が異なります。過去にGPT-4系などで効果があったプロンプトを「標準テンプレート」として固定し、新しいモデルへそのまま流用する運用は避めます。
従来型プロンプト手法の推論モデルへの機械的流用の回避
Microsoft Learnの現行「Prompt engineering techniques」では、掲載されている一般的なプロンプトエンジニアリング手法について、GPT-5やo-seriesなどの推論モデルには推奨されないと明記されています。また、Chain of Thoughtを引き出す手法は非推論モデル向けとされています。
そのため、「思考手順を必ず10段階で書く」「Chain of Thoughtを出力する」といったテクニックを、推論モデル向けの共通テンプレートへ無条件に組み込むべきではありません。
推論モデルでは、まず目的、必要条件、成果物、利用できる情報を明確に伝え、モデルが持つ推論能力を活かす設計を起点にします。旧モデルで高評価だったプロンプトを新モデルへ移行する場合も、同じ評価セットで旧モデルと新モデルを比較してから本番へ切り替えることが重要です。
reasoning effortなどモデル設定と文章指示の役割分担
推論モデルでは、モデルやバージョンによってreasoning effortなどの設定が用意されています。MicrosoftのGPT-5向け例でも、reasoning_effortをAPIパラメータとして指定する例が示されています。
ここでは、「何を考えてほしいか」と「どの程度の推論リソースを使うか」を分けて考えます。
・プロンプト:目的、判断条件、利用可能な情報、成果物
・モデル設定:対応モデルでのreasoning effortなど
単純な分類や要約と、複雑な計画や比較では必要な推論量が同じとは限りません。設定を高くすれば常に適切になるわけではないため、品質だけでなく速度とコストも合わせて測定します。
利用できる設定や値はモデル世代・APIによって変わります。固定値を社内標準へ埋め込むのではなく、対象モデルの公式仕様と評価結果を基準に決めます。
モデル変更時の代表タスクによる回帰評価
モデル変更は、プロンプトだけの差し替えではなく、「モデル+プロンプト+参照データ+出力設定」の組み合わせ変更として扱います。
評価セットには、通常の成功ケースだけでなく、次の入力も含めます。
・曖昧な依頼
・情報不足
・長文入力
・対象外の質問
・拒否すべき質問
・形式が崩れやすい入力
評価項目も「正答」だけでは不十分です。指示遵守、根拠, 形式、拒否すべきケースでの動作などへ分けます。
Microsoft FoundryのEvaluationでは、テストデータに対してモデルやエージェントを実行し、組み込みまたはカスタムの評価指標で品質・安全性を測定できます。少数の目視確認だけで終わらせず、運用規模に応じて自動評価を組み込むことも選択肢です。
出典:Microsoft Learn:プロンプトエンジニアリングの概念、Microsoft Learn:推論モデルの使用方法
Azure OpenAI Serviceの業務別プロンプトテンプレート4選
ここでは、企業でPoCしやすい「要約」「社内FAQ」「情報抽出」「文書作成」の4用途を取り上げます。完成文を丸暗記するのではなく、変数として差し替える部分と、固定するルールを分けて使うことがポイントです。
要約|重要事項・根拠・未確認事項を分けるテンプレート
「短くまとめて」だけでは、利用者が必要とする数値、期限、決定事項まで削られることがあります。要約では、何を残すかを先に定義します。
【コピーテンプレート】
[目的]
[対象読者]が[利用場面]で短時間に内容を確認できる要約を作成する。
[処理対象]
[対象文書]
[必須項目]
・重要事項
・数値・期限
・決定事項
・未確認事項
[制約]
・原文にない情報を補完しない
・判断できない内容は「未確認事項」へ分ける
・重要な数値、固有名詞、期限を省略しない
[出力仕様]
[文字数]以内
「重要事項」「数値・期限」「決定事項」「未確認事項」の順で出力する
変更する箇所は、[対象読者][利用場面][対象文書][文字数]です。たとえば経営会議前の確認用途なら、「役員が5分で確認できる」「数値・期限を必ず残す」といった条件へ置き換えます。
社内FAQ|参照情報にない内容を推測させないテンプレート
社内FAQでは、RAGで情報を渡すだけではなく、「取得した情報をどう使って回答するか」をプロンプトで決めます。
【コピーテンプレート】
[役割]
あなたは[社内制度/製品/業務]のFAQアシスタントです。
[回答ルール]
・以下の参照情報のみを根拠に回答する
・参照情報に根拠がない場合は推測しない
・根拠が確認できない場合は「参照情報では確認できません」と返す
・規程や文書間で内容が競合する場合は、勝手に優先順位を決めず競合している事実を示す
[参照情報]
[RAGで取得した文書]
[ユーザー質問]
[質問]
[出力]
回答:
根拠:[文書名・該当箇所]
不足情報:
RAGは情報を検索してモデルへ与える仕組みであり、回答方針そのものを決めるものではありません。「検索で何を渡すか」と「渡された情報をどう使うか」を分けて設計することが重要です。
情報抽出|Structured Outputsと組み合わせるテンプレート
契約書や申請書から項目を抽出する処理では、プロンプトは「何をどう解釈するか」、Structured Outputsは「どの構造で返すか」を担当させます。
たとえば契約書から、契約先、契約開始日、終了日、自動更新の有無、解約期限を抽出する場合は次のようにします。
【コピーテンプレート】
[目的]
以下の契約書から指定項目を抽出する。
[抽出ルール]
・契約先:契約当事者の法人名
・契約開始日:契約の効力が開始する日
・終了日:契約期間の終了日
・自動更新:自動更新条項がある場合はtrue、ない場合はfalse
・解約期限:更新拒絶または解約通知の期限
[制約]
・記載がない値を推測しない
・複数の候補がある場合は勝手に1つへ決めない
・値がない場合はnullとして扱う
[対象文書]
[契約書本文]
出力構造を後段システムで厳格に使う場合は、JSON例を文章として見せるだけでなく、Structured OutputsでJSON Schemaを定義します。Microsoft LearnではStructured Outputsが指定したJSON Schemaへモデル出力を従わせる仕組みとして説明されています。
文書作成|対象読者・目的・禁止表現・レビュー観点を含むテンプレート
文書作成では、「それらしい文章」を作るだけでなく、社内基準を満たす下書きへ近づけることが重要です。
【コピーテンプレート】
[目的]
[読了後に相手へ理解・判断してほしいこと]
[対象読者]
[役職/前提知識/関心事項]
[入力情報]
[事実情報・素材]
[構成]
[見出し構成]
[必須事項]
・[必ず含める事実]
・[必ず含めるCTAや次アクション]
[禁止事項]
・入力情報にない数値や固有名詞を補完しない
・根拠不明の断定をしない
・[社内で禁止する表現]を使わない
[確認事項]
根拠が不足する箇所は「要確認」と明記する
「営業向け」「役員向け」とだけ書くより、読了後に何を判断してほしいかまで定義した方が文章の目的が明確になります。文体を固定したい場合は短いFew-shotを追加できますが、不要な大量サンプルを毎回渡す必要はありません。

テンプレートの価値は文章を固定することではなく、「毎回考える部分」と「全員で守る部分」を分けることにあります。
Azure OpenAI Serviceのプロンプトを本番運用へ移すための管理・コスト最適化
PoCで良い回答が出ても、担当者ごとにプロンプトをコピーして修正していけば品質は再びばらつきます。本番では、プロンプトをバージョン付きの業務資産として管理し、評価結果や対象モデルと紐づけます。長い共通プロンプトを大量に使う場合は、品質確保後にプロンプトキャッシュも検討します。
バージョン付き業務資産としてのプロンプト管理
本番プロンプトには、少なくとも次の情報を紐づけます。
・prompt_name
・version
・対象モデル
・オーナー
・更新日
・変更理由
・評価結果
プロンプトを個人のメモではなく、ソースコードや設定ファイルと同様にレビュー対象へ置くことが重要です。変わらない共通ルールと業務ごとの変数も分離し、同じ文章を複数アプリへコピーし続けないようにします。
Promptyのように、プロンプト、モデル設定、入力定義をファイルとして管理する考え方も選択肢です。ただし、特定ツール自体を必須とせず、自社の開発・レビュー・リリース手順へ組み込めることを優先します。
共通部分の前方配置によるプロンプトキャッシュ活用
Azure OpenAIのプロンプトキャッシュは、長い入力の共通部分を再利用し、対応モデルでレイテンシや入力処理コストを抑える仕組みです。現行Microsoft Learnでは、安定して繰り返す内容を前方、動的な内容を後方へ置くことがベストプラティクスとして案内されています。
そのため、共通のシステム指示、例、参照ファイルなどを前方へ、ユーザーごとに変化する質問や変数を後方へ置く設計が基本になります。
ただし、キャッシュ条件や保持方式はモデル世代によって異なります。たとえば現行ドキュメントではGPT-5.6以降のモデルファミリー向けに明示的なbreakpointやTTL設定が案内される一方、それ以前のモデルでは異なる方式が使われます。固定的な削減率や設定値を社内ルールへ埋め込まず、利用モデルの現行仕様を確認してください。
キャッシュを使うために指示の意味を歪めるのではなく、まず品質を確保し、長い共通入力を大量に繰り返す段階で最適化する順序が適切です。
出典:Microsoft Learn:プロンプトキャッシュ、Microsoft Learn:生成AIアプリの評価、Microsoft REST API:Evals
Azure OpenAI Serviceのプロンプト設計で起きる失敗要因と対策
PoCから本番へ移る段階では、回答精度だけでなく、モデル変更、情報鮮度、出力構造、セキュリティまで含めて失敗要因を確認します。ここでは「症状→原因→対策」の順で整理します。
指示過多によるルール競合
症状として多いのは、同じ入力でも文章量や形式がばらつく、一部ルールだけ無視される、回答が不自然に長くなる状態です。
原因の1つは、「簡潔に」「すべて詳細に」「必ず3文で」といった同時に満たしにくい条件が混在することです。Microsoftのシステムメッセージ設計でも、競合する指示や過度に長いシステムメッセージは落とし穴として示されています。
対策は、業務上必須のルールと、任意のスタイル指示を分けることです。優先順位を付け、毎回必要ではない大量情報はRAGや別処理へ分離します。
モデル変更後の旧プロンプト継続利用
モデルを新しくすれば、既存プロンプトでも自動的に品質が上がるとは限りません。モデル更新後に回答が冗長になる、形式遵守率が下がる、不要な手順説明が増えるなど、特定業務で振る舞いが変わる可能性があります。
Microsoftも、GPT-5シリーズやo-seriesでは従来型のプロンプト手法をそのまま推奨していません。対策として、本番モデル変更前に同一の回帰評価セットで比較し、プロンプトとモデルをセットでバージョン管理します。
過去に効いた「おまじない」を残し続けるのではなく、新モデルで必要な指示だけへ整理します。
社内情報不足の長文プロンプトによる代替
存在しない社内制度を回答する、古い規程や製品情報を回答する、大量文書をシステムプロンプトへ貼り付けて保守できなくなる場合は、プロンプトの言い回しより「必要な情報がモデルへ届いているか」を確認します。
最新情報や独自情報必要となる業務ではRAGを検討し、必要な文書を検索して回答時に渡します。そのうえで「参照情報にない場合は推測しない」という回答ルールもセットにします。
ただし、RAGを導入しても検索結果自体が悪ければ回答品質は上がりません。検索で正しい文書を取得できたかと、取得した情報から正しく回答できたかを分けて評価することが必要です。
自然言語指示だけに依存した出力形式固定
JSONの前後に説明文が付く、項目名が変わる、必須項目が欠けるといった症状がある場合、自然言語で「必ずJSONで」と追記し続けるだけでは不十分なことがあります。
人間が読む文章であれば、見出しや文字数などをプロンプトで指定します。一方、後段プログラムが利用するキー、型、必須項目などの構造が重要ならStructured Outputsを検討します。Structured OutputsではJSON SchemaをAPI側で指定し、出力構造を制約できます。
ただし、スキーマへ準拠しても、抽出された値そのものの事実性まで自動的に保証されるわけではありません。構造の妥当性と内容の妥当性は別々に評価します。
プロンプト単独に依存したプロンプトインジェクション対策
プロンプトインジェクションには、利用者が「以前の指示を無視して」と入力するユーザープロンプト攻撃だけでなく、Webページ、メール、文書など外部データへ悪意ある指示が埋め込まれるドキュメント攻撃があります。
MicrosoftのPrompt Shieldsは、ユーザープロンプト攻撃とドキュメント攻撃を検出・防止する仕組みとして提供されています。
システムメッセージへ「この命令を無視しない」と書くだけでなく、Prompt Shields、参照データの分離、ツール権限の最小化、敵対的入力による評価を組み合わせます。
Microsoft Learnでも、システムメッセージはモデルへ影響を与えるものの遵守を保証するものではなく、フィルターや評価など他の対策と重ねる前提が示されています。
プロンプトは安全策の1層であり、アクセス制御や攻撃検知の代替ではありません。
| 失敗要因 | 症状 | 主なリスク | 対策 | 確認担当 |
|---|---|---|---|---|
| 指示の詰め込み・競合 | 一部ルール無視、出力ばらつき | 品質低下、保守困難 | 必須・任意を分離し優先順位を設定 | 業務責任者・開発 |
| モデル変更後の無検証 | 冗長化、形式遵守率低下 | 本番品質の回帰 | 同一評価セットで回帰評価 | 開発・QA |
| 社内情報不足を長文で代替 | 古い回答、架空回答、巨大プロンプト | 誤回答、更新漏れ | RAGで根拠を取得し生成と検索を別評価 | データ・開発 |
| 自然言語だけで形式固定 | JSON崩れ、必須項目欠落 | 後段処理エラー | Structured Outputsを検討 | 開発 |
| プロンプトだけで攻撃対策 | 指示無視、外部文書経由の攻撃 | 情報漏えい、不正操作 | Prompt Shields、最小権限、敵対的評価 | セキュリティ・開発 |
出典:Microsoft Learn:Prompt Shields
Azure OpenAI Serviceのプロンプトを業務へ組み込む5ステップ
プロンプト作成から始めると、「良い文章を書くこと」がPoCの目的になりやすくなります。業務導入では、対象業務、ベースライン、改善手段、評価、標準化の順で進めると、何が品質へ効いたかを追いやすくなります。
ステップ1|対象業務と成功条件の定義
最初に、対象タスクを測定できる粒度まで具体化します。「議事録作成」ではなく、「60分の会議記録から決定事項・担当者・期限を抽出」のように定義します。
次に、現在の作業時間、レビュー時間、修正件数などを記録し、PoC後に比較できる基準を作ります。成功条件も「担当者が良いと感じた」ではなく、必須項目の抽出率、修正件数、処理時間などへ落とします。
高リスクな意思決定より、まずは人間が結果を確認しやすい業務から試す方が、失敗原因を特定しやすくなります。
ステップ2|最小プロンプトによるベースライン作成
最初から複雑なルールを大量に追加せず、「目的・入力・出力条件」の最小構成から始めます。
実際の業務から複数パターン(通常系、例外系、安全性)の入力を用意し、成功・失敗ケースを記録します。件数は業務リスクや入力パターンに応じて決め、正常系だけでなく曖昧入力や情報不足も含めます。
失敗は「指示不足」「知識不足」「形式崩れ」「安全性」などへ分類します。いきなりRAGやファインチューニングを追加せず、まず現在のモデルと最小プロンプトでどこまで達成できるかを基準にします。
ステップ3|失敗原因に応じた改善手段の追加
観測した失敗に対し、必要な対策だけを追加します。
・指示不足:プロンプト修正
・独自情報・最新情報不足:RAG
・厳格な構造崩れ:Structured Outputs
・多数例からの特定動作学習:ファインチューニングを検討
プロンプト変更は一度に複数箇所を大きく変えず、何を直すための変更かを記録します。モデル変更とプロンプト変更も可能なら分けて検証し、どの変更が結果へ影響したか追える状態にします。
社内情報を参照する場合は、利用する情報ソースとデータの取り扱いを情報システム・セキュリティ担当と確認します。
ステップ4|通常・例外・攻撃入力を含む共通評価
本番では、平均的な入力だけが来るわけではありません。評価セットには、通常入力、情報不足、曖昧な依頼、非常に長い入力、対象外質問、禁止内容、プロンプトインジェクションなどを含めます。
評価するのは「正しい回答をしたか」だけではありません。答えてはいけない場合に答えなかったか、根拠を示せたか、指定形式を守れたかも確認します。
プロンプト変更やモデル変更のたびに同じ評価セットを実行します。Microsoft FoundryのEvaluationやEvals APIは、運用規模に応じた自動評価の選択肢になります。
ステップ5|テンプレート・評価セット・変更履歴の標準化
PoCで採用したプロンプトは、対象モデル、API設定、入力定義、評価結果と一緒に管理します。担当者個人のメモだけに残すと、別部署で再利用したときに前提条件が失われます。
利用者が毎回自由文で長いプロンプトを書く必要がない業務では、フォームや選択肢から必要な変数だけを渡すUIも有効です。たとえば「対象読者」「文書種別」「文字数」を選択させ、固定ルールはアプリ側で補います。
さらに、プロンプト変更の責任者、レビュー担当、リリース方法を決めます。本番ログで新しい失敗パターンが見つかったら評価セットへ追加し、再発防止テストへつなげます。
標準化の対象はプロンプト本文だけではなく、モデル・設定・テスト・変更履歴まで含む一式です。
Azure OpenAI Service of プロンプト活用事例
実際の企業事例では、利用者へ高度なプロンプト作成を求めるだけでなく、検索補完や用途別ミニアプリとしてアプリ側へプロンプトを組み込む設計が採用されています。ここではMicrosoft公式の国内事例から、運用上の示唆を整理します。
【通信】KDDI|検索プロンプト補完を含む仕組みによる情報収集時間の約74%削減
KDDIは、過去の営業資料をAzureへ取り込み、スライド画像と要約を生成し、必要な資料を検索できるシステムを構築しました。Microsoftの公式事例では、要約生成と検索プロンプトの補完にAzure OpenAIを利用し、GPT-4oとGPT-4o miniを用途に応じて使い分けたと説明されています。
アンケートでは、80%のユーザーが情報収集時間の削減を実感し、1ユーザーあたりの情報収集時間は約74%削減されました。この数字は検索プロンプト補完だけの効果ではなく、検索、要約、画面設計などを含むシステム全体の成果です。
本事例から得られる示唆は、利用者へ完璧な検索文の入力を求めるのではなく、アプリ側で検索プロンプトを補完し、必要な情報へ到達しやすくする設計も選択肢になることです。
【郵便・物流】日本郵政|半年で70超の生成AIミニアプリと月間2万回超の実行
日本郵政はAzure OpenAI Serviceを活用し、開発者とユーザー向けの生成AI活用ポータルを構築しました。Microsoft公式事例によると、2024年12月までの半年間で70以上のミニアプリを内製し、要約、相談、壁打ちなどに利用しています。
直近のミニアプリ実行回数は月間2万回を超え、利用者アンケートでは回答者の8割が効果を実感したとされています。同事例では、ミニアプリをプロンプトベースで作成し、ユーザーヒアリングをもとにその場で作って改善するサイクルも紹介されています。
ここで注目したいのは、全社員へ「長いプロンプトを書いてください」と求めるのではなく、用途ごとのミニアプリとして入口を整えている点です。全社展開では、自由チャットだけでなく、業務別テンプレートやUIへプロンプトを埋め込む運用も検討できます。
Azure OpenAI Serviceのプロンプト改善範囲を判断する基準
回答品質が悪いときに、最初から高度な機能を追加する必要はありません。問題を「指示」「知識」「出力形式」「モデル適応」の4種類へ切り分け、原因に合った手段を選びます。
指示・完成条件の曖昧さに対するプロンプト改善
同じ情報を渡しても指示解釈がずれる、出力の粒度が安定しない、対象読者に合わない場合は、まずプロンプト設計を見落とし、目的、背景、制約、出力条件を追加し、同じ評価セットで改善したか確認します。数件だけ成功しても、入力が変わると崩れるなら本番品質とは言えません。
プロンプトだけで必要品質を満たせる場合は、RAGやファインチューニングを追加しない判断も重要です。最も実装負荷の低い改善手段から検証することが、過剰投資を防ぎます。
社内・最新情報不足に対するRAG優先
社内規程、製品情報、契約情報、最新文書など、モデル外のデータが回答根拠になる場合はRAGを優先します。
更新頻度の高い情報をシステムプロンプトへ固定コピーすると、更新漏れや入力トークン増加につながります。RAGで必要情報を取得し、「取得できた文書が正しいか」「取得情報から正しく回答できたか」を別々に確認します。
Microsoft Learnでも、RAGはリアルタイムまたはプライベートデータを回答時に追加する手段として整理されています。
出力形式不安定に対するStructured Outputs優先
人間が読む文章の見出しや文字数はプロンプトで制御できます。一方、後段プログラムが利用するキー、型、必須項目などの構造が重要ならStructured Outputsを検討します。
役割分担は、「プロンプトへ項目の意味」「JSON Schemaへ項目の構造」と考えると整理しやすくなります。
たとえば「契約終了日とはどの記載を指すか」はプロンプトで定義し、「contract_end_dateはstringまたはnull」といった構造はSchemaで定義します。Schemaに適合しても値の正しさまで保証されるわけではないため、抽出内容の検証は別途必要です。
多数の例による特定動作定着に対するファインチューニング検討
プロンプトや少数のFew-shotだけでは安定しない特定タスクで、十分な高品質データがある場合にファインチューニングを検討します。
Microsoftのドキュメントでは、特定タスクへの性能向上や、多数の例を用いたモデル適応などがファインチューニングの用途として整理されています。一方、最新の社内情報を覚えさせる目的だけでファインチューニングを選ぶのではなく、更新される知識にはRAGとの役割分担を検討します。
ファインチューニング前後も共通の評価セットで比較し、追加コストや運用負荷に見合う改善があるか確認します。
| 症状 | 最初に確認すること | 優先する改善手段 | 次の選択肢 |
|---|---|---|---|
| 回答の粒度・対象読者・指示解釈が不安定 | 目的、背景、制約、完了条件が明確か | プロンプト改善 | Few-shot、モデル比較 |
| 社内・最新情報を回答できない | 必要な根拠データがモデルへ渡っているか | RAG | 検索品質改善、データ整備 |
| JSON・項目構造が崩れる | 人向け文章か機械処理か | Structured Outputs | 値の妥当性検証 |
| 少数例では特定動作が安定しない | 高品質な学習データとベースラインがあるか | ファインチューニング検討 | RAG併用、モデル変更 |
AI導入支援は「フリーコンサルタント.jp」へご相談ください
フリーコンサルタント.jpでは、事業会社やコンサルティングファーム出身のプロ人材が、生成AI・DX活用の戦略設計から現場のルール整備、社内への知見移転までを伴走支援します。実務経験豊富な人材が、上流の方針づくりから実行段階まで一貫して関わることで、導入後の定着まで見据えた支援が可能です。

まずは自社のどの業務・データで試すか、小さく始めるところから相談してみるのがおすすめです。
フリーコンサルタント.jpによるAI導入支援の事例
フリーコンサルタント.jpでは、AI・DX推進領域全般で企業の支援実績があります。ここでは、社内に専門人材が不足していた企業の支援事例を2件紹介します。
事例①|大手飲食企業:需要予測・発注レコメンドAIの開発支援
200店舗以上・400品目の発注業務を店舗担当者の経験と勘に頼っており、業務が属人化していた大手飲食企業の事例です。データサイエンティストなどAI活用の経験者が社内に不足し、AIの本格運用に向けたデータ活用の進め方が分からない状態でした。
| 当時の課題 | ・データサイエンティスト・データアナリスト人材、AI活用の経験者が社内に不足 ・店舗情報・POSデータをもとにした需要予測を、複数人が同じ精度で行うことが困難 ・発注業務が現場の勘に依存し、担当者の休暇・退職で業務が滞るリスクを抱えていた |
|---|---|
| 実施したこと | ・店舗ごとの特徴を踏まえた変数を定義し、データを整理 ・PoC(概念実証)を経て、店舗ごとに高い精度で需要予測ができるAIモデルを構築・運用 |
需要予測AIの活用により発注業務の多くを自動化し、作業時間を削減。バックオフィス業務の負荷が軽減し、店舗担当者が接客などの対応に時間を割けるようになりました。
事例②|大手通信キャリア企業:デジタル活用推進に向けたCoE組織の立ち上げ支援
業務効率化を目的に、デジタル活用組織(CoE=Center of Excellence。複数部門の知見を集約する専門組織)の立ち上げを決定したものの、組織立ち上げの推進とデジタル技術活用の両方を担える人材が社内に不足していた大手通信キャリア企業の事例です。
| 当時の課題 | ・デジタル領域の知見と組織立ち上げ経験を併せ持つ人材が社内に不足 ・業務効率化ツールの開発・運用体制をゼロから構築する必要があった |
|---|---|
| 実施したこと | ・CoE組織の立ち上げから全体設計・運用構築・実運用までを一気通貫で伴走支援 ・事業部門への課題ヒアリングをもとにしたツール開発の仕組みを構築し、プロパー社員が自走できる体制へ知見を移転 |
CoE組織の立ち上げと運用の安定化により、組織立ち上げ前と比較して業務工数を約25%削減。プロパー社員が主体的に運用できる体制を構築し、外部人材への依存から段階的に脱却しています。
まとめ
Azure OpenAI Serviceのプロンプト設計は、「うまい質問文」を作る技術だけではありません。業務アプリでは、モデルへ渡す目的、コンテキスト、制約、出力仕様を整理し、モデル、参照情報、出力制御、評価まで含めて仕様化する必要があります。
まずは「目的・コンテキスト・制約・出力仕様」を明確にした最小プロンプトから始め、同じ評価セットで改善を確認してください。GPT-5シリーズやo-seriesを含め、モデルごとに最適な設計は異なるため、過去の定石を機械的に流用せず、モデル変更時には回帰評価を行います。
また、問題が知識不足ならRAG、厳格な構造ならStructured Outputs、多数の例から特定動作を学習させたいならファインチューニングというように、原因に応じて改善手段を選ぶことが重要です。
本番では、プロンプト、対象モデル、評価セット、変更履歴をセットで管理し、個人のプロンプトスキルへ依存しない運用へ移行することが求められます。自社だけで業務設計、技術実装、評価、運用定着まで進めるのが難しい場合は、AI・DX領域の専門人材活用も検討してください。




