1. 主要ページへ移動
  2. メニューへ移動
  3. ページ下へ移動

QES ブログ

記事公開日

最終更新日

【Azure OpenAI】Power Automate クラウド フローで実装するOpenAI 外部API連携 ③(Power Automate実装例:初期設定)

  • このエントリーをはてなブックマークに追加

Azure OpenAI(AOAI)を用いる時、GPTで柔軟に外部APIと連携して情報を得たり操作を行いたいケースがあります。
この時、AOAIの関数呼び出し(toolsパラメータ)を用いて実装する事が考えられます。
本記事ではこれをPower Automate フローで実装する方法について全6回に分けて掲載します。
本ブログは第3回です。長い記事になりましたがお付き合いいただければ幸いです。

【掲載内容一覧】

No

内容

OpenAI toolsパラメータとは

基本構成

Power Automate実装例:初期設定

Power Automate実装例:AOAI

Power Automate実装例:tool実行

Power Automate実装例:回答




初期設定の全体像

初期設定のイメージは下図の通りです。
メインループに入るまでの設定について記載します。

PowerAutomate-AOAI-Tools-image3-1.png


個別設定

① Power Apps (V2)

フロー呼び出し時の引数としてmessages文字列を受け取ります。

PowerAutomate-AOAI-Tools-image3-2.png
messagesはこのようなイメージです。

 [
  {
    "role": "system",
    "content": "'''- あなたはユーザーからの質問に回答する「QUICK E-Solutionsデモ」です。自分の名前を使って、ユーザーに話しかけてください。\n- ユーザーとのコミュニケーションは必ず日本語で行ってください。回答する内容は、区切りの良いところで改行してください。\n- 最初にできる機能を示してください。\n- 質問内容から、関数を選択し、必要なプロパティを設定します。\n- 選択した関数の未設定プロパティについて、1つずつ質問します。例 \"ニュースの検索キーワードは何ですか?\"\n- 選択した関数のプロパティに必要な値が得られるまで、質問を繰り返してください。ただし、ユーザーのコメントがない場合は、まず質問をしてください。\n- 関数に必要なすべてのプロパティ情報が得られたら、その関数を呼び出します。\n- Assistant回答をする場合、もし参照リンク情報があれば回答の最後に列挙する事。\n'''"
  }, {
    "role": "user",
    "content": "最新のAzure OpenAIのAPIバージョンについて教えて下さい。"
  }
]


変数を初期化する messages

PowerAutomate内ではmessagesを配列として扱うため、配列変数を用意します。

PowerAutomate-AOAI-Tools-image3-3.png


JSONの解析 messages

引数に対するフォーマットチェックを行いJSON化します。

PowerAutomate-AOAI-Tools-image3-4.png
Schema設定は以下の通りです。

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "array",
    "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
            "role": {
                "type": "string"
            },
            "content": {
                "type": "string"
            }
        },
        "required": [
            "role",
            "content"
        ]
    }
}

 

Apply to each messages

JSON化した引数のmessagesを配列要素として取り出します。

PowerAutomate-AOAI-Tools-image3-5.png


配列変数に追加 messages 2

配列変数「messages」に引数の内容を格納します。

PowerAutomate-AOAI-Tools-image3-6.png

作成 Tools

呼び出す関数を定義します。今回はsearchWebのみ作成しています。

PowerAutomate-AOAI-Tools-image3-7.png
設定内容は以下の通りです。function、parameters双方にdescriptionによる説明を記載しOpenAIの判断材料とします。

[
 {
   "type": "function",
   "function": {
     "name": "searchWeb",
     "description": "Get the latest information by searching the internet",
     "parameters": {
       "type": "object",
       "properties": {
         "search_text": {
           "type": "string",
           "description": "All requirements (separated by spaces) that you determine the user needs to search for in order to answer them."
         }
       },
       "required": [
         "search_text"
       ]
     }
   }
 }
]

 

変数を初期化する loopFlg

メインループ用のフラグを設定します。

PowerAutomate-AOAI-Tools-image3-8.png

今回のまとめ

今回は初期設定まで実施しました。OpenAI Tools対応としてはJSONの解析のSchema設定やToolsの関数設定が参考になると思います。
次回からメインループに入ります。

QUICK E-Solutionsでは、「AIチャットボット構築サービス」をはじめとして、各AIサービスを利用したシステム導入のお手伝いをしております。それ以外でも QESでは様々なアプリケーションの開発・導入を行っております。提供するサービス・ソリューションにつきましては こちら に掲載しております。
システム開発・構築でお困りの問題や弊社が提供するサービス・ソリューションにご興味を抱かれましたら、是非一度 お問い合わせ ください。

※このブログで参照されている、Microsoft、Microsoft 365、Microsoft Copilot for Microsoft 365、Microsoft Teams、Azure OpenAI、その他のマイクロソフト製品およびサービスは、米国およびその他の国におけるマイクロソフトの商標または登録商標です。
※その他の会社名、製品名は各社の登録商標または商標です。

  • このエントリーをはてなブックマークに追加

お問い合わせ

Contact

ご質問やご相談、サービスに関する詳細など、何でもお気軽にご連絡ください。下記のお問い合わせフォームよりお気軽に送信ください。

お問い合わせ

資料ダウンロード

Download

当社のサービスに関する詳細情報を掲載した資料を、下記のページよりダウンロードいただけます。より深く理解していただける内容となっております。ぜひご活用ください。

資料ダウンロード