はじめに
以前Power Virtual Agents経由でOutlookでメールを送信しました。今回は発展としてOpenAIにメールの本文を考えてもらいます。
注意
前回まではM365に含まれる範囲でPower Virtual Agentsを活用していたのですが、今回の記事ではプレミアムコネクタを使用するため、Power Virtual Agentsのサブスクリプションが必要になります。機能比較はMicrosoftドキュメントをご参考ください。
実際にやってみる
OpenAIのAPI Keyを取得する
OpenAIのAPI Keyが必要となりますので、OpenAIにログインし、API Keyを取得しておきます。Keyは絶対に他人に公開しないように保管しておく必要があります。
ここでポイントは、フリートライアルで$18あるのですが2023/05/02時点で試したところカード登録なしで実行すると429(スロットリング)が発生しました。現状利用が制限されているようです。カード情報も登録すると回避できると思いますが、費用が発生するところなので利用規約を読むなど個人の責任でお願いします。
Power AutomateでOpenAIのAPIを呼び出す
JSON for the schema definition
{
"type": "object",
"properties": {
"text": {
"type": "string"
},
"index": {
"type": "integer"
},
"finish_reason": {
"type": "string"
}
}
}
使いこなせていないのもあってやってることはシンプルで、Power Virtual Agentからもらった入力をプロンプトとしてDaVinciエンジンに投げ、返ってきた結果をまたPower Virtual Agentに渡しているだけです。
ポイントは、OpenAIのAPIからどんな形でアウトプットが入手できるか理解していないとその後のフローが書けない点です。
これは実際のOpenAIからのレスポンスを見ると話が早いのですが、choicesのtextに求めている本文がJSON形式で返ってきているのが分かります。
公式ドキュメントだともっと詳しく理解できます。
Power Virtual AgentにOpenAIのフローを組み込んで強化する
チャットの内容をメールの本文として送付するところまでは前回と同じなので省略します。今回はその本文を先ほどのOpenAIフローを使ってより高度にしました。自然言語で適当な作文命令をしてあげるとまあまあ良さげな文章で返してくれました。
まとめ
Power Virtual AgentsをインタフェースにOpenAIに作文をお願いし、Power Automateでその内容を踏まえてメールの送信をしてもらいました。セキュリティとかコンプライアンスのことは考えていないので業務利用などは注意する必要がありますが、ノーコード恐るべしです。とりあえず動かしてみたという感じなのでプロンプトやら使い道やら広げていきたいです。