今回はPower Automateで、GPTモデルの画像解析機能を活用し、画像を処理する方法をご紹介します。
このフローでは、OneDriveの特定フォルダに追加された画像をGPT-4oで解析し、結果をメールで送信するプロセスを構築します。
環境
- MicrosoftOutlook
- MicrosoftOneDrive
- Power Automate(クラウドフロー)
PowerAutomateの設定

では、早速設定していきます。
PowerAutomateにアクセスして「作成」をクリックして下さい。

「自動化したクラウドフロー」を選択してください。

フロー名を設定して下さい。
分かりやすい名前なら何でもよいですが、今回は「Image Processing」と入力しました。

1. トリガー: 「ファイルが作成されたとき」
最初に、OneDriveに新しいファイルが作成された(追加された)際にフローを開始するトリガーを設定します。
「接続が無効です。~」と表示された場合は、次の手順でログインをしてください。
1.「接続の変更」を選択してください。
2.Microsoftアカウントにログインしてください。
パラメーターに、画像格納用のフォルダを設定します。

2. アクション: 「パスによるファイルコンテンツの取得」
次に、作成されたファイルの内容を取得します。
「+」ボタンを押して「パスによるファイルコンテンツの取得」を追加して下さい。

パラメーターのファイルパスに「ファイルパス」を設定します。

3. アクション: 「変数を初期化する」
ここでは、画像データをBase64形式にエンコードした文字列を格納します。
「+」ボタンを押して「変数を初期化する」を追加して下さい。

パラメーター設定は次のようになります。
- Name(名前)
- 値:
Base64Image
- 説明: この変数名は、フロー内で画像データを格納するために使用されます。
- 値:
- Type(型)
- 値:
String(文字列)
- 説明: 変数の型として文字列が選択されています。これは、画像データをBase64形式の文字列として扱うためです。
- 値:
- Value(値)
- 値:
base64(outputs('パスによるファイル_コンテンツの取得')?['body'])
- 説明:
outputs('パスによるファイル_コンテンツの取得')
: 前のステップで取得したファイルの内容を参照しています。['body']
: ファイルのコンテンツ部分を指定しています。base64(...)
: そのコンテンツをBase64形式にエンコードしています。
- 値:

4. アクション: 「HTTP」
HTTPアクションを使用して、OpenAIのAPIとやり取りを行います。
「+」ボタンを押して「HTTP」を追加して下さい。
パラメーター設定は次のようになります。
- URL
- Method(メソッド)
- 値:
POST
- 説明: APIリクエストのHTTPメソッドを指定します。
- 値:
- Headers(ヘッダー)
- Content-Type:
application/json
- Authorization
:Bearer sk-Your-API-Key
- 説明: リクエストヘッダーに、コンテンツタイプと認証情報を設定します。
※ Your-API-Keyには、実際にOpenAIから取得したAPIKeyを設定してください。
- Content-Type:
- Body(リクエストボディ)
- 説明: APIリクエストのメインデータを構成します。メッセージにはテキストと画像データ(Base64形式)が含まれています。
- 値:
{
"model": "gpt-4o-mini",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "画像について教えてください。"
},
{
"type": "image_url",
"image_url": {
"url": "data:image/jpeg;base64,[Base64Image]"
}
}
]
}
],
"temperature": 0.7,
"max_tokens": 800
}

また次のアクションで、必要になるのでこの時点で一度テストをします。

設定したフォルダに画像を追加してください。
処理が正常に実行されると、出力が返ってきます。
次のアクションで利用するので、内容をコピーしてください。

5. アクション: 「JSONの解析」
このアクションは、HTTPアクションの応答をJSON形式で解析し、データを構造化して後続のステップで利用可能にします。「+」ボタンを押して「JSONの解析」を追加して下さい。
Contentには、HTTPの「Body」を設定してください。
JSONスキーマはサンプルからHTTPの「テスト」して実行した値を「サンプルペイロードを使用してスキーマを生成する」をクリックして入力してください。

6. アクション: 「メールの送信 (V2)」
最後に、指定された内容でメールを送信します。
「+」ボタンを押してOutlookの「メールの送信(V2)」を追加して下さい。
宛先・件名をそれぞれ任意のアドレスと件名を入力してください。
また、本文にJSON解析の「message.content」を設定します。

テスト
ここまで設定が終われば最後にテストをします。
今回は生成AIで作成した、次の画像の情報を利用します。

設定したOneDriveフォルダに画像を追加します。
正常に動作すれば、解析結果が指定したメールアドレスに送信されます。

まとめ
今回はPowerAutomateでGPT4oのマルチモーダル機能を利用し画像を処理する方法を紹介しました。
このフローを応用することで、画像から文字情報の抽出や検査など特定の業務要件に対応した柔軟なワークフローを構築できます。
