業務ハックLab -とある情シスの備忘録-

とある情シスの備忘録的なものです。

【スポンサーリンク】

今年一番作ったフロー~Power AutomateとAzure OpenAIとの連携について~

みなさん、こんにちは!
業務ハックLabのようです。

この記事は、Power Automate Advent Calendar 2023 12月17日担当分の記事です。

ネタとしては今までYouTubeチャンネルのほうでも何回か配信した内容ですがPower AutomateからAzure OpenAIのGPTモデルを呼び出す方法について書いていきたいともいます。

Azure OpenAIを触り始めたきっかけ

早速呼び出す方法に!と言いたいところですが私がAzure OpenAI を触り始めたきっかけをちょっと書かせてください。
ChatGPTが2022年11月30日に公開されてから早一年、驚くほどのスピードで広まりましたね。
各企業だけではなく、広く一般にも生成AIに対して関心が多かったということだと思います。
私も割と早い時期からChatGPTを触って遊んでいましたがMicrosoftがOpenAIとパートナーシップを結び、AzureでもOpenAIのGPTモデルが使えることになり、これ幸いと遊び始めたのがきっかけです。

Power AutomateからAzure OpenAIを呼び出す方法

では呼び出すフローの作り方を説明していきましょう。
ちなみにあらかじめAzure側で事前準備が必要ですがその方法は下記記事をご覧いただければと思います。

yo-yon.hatenablog.com

yo-yon.hatenablog.com

Power AutomateからAzure OpenAI Serviceを呼び出すにはAzure AI Studioで「エンドポイント」、「キー」、「サンプルコード」を控えておく必要があります。

  1. Azure AI Studioの「プレイグラウンド|チャット」(赤枠部分)をクリック

  2. 「コードの表示」をクリック

  3. エンドポイントをコピーしメモ帳に控える
  4. キーをコピーしメモ帳に控える
    APIキーは絶対に公開しないよう気を付けてください。
    他の方と共有するフローの場合、Azure Key Vaultなどを使用したほうが良いです。

  5. サンプルコードの右上をクリック

  6. json」を選択、コピーし、サンプルコードをメモ帳に控える

次にPower Automateの設定に移りましょう!

  1. Power Automateのポータル画面で「作成」をクリック

  2. 「インスタント クラウド フロー」をクリック

  3. フロー名を入力し、「フローを手動でトリガーする」を選択して「作成」をクリック
  4. フローデザイナー画面が表示されるので「フローを手動でトリガーする」をクリック
    (新しいデザイナー画面まだ使い慣れない・・・)
  5. 左側に設定ウィンドウが表示されるので「入力の追加」をクリック
  6. 「Text」をクリック
  7. 「Input」という入力欄が追加されたら右側のフローデザイナーでプラスアイコンをクリックし、アクションの追加をクリック
  8. 左側にアクションの追加ウィンドウが表示されるので検索に「変数」と入力し、変数コネクタが表示されたら「さらに表示を」クリック
  9. 「変数を初期化する」をクリック
  10. Nameに任意の名称を入力、TypeはStringにし、先程コピーしたキーをValueに入力
  11. 次にHTTPアクションを追加
  12. URIに先程コピーしたエンドポイントの値を入力
  13. MethodをPostに変更

  14. Headersを下図のとおり設定

  15. Bodyに先程コピーしたサンプルコードを貼り付け、下図のように変更

  16. 一度「保存」をクリック

  17. 「テスト」をクリック

  18. 「手動」を選択し、「テスト」をクリック

  19. 「Input」に適当な文言を入力し、「フローの実行」をクリック
    ここでは「日本Microsoftの所在地は?」と入力しました。

  20. 「完了」をクリック

  21. HTTPで返ってきた結果を確認する為、HTTPアクションのOUTPUTSで赤枠部分の「Show raw outputs」をクリック

  22. 画面右側に返ってきた結果を確認できます
    choicesのmessageにあるcontentに結果が格納されていますね。

では取得できたcontentの結果を後の工程で利用できるようにしましょう。

取得したいのはHTTPアクションの「Body」の「choices」の最初の配列の「message」の「content」です。(「の」ばっかりが続いて読みにくいですがw)

ですので「作成」アクションで下記のような数式を設定すれば取得できますね。
first(body('HTTP')?['choices'])?['message']?['content']


返ってきている結果を見ると、ちゃんとcontent部分だけ抜き出されていますね。


割と簡単にAzure OpenAIと連携ができましたね。

Azure OpenAIと連携についてしっかりと触り始めたのは中村憲一郎さん主催のコミュニティ「勝手に勉強会」で2023年7月29日、30日に開催された「Azure OpenAI ハッカソンやろうぜ」に参加した際ですね。
ハッカソンでは「情シスヘルパー」なるものを作成しました。
Formsで問い合わせをトリガーにPower Automateのフローが発火、Azure OpenAIで回答を自動生成し、情シス側でその回答を確認し、問題が無ければアダプティブカードの送信ボタンをクリックすれば質問をしてきたユーザーに回答が送信されるという仕組みです。


www.youtube.com

はい、今回はPower AutomateとAzure OpenAIの連携についてまとめてみました。
皆さんも試してみてください。
それでは皆さん、業務ハックライフを~

免責事項