記事公開日
最終更新日
【Azure OpenAI】Power Automate クラウド フローで実装するOpenAI 外部API連携 ③(Power Automate実装例:初期設定)

Azure OpenAI(AOAI)を用いる時、GPTで柔軟に外部APIと連携して情報を得たり操作を行いたいケースがあります。
この時、AOAIの関数呼び出し(toolsパラメータ)を用いて実装する事が考えられます。
本記事ではこれをPower Automate フローで実装する方法について全6回に分けて掲載します。
本ブログは第3回です。長い記事になりましたがお付き合いいただければ幸いです。
【掲載内容一覧】
No |
内容 |
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
初期設定の全体像
初期設定のイメージは下図の通りです。
メインループに入るまでの設定について記載します。
個別設定
① Power Apps (V2)
フロー呼び出し時の引数としてmessages文字列を受け取ります。
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を配列として扱うため、配列変数を用意します。
JSONの解析 messages
引数に対するフォーマットチェックを行いJSON化します。
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を配列要素として取り出します。
配列変数に追加 messages 2
配列変数「messages」に引数の内容を格納します。
作成 Tools
呼び出す関数を定義します。今回はsearchWebのみ作成しています。
設定内容は以下の通りです。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
メインループ用のフラグを設定します。
今回のまとめ
今回は初期設定まで実施しました。OpenAI Tools対応としてはJSONの解析のSchema設定やToolsの関数設定が参考になると思います。
次回からメインループに入ります。
システム開発・構築でお困りの問題や弊社が提供するサービス・ソリューションにご興味を抱かれましたら、是非一度 お問い合わせ ください。
※このブログで参照されている、Microsoft、Microsoft 365、Microsoft Copilot for Microsoft 365、Microsoft Teams、Azure OpenAI、その他のマイクロソフト製品およびサービスは、米国およびその他の国におけるマイクロソフトの商標または登録商標です。
※その他の会社名、製品名は各社の登録商標または商標です。