Microsoft Foundryに用意されているAIモデルを利用すると、画像生成や画像を添付した質問を行うことができる。

今回は、Microsoft Foundry上で画像生成と画像を添付した質問を実施してみたので、その手順を共有する。

前提条件

下記記事の「Microsoft Foundryへのログインとプロジェクト作成」が完了していること。

Microsoft Foundry上で用意されているAIモデルをデプロイしてみたMicrosoft Foundryとは、企業や開発者が生成AIアプリケーションやAIエージェントを迅速に構築、デプロイ、管理するための統...

やってみたこと

  1. 画像生成
  2. 画像を添付した質問
  3. デプロイモデルの削除

画像生成

Microsoft Foundryでは、GPT Imageという、OpenAIが開発した高精度な画像生成および編集モデルのシリーズが用意されている。モデル「gpt-image-1-mini」を利用した画像生成手順は、以下の通り。

1) Microsoft Foundryにログインし、「検出」メニューを押下する。
画像生成_1

2)「モデル」メニューを押下後、「gpt-image-1-mini」を検索し選択する。
画像生成_2

3)「デプロイ」ボタンから「既定の設定」を押下する。
画像生成_3

4) 以下の画面が表示される。
画像生成_4

5) 生成したい画像についての説明を入力しボタンを押下する。
画像生成_5

6) しばらく待つと、画像が生成され表示されることが確認できる。
画像生成_6

7)「コードの表示」ボタンを押下する。
画像生成_7

8) 以下のように、サンプルコードが表示されるため、表示されたソースコードをコピーし「閉じる」ボタンを押下する。
画像生成_8

9) 8)でコピーしたソースコードは、以下の通り。

import base64
from openai import OpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider

endpoint = "https://stanahas-8273-resource.services.ai.azure.com/openai/v1"
deployment_name = "gpt-image-1-mini"
token_provider = get_bearer_token_provider(DefaultAzureCredential(), "https://ai.azure.com/.default")

client = OpenAI(
    base_url=endpoint,
    api_key=token_provider
)

img = client.images.generate(
    model=deployment_name,
    prompt="A cute baby polar bear",
    n=1,
    size="1024x1024",
)

image_bytes = base64.b64decode(img.data[0].b64_json)
with open("output.png", "wb") as f:
    f.write(image_bytes)

10) 9)の内容を、ローカル端末上のソースコード「make_image.py」に貼り付ける。
画像生成_10

11) 10)で貼り付けたソースコードを以下のように変更し、文字コードをUTF-8にした状態で貼り付ける。

import base64
from openai import OpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider

endpoint = "https://stanahas-8273-resource.services.ai.azure.com/openai/v1"
deployment_name = "gpt-image-1-mini"
token_provider = get_bearer_token_provider(DefaultAzureCredential(), "https://ai.azure.com/.default")

client = OpenAI(
    base_url=endpoint,
    api_key=token_provider
)

img = client.images.generate(
    model=deployment_name,
    prompt="かわいいグレートピレニーズの子犬",
    n=1,
    size="1024x1024",
)

image_bytes = base64.b64decode(img.data[0].b64_json)
with open("output.png", "wb") as f:
    f.write(image_bytes)

12) 下記サイトの「Azure上でのAzure Functions動作検証」手順に従って、「az login」コマンドでログインする。

Azure Functions上で動作するPythonアプリケーションを作成してみたAzureが提供するサービスに、さまざまなイベントによって駆動し、サーバーの構築や保守をすることなくプログラムを実行できる「Azure ...

13)「make_image.py」を実行する。
画像生成_13

14) 実行した結果、先ほどプレイグラウンドの画面で実行した時と同じように、グレートピレニーズの子犬の画像(output.png)が出力されるのが確認できる。
画像生成_14_1

画像生成_14_2

画像を添付した質問

Microsoft Foundryでは、チャットモデル「gpt-5-mini」において、画像を添付し質問することができる。その手順は、以下の通り。

1) Microsoft Foundryにログインし、「検出」メニューを押下する。
画像を添付した質問_1

2)「モデル」メニューを押下後、「gpt-5-mini」を検索し選択する。
画像を添付した質問_2

3)「デプロイ」ボタンから「既定の設定」を押下する。
画像を添付した質問_3

4) 以下の画面が表示されるため、画像取り込みボタンを押下する。
画像を添付した質問_4

5) 先ほどの「かわいいグレートピレニーズの子犬」の画像を選択し、「開く」ボタンを押下する。
画像を添付した質問_5

6)「これは犬と猫のどちらですか?」と質問文を入力し、ボタンを押下する。
画像を添付した質問_6

7)「これは犬です。」という回答が返却されることが確認できる。
画像を添付した質問_7

8)「コードで続行」ボタンを押下する。
画像を添付した質問_8

9) 以下のように、サンプルコードが表示されるため、表示されたソースコードをコピーし「×」ボタンを押下する。
画像を添付した質問_9

10) 9)でコピーしたソースコードは、以下の通り。

from openai import OpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider

endpoint = "https://stanahas-8273-resource.services.ai.azure.com/openai/v1"
deployment_name = "gpt-5-mini"
token_provider = get_bearer_token_provider(DefaultAzureCredential(), "https://ai.azure.com/.default")

client = OpenAI(
    base_url=endpoint,
    api_key=token_provider
)

response = client.responses.create(
    model=deployment_name,
    input="What is the capital of France?",
)

print(f"answer: {response.output[0]}")

11) 10)の内容を、ローカル端末上のソースコード「judge_image.py」に貼り付ける。なお、先ほど生成した「output.png」はそのままの状態とする。
画像を添付した質問_11

12) 11)で貼り付けたソースコードを以下のように変更し、文字コードをUTF-8にした状態で貼り付ける。

from openai import OpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
import base64

endpoint = "https://stanahas-8273-resource.services.ai.azure.com/openai/v1"
deployment_name = "gpt-5-mini"
token_provider = get_bearer_token_provider(DefaultAzureCredential(), "https://ai.azure.com/.default")

client = OpenAI(
    base_url=endpoint,
    api_key=token_provider
)

# 同フォルダ内の画像(output.png)を、質問文に組み込めるよう、base64形式に変換する
with open("output.png", "rb") as f:
    b64 = base64.b64encode(f.read()).decode()

# 質問文にbase64形式に変換した画像(output.png)を追加する
response = client.responses.create(
    model=deployment_name,
    input=[{
        "role":"user",
        "content":[
             {"type":"input_text", "text":"これは犬と猫のどちらですか?"},
             {"type":"input_image", "image_url":f"data:image/png;base64,{b64}"},
         ],
    }],    
)

# 質問に対する応答文のみ取得する
for item in response.output:
    if item.type == "message":
        for content in item.content:
            if content.type == "output_text":
                print("*** 「これは犬と猫のどちらですか?」の回答 ***")
                print(content.text)

13) 下記サイトの「Azure上でのAzure Functions動作検証」手順に従って、「az login」コマンドでログインする。

Azure Functions上で動作するPythonアプリケーションを作成してみたAzureが提供するサービスに、さまざまなイベントによって駆動し、サーバーの構築や保守をすることなくプログラムを実行できる「Azure ...

14)「judge_image.py」を実行した結果、質問に対する回答が表示されるのが確認できる。
画像を添付した質問_14

エンジニアファーストバナー

デプロイモデルの削除

デプロイしたモデルの削除は、Microsoft Foundryの画面から行える。その手順は、以下の通り。

1) 赤枠の左矢印を押下する。
デプロイモデルの削除_1

2) それぞれのモデルについて、選択し「削除」ボタンを押下していく。
デプロイモデルの削除_2_1

デプロイモデルの削除_2_2 デプロイモデルの削除_2_3 デプロイモデルの削除_2_4

3) 以下のように、デプロイしたモデルが削除されたのが確認できる。
デプロイモデルの削除_3

要点まとめ

  • Microsoft Foundryに用意されているAIモデルを利用すると、画像生成や画像を添付した質問を行うことができる。