Azure OpenAIとPythonでシンプルなチャットボットを作ってみる

Mario
2025-11-26
2025-11-26

Azure OpenAI と Python を組み合わせることで、高性能なチャットボットを作ることができます。特に Azure OpenAI は、OpenAI API と同じモデルを使いながら、企業向けのセキュリティやアクセス制御、データが学習に使われない保証、プライベートネットワーク対応など、商用利用に必要な機能がそろっている点が強みです。この記事では、PythonとAzure OpenAIを使ってシンプルなチャットボットを作る方法を紹介します。

Azure OpenAIリソースの作成

まだ Azureアカウント を持っていない場合は、Azure公式サイト から無料アカウントを作成します。登録が完了したら、Azureポータル にログインして、ダッシュボードからリソースを作成できる状態にしておきましょう。

Screenshot 2025-11-20 at 10.04.09

リソースを作成した後、Azure OpenAIリソースの「Explore Foundry Portal」をクリックし、Azure OpenAIのデプロイメントや各種設定を行います。

Screenshot 2025-11-20 at 9.48.05

左メニューの「モデルのデプロイ (Deployments)」を開きます。「+ 追加 (Create new deployment)」をクリック。サンプルとして、「gpt-4o」モデルを選択します。

Screenshot 2025-11-20 at 9.52.42デプロイを実行すると、処理が完了した後にデプロイ一覧から状態を確認できます。

Screenshot 2025-11-20 at 10.45.49
デプロイメント名は「gpt-4o」となります。また、APIの利用にはデプロイメントURLーも必要です。これらの情報は、デプロイメント名をクリックすることで詳細画面からEndpointを確認できます。

ss

シンプルチャットボットの実装

上記で取得したデプロイメント名、エンドポイントURL、APIキーを.envファイルに保存します。

AZURE_OPENAI_ENDPOINT=xxxxxxxxxxxxxxxx 
AZURE_OPENAI_API_KEY=xxxxxxxxxxxxxxxx
DEPLOYMENT_NAME=gpt-4o

ソースコード

AI機能を使うについては、Azure OpenAIの公式ドキュメントを参照しながら進めます。

from openai import AzureOpenAI
from dotenv import load_dotenv
import os

load_dotenv()

client = AzureOpenAI(
   api_key=os.getenv("AZURE_OPENAI_API_KEY"),
   azure_endpoint=os.getenv("AZURE_OPENAI_ENDPOINT"),
   api_version=os.getenv("AZURE_OPENAI_API_VERSION")
)

conversation配列でチャット履歴を保存し、ユーザーから質問があった際にその履歴をAIに一緒に送信することで、会話内容を記憶させる仕組みを作ります。

conversation = [
   {"role": "system", "content": "あなたは親切なAIアシスタントです。"}
]

あと、ユーザーの入力とAIチャットボットの応答を順番に表示するための簡単なループ処理も実装しましょう。

while True:
   user_input = input("You: ")
   if user_input.lower() in ["exit", "quit"]:
       break

   # ユーザー発言を履歴に追加
   conversation.append({"role": "user", "content": user_input})

   # messagesパラメターに全部の履歴を渡す
   response = client.chat.completions.create(
       model="gpt-4o",
       messages=conversation
   )

   reply = response.choices[0].message.content
   print("Bot:", reply)

   # 応答も履歴に追加(文脈維持のため)
   conversation.append({"role": "assistant", "content": reply})

完成したソースコードは以下の通りです

from openai import AzureOpenAI
from dotenv import load_dotenv
import os

load_dotenv()

client = AzureOpenAI(
   api_key=os.getenv("AZURE_OPENAI_API_KEY"),
   azure_endpoint=os.getenv("AZURE_OPENAI_ENDPOINT"),
   api_version=os.getenv("AZURE_OPENAI_API_VERSION")
)

while True:
   user_input = input("You: ")
   if user_input.lower() in ["exit", "quit"]:
       break

   # ユーザー発言を履歴に追加
   conversation.append({"role": "user", "content": user_input})

   # messagesパラメターに全部の履歴を渡す
   response = client.chat.completions.create(
       model="gpt-4o",
       messages=conversation
   )

   reply = response.choices[0].message.content
   print("Bot:", reply)

   # 応答も履歴に追加(文脈維持のため)
   conversation.append({"role": "assistant", "content": reply})

以上でプログラムの実行準備が整い、実際にチャットボットの動作を確認できます。会話内容は自由ですが、チャット履歴を保持していることを示すため、下記の会話例で動作を検証しています。

test

まとめ

今回は、Azure OpenAIとPythonを活用して、シンプルなチャットボットを構築する手順をご紹介しました。わずか数十行のコードで、基本的な機能を実装できます。今後さらなる発展を目指す場合は、プロンプト調整によるボットの応答スタイル最適化(例:カスタマーサポートや学習支援向けのカスタマイズ)などの機能追加も有効です。ぜひ、ご自身のアイデアをもとにAIチャットボット開発に挑戦し、より利便性の高いアプリケーション開発に役立ててみてください。