7
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【第2話】Power Appsで画像分析機能実装してみた(応用編)

Last updated at Posted at 2025-12-05

前回のあらすじ

前回は、Gemini × Power AppsでAIフォームを作成しました。
Power Appsに、AIフォームを導入したい方がいたら役立つと思うので最後まで見てもらえると嬉しいです!

本記事の目的

本記事では、Power Appsで撮影した写真や、保存している写真をAIに読み込まさせる機能を実装したいと思います。

Power Appsとは

Power Appsは、Microsoftが提供するローコード開発プラットフォームで、ユーザーが簡単にカスタムアプリを作成できるツールです。コードの知識が少なくても、ドラッグ&ドロップでアプリを構築し、データの接続や自動化を実現できます。ビジネスプロセスの効率化に役立ちます。

Geminiとは

Googleが開発した最新の大規模言語モデル(LLM)で、自然言語処理だけでなく、コード生成、推論、マルチモーダル(テキスト・画像・音声など)対応を特徴としています。従来のモデルよりも高度な推論能力を持ち、複雑な質問への回答や、プログラミング支援、データ分析など幅広い用途に活用できます。APIや各種サービスと連携できるため、アプリケーションにAI機能を簡単に組み込むことが可能です。

今回の開発ではgoogleアカウントが必要になります

画像分析とは

画像分析とは、画像データから有用な情報を抽出・解釈する技術やプロセスのことです。コンピュータビジョンや機械学習を用いて、物体認識、特徴抽出、分類、異常検知などを行います。医療診断、防犯監視、製造業の品質管理など幅広い分野で活用され、画像を数値化して解析することで、人間の視覚では難しいパターンや傾向を発見できます。

Gemini API キーの取得

前回の記事と同様に、APIキーを取得します。キーは前回と同様のキーで問題ないです。
下記のリンクにアクセスして、Get API keyをクリックしましょう。

Get API keyをクリックするとAPIを作成できるので、コピーします。

image.png

Power Automateで画像分析フローを作成する

Power AutomateでGeminiとPower Appsを紐づけるフローを作成します。
Power Apps上でフローの追加をクリックして、新規フローを作成します。

本記事で作成するフローは前記事とは別のフローになります。

image.png

トリガー(Power Apps(V2))の設定

「入力を追加」→「テキスト」を選択し、質問内容と記載します。

image.png

次に入力に「入力を追加」→「ファイル」を選択し、fileと記載します。

image.png

JSONの設定

次にJSONの作成を行います。
JSONを用いることで、取得したファイルをAPIに渡すことができるようになります。
「新しいステップ」を押すと「アクションの追加」が選択できるので、「jsonの作成」を検索し、下記の画像の作成を選択します。

image.png

入力をクリックすると、動的コンテンツを選択することができるので、「質問内容」を選択します。

image.png

HTTPの設定

次にHTTPの設定を行います。
「新しいステップ」を押すと「アクションの追加」が選択できるので、HTTPを選択します。

image.png

選択後、方法、URLに下記の情報を入力します。

mainText.json
{
  "contents": [
    {
      "parts": [
        {
          "text": "@{triggerBody()?['text']}"
        },
        {
          "inline_data": {
            "mime_type": "image/jpeg",
            "data": "@{outputs('作成_1')}"
          }
        }
      ]
    }
  ]
}

image.png

key=の後にGoogle AI Studioで取得したキーを貼り付けます

Power Appsでフローに応答する

次にPower AutomateでPower Appsに応答できるようします。
先ほどと同様に、新しいステップを押すと「アクションの追加」が選択できるので、「Power Appsまたはフローに応答する」を選択します。

image.png

「入力を追加」を選択し、下記の情報を記載します。

  • タイトル:回答内容
  • 値:
body('HTTP')['candidates'][0]['content']['parts'][0]['text']

フロー完成形

完成したフローは下記になります。
今回のフローでは合計4つのアクションを作成しました。

image.png

フローの作成が完了したら、Power automateでのフローの作成は完了です。
最後にフロー名を任意の名前(私の場合はgemini質問回答)に変更し、保存します。

Power Appsでアプリを作成する。

Power Appsで下記の写真のようなアプリを作成します。

image.png

初めに、新しい画面から空を選択して、画面を作成します。
画面を作成したら、任意画面名を設定します。(私の場合はImageAnalysisScreen)

image.png

空の画面から作成する場合は「空のキャンパスを使用して開始」を選択してください。

下記の項目をそれぞれ挿入します。

  • テキスト入力:質問を入力するテキストボックス
  • 画像の追加:写真を撮影したり、画像をアップロードする
  • ボタン:入力したものをgeminiに送信するボタン
  • テキストラベル:回答を表示するラベル

送信ボタンを作成

送信用のボタンを作成し、コントロールに下記の情報を入力します。

//画像の変換
Set(imageData, Substitute(JSON(UploadedImage1.Image, JSONFormat.IncludeBinaryData), """", ""));
//クラウドフロー実行、戻り値をAns2に保存
Set(Ans2, '任意のフロー名'.Run(TextInput2.Text, {file:{contentBytes: UploadedImage1.Image, name: "UploadedImage"} }).回答内容);

任意のフロー名、TextInput2、UploadedImage1は人によって設定が異なるので注意が必要です。

image.png

フロー名.RunでPower Automateのフローを動かすことができます。

テキストラベルの設定

次にテキストラベルを設定します。
プロパティを「Text」に変更し、コントロールを「Ans2」設定します。

image.png

次に、プロパティを「Overflow」を選択し、コントロールをOverflow.Scrollにします。

image.png

これにてPower Appsでのアプリ開発は完了です。

動作確認

先ほど作成した画像解析アプリを実際に扱ってみたいと思います。
今回は下記の画像を読み取って解析したいと思います。

動物写真.jpg

テキスト入力に任意のプロンプト名を入力します。
(今回は「動物の名前と状況を説明してください」)

image.png

プロンプトを入力し、送信ボタンを押下することで、AIが質問に回答してくれることが確認できました!

image.png

まとめ

本記事では前回の記事を応用することで、Power Appsに画像解析機能を作成することができました!
Geminiの高度なAIモデルを活用することで、画像から特徴を抽出し、分類や認識を行う処理をクラウド上で実現できます。一方、Power Appsを利用することで、ノーコードで業務アプリに統合でき、現場担当者でも簡単に利用可能な仕組みを構築できました。このアプローチは、AI活用のハードルを下げ、DX推進において迅速な価値提供を可能にする点で非常に有効です。
皆さんも試しに使ってみてください!

7
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?