先日の 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 のフローで作成できるイメージだと感じました。

従来よりも圧倒的に容易で手軽にボットを試すことができますね。