先日の Microsoft Ignite 2019 では、Power Platform に関しても数多くの新たな発表がありました。Microosft Flow も Power Automate とサービス名が変更されたようです。
そんな数多くの発表の中では、Power Virtual Agents というチャットボットを簡単に作成できる新たなサービスが、Power Platform のひとつとして発表されました。
Power Virtual Agents で作成するボットからは、Power Automate のソリューションという機能で作成されたフローを呼び出すことができます。
Add actions to your bot using Power Automate
https://docs.microsoft.com/en-us/power-virtual-agents/how-to-flow
賢いボットを作ろうと思ったら、なにかのデータベースに接続するのが手っ取り早いだろうということで、Wikipedia の情報へアクセスできないかな?と思い、Power Automate から Wikipedia の情報を参照する方法を確認しました。
Wikipedia の API を確認する
そもそも Wikipedia に API はあるのかと思って調べたらスグに見つかりました。
API:Main page
https://www.mediawiki.org/wiki/API:Main_page
どうやら MediaWiki API というのを利用したら良いみたいですね。
ややこしいのを読み解いていくと、どうやら次のような GET リスエストを送ると XML で結果が返ってくるようです。最後の titles
に情報が欲しいページのタイトルを指定します。
https://ja.wikipedia.org/w/api.php?format=xml&action=query&prop=extracts&exintro=&explaintext=&titles=東京都
結果は次のようなかたちでした。
<api batchcomplete=""> <query> <pages> <page _idx="774362" pageid="774362" ns="0" title="東京都"> <extract xml:space="preserve"> 東京都(とうきょうと、英: Tokyo Metropolis)は、日本の首都であり、関東地方に位置する東京都区部(東京23区)、多摩地域(市部と西多摩郡)、島嶼部(大島支庁、三宅支庁、八丈支庁、小笠原支庁)を管轄する広域地方公共団体(都道府県)の一つ。東京都庁所在地は新宿区。 </extract> </page> </pages> </query> </api>
これを Power Automate のフローから呼び出せば良さそうです。
Power Automate から呼び出す
Power Automate から呼び出すには、HTTP コネクタの HTTP アクションを利用します。ちなみにこちらのコネクタは、Premium コネクタとなっていますので、利用するためには Power Automate に関する有償ライセンスが必要になります。
titles
には、このアクションより前のアクションやトリガーから出力された値を指定しておきました。
そして結果が XML の形で返ってきますので、xpath 関数を利用して欲しい値(今回は extract タグの中身)を取り出します。body('HTTP')
の HTTP の部分は API を呼んだ HTTP アクションのアクション名になります。
xpath(xml(body('HTTP')),'/api/query/pages/page/extract/text()')[0]
このような形で簡単に Power Automate のフローから Wikipedia にアクセスし、情報を参照することができました。
Power Virtual Agents のボットから利用してみる
Power Virtual Agents で作成したボットからフローを呼び出す方法は、冒頭に記載した docs のドキュメントを参照頂くとして、ボットから Wikipedia を呼び出すと次のようになります。
ボット経由で他のサービスの情報をユーザーに返すことで、ボットが一気に賢いものになったように感じられます。
ボットを Power Virtual Agents で作成するには、このようにして Power Automate のフローを利用し、他のサービスのデータや処理を呼び出すことが重要になってくるように感じました。
QA ボットを作成するのであれば、QnAMaker の API を呼び出すのも良さそうですかね。
さいごに
Premium コネクタにはなってしまいましたが、このように簡単に Web 上のデータを参照できる HTTP コネクタはやはり強力ですね。
そして Power Virtual Agents はとても面白いです。これまではボットを作成しようと Microsoft の技術を利用した場合は、Bot Framework + LUIS + 他のサービスの API 連携(QnAMaker など)を組み合わせる必要があり、そしてコーディングが不可欠でした。
Power Virtual Agents では、Bot Framework から LUIS あたりまでの処理を GUI 操作だけで作成でき、他のサービスとの API 連携を Power Automate のフローで作成できるイメージだと感じました。
従来よりも圧倒的に容易で手軽にボットを試すことができますね。