衝撃!衝撃!衝撃!
今回の記事は、詳しい解説というよりも感動を書きます!
昨日「やーい、おまえんPower Automate、ごみやーしきー!」とマウントをとられないためにという記事の中でPower Automate Managementに触れました。
コチラはフローの詳細までJSONで取得できるコネクタです。
「あれ?フローの詳細をJSON??」これ渡せばGPT-4o
でMarkdown
のドキュメント作れるのでは?と感じました。
やってみたレポートをササっと書きます!
読んでくださった方からみて使えそうなアイディアかどうか、考えていただくきっかけになると凄く嬉しいです!
Power Automateフローのドキュメント作成
あらためてPower Automate
のドキュメント作成を考えると、市民開発者からサクっと自動化が構築できる反面、ドキュメントの残し方が非常に悩みます。
- IT職のスタンダードがキャッチアップできない
-
接続
や各コネクタの情報まで拾うことが大変- フローの内容だけでもかなり手間
昨今、GPT-4o
を中心に、Claude 3.5
、Gemini
といった凄まじいモデルによって、Code to Document
は、使われている可能性が高いのでは?と感じています。
実態を正確に把握していないため、ご容赦ください。
著者の想像です。
しかしながら、Power Automate Managementコネクタのアクション、フローを取得するはフローに関する詳細、接続、アクションなどあらゆる情報が返ってきます。
コチラをプロンプトとして突っ込めば、Markdown
のドキュメントはいけるのでは?🧐
Azure OpenAI GPT-4oで試す
考える時間より試したほうが早いので、下記のステップで実行することにしました。
フローは手動
トリガーです。
- フローを手動でトリガーする
- フローの取得 今回は手で対象を選択しています
-
作成(Compose)
でGPT-4o
に渡すプロンプトを定義 -
RetrieveEnvironmentVariableSecretValue
- Dataverseからエンドポイントの取得 -
RetrieveEnvironmentVariableSecretValue
- DataverseからAPIキーの取得 -
RetrieveEnvironmentVariableSecretValue
- Dataverseからモデル名の取得 -
HTTP要求
でAzure OpenAI GPT-4o
を実行 -
ファイルの作成
-OneDrive for Businessでマークダウン形式のテキストファイルを作成
- 【非推奨】共有リンクの作成
- チャットやチャネルにカードを投稿する
凄くワクワクします・・・🐟
共有リンクの作成
はアダプティブカードでサクっと結果を見るためだけに使っています。
自分しかいない環境で使っている操作です。
対象のファイルは共有を既に切っています。
試すフローはコチラ!
Office Scriptsを使ってCopilot風のサンプルデータ作成機能をExcelに搭載するで紹介したExcel
からGPT-4oを使い、サンプルデータを返すフローのドキュメントを作成してもらいます。
- Excel Online
- Azure Key Vault
上記の接続を利用していますね。
概要は記事を見ていただければ幸いです!
フロー詳細
フローを取得するで中身を取得します。
今回の記事で実行していることは、プロンプトの中身だけが肝です。
下記はPower Automate フローの詳細、接続、アクションを列挙したJSONです。解析し、その内容をア日本語にローカライズし、レポート形式にして返してください。形式はMarkdown文字列で表示を返してください。
### JSON
@{body('フローの取得')}
下記はDataverse
に格納したAzure OpenAIのシークレットを呼び出しています。
Azure OpenAI
でGPT-4o
を使用するアクションです。
■ HTTP
キー | 値 |
---|---|
URI | body('GetSecret_ENDPOINT')?['EnvironmentVariableSecretValue']}openai/deployments/@{body('GetSecret_DEPLOYMENT')?['EnvironmentVariableSecretValue']}/chat/completions?api-version=2024-02-15-preview |
Method | POST |
■ ヘッダー
キー | 値 |
---|---|
Content-Type | application/json |
api-key | body('GetSecret_APIKEY')?['EnvironmentVariableSecretValue'] |
{
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "@{outputs('プロンプト')}"
}
]
}
],
"max_tokens": 4096,
"temperature": 0.7,
"frequency_penalty": 0,
"presence_penalty": 0,
"top_p": 0.95
}
max_tokens
を最大まで上げています
戻り値はbody('AzureOpenAI_GPT-4o')?['choices'][0]?['message']?['content']
OneDrive for Business
に格納した場合、ブラウザでMarkdown
を見ることができます。
共有リンクは今回だけの検証用です
最後にチャットやチャネルにカードを投稿するを使って、Teams
に作成完了通知が来るようにしています。
{
"type": "AdaptiveCard",
"body": [
{
"type": "TextBlock",
"text": "@{outputs('フローの取得')?['body/properties/displayName']}のレポート",
"weight": "Bolder",
"size": "Medium"
},
{
"type": "TextBlock",
"text": "OneDrive for Businessにレポートの準備ができました",
"wrap": true
}
],
"actions": [
{
"type": "Action.OpenUrl",
"title": "レポートを開く",
"url": "@{outputs('共有リンクを作成する')?['body/WebUrl']}"
}
],
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.4"
}
結果はいかに・・・!
ドキドキ・・・!
おお👀✨
うおおおお!!
感動しました!!!
GPT-4o最高です!
- 見せたくないものは黒塗りしています
- Markdownで必ず返すためには、プロンプトの工夫やfunction callingの設定が必要だと思います
- さらなる領域に踏み込む場合、
Azure Functions
が適しているように感じます - 今回は実験目的であり、セキュリティを十分に検討しない方法を採用しています
- 実運用に適するためには課題がある前提です
おわりに
夢がありますね!
夢をみるきっかけになると何よりです!