前回はモデルをデプロイして1回だけ質問しました。今回はそれを会話できるチャットアプリにします。カギは2種類のプロンプト(システム/ユーザー)と、会話の履歴をつなぐ多ターンです。AI-901のシラバスにある「効果的なシステムプロンプトとユーザープロンプトを作成する」「軽量チャットクライアントを作成する」に対応します。

チャットに欠かせない「2種類のプロンプト」
チャットでは、AIへの言葉を2種類に分けて考えます。

- システムプロンプト:AIの役割・口調・守るべきルールを決める“設定”。例:「あなたは親切な数学の先生です」。会話の最初に一度決めます。
- ユーザープロンプト:利用者の実際の質問・お願い。例:「3x+11=14 を解いて」。毎回変わります。
同じ質問でも、システムプロンプト次第で答え方が変わります(先生口調/専門家口調/子ども向け、など)。良いチャットアプリ作りは、良いシステムプロンプト作りから始まります。
チャットアプリの流れ

コードで作ってみる(システムプロンプト+質問)
前回と同じく接続を作り、responses.create にシステムプロンプト(instructions)と質問(input)を渡します。
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient
PROJECT_ENDPOINT = "ここに自分のエンドポイント"
project = AIProjectClient(endpoint=PROJECT_ENDPOINT, credential=DefaultAzureCredential())
openai = project.get_openai_client() # モデルを呼ぶ窓口(前回と同じ)
response = openai.responses.create(
model="gpt-5-mini",
instructions="あなたは親切な数学の先生です。やさしく解説してください。", # システムプロンプト(役割)
input="3x + 11 = 14 を解いて", # ユーザープロンプト(質問)
)
print(response.output_text)
- instructions=システムプロンプト。AIの役割・口調を決めます。
- input=ユーザープロンプト。実際の質問です。
- 役割を「専門家として簡潔に」などに変えると、答え方が変わります。
会話を続ける(多ターン)
チャットらしくするには、前のやりとりを覚えたまま会話を続ける必要があります。previous_response_id に前の応答のIDを渡すと、履歴が引き継がれます。
# 1回目の質問
first = openai.responses.create(
model="gpt-5-mini",
input="日本でいちばん高い山は?",
)
print(first.output_text) # 例:富士山です
# 2回目:前の回答を覚えたまま続ける
second = openai.responses.create(
model="gpt-5-mini",
previous_response_id=first.id, # 前の応答IDを渡す=会話の履歴をつなぐ
input="その標高は?", # 「その」が富士山を指す
)
print(second.output_text) # 例:3,776メートルです
previous_response_id を渡さないと、2回目の「その」が何を指すか分からず、会話がつながりません。履歴をつなぐ=前の応答IDを渡す、と覚えましょう。上の2つを組み合わせ、
input() でユーザーの入力を受け取って responses.create に渡し、previous_response_id でつなげば、あなただけのチャットアプリの完成です。まずはシステムプロンプトを変えて、答え方の違いを試してみましょう。確認クイズ
Q1. AIの「役割・口調・ルール」を決める指示は?
Q2. コードでシステムプロンプト(役割)を渡すパラメータはどれ?
Q3. 会話の履歴をつないで「前の話を覚えたまま」続けるには?
Q4. ユーザーの実際の質問を渡すパラメータはどれ?
よくある質問(FAQ)
Q. システムプロンプトとユーザープロンプトの違いは?
A. システム=AIの役割・口調・ルールの設定(最初に一度)、ユーザー=実際の質問(毎回)です。コードでは instructions と input に対応します。
Q. 会話を覚えさせるには?
A. previous_response_id に前回の応答IDを渡します。これで「前の話の続き」として答えてくれます。
Q. プレイグラウンドとSDKはどう使い分けますか?
A. ちょっと試すならプレイグラウンド、自分のアプリに組み込むならSDK(コード)です。
まとめ
- システムプロンプト(instructions)=役割/ユーザープロンプト(input)=質問
- 多ターン会話は previous_response_id で履歴をつなぐ
- これで「軽量チャットクライアント」が作れる=ドメイン2の基本
- ➡ 前の記事:Foundry入門:モデルをデプロイ
- ➡ つぎは「Foundryで単一エージェントを作る」(準備中)
- ➡ AI-901対策トップ / 試験概要・受験ガイド
※本記事はMicrosoft公式のFoundryクイックスタート/Responses API ドキュメント(azure-ai-projects 2.x)に基づき、エンジニアKが作成しています。仕様は更新されるため、最新は Microsoft公式 をご確認ください。


コメント