週刊アスキー

  • Facebookアイコン
  • Twitterアイコン
  • RSSフィード

AIや多言語対応のアプリもマウスポチポチで実現できる

プログラマーだらけのde:codeでLogic Appsを叫ぶ

2018年06月08日 09時00分更新

 2018年5月22~23日に開催されたマイクロソフトのエンジニア向けカンファレンス「de:code 2018」が開催された。ASCII.jpでも連載を担当したオルターブースの松本典子氏による「ノンコーディングでサーバーレス体験。Azure Logic Apps のすゝめ」に参加してきた。

プログラムが書けない人に挙手を求める松本典子氏

トリガーとアクションを組み合わせてワークフローを作る

 スピーカーは福岡のオルターブースでWebデザインやロゴデザインを手がけるデザイナーである松本典子氏。ASCII.JPにてAzure Logic Appsに関する連載を執筆しており、2016年からMicrosoft MVP for Microsoft Azureを獲得している。

 プログラマーだらけのde:codeでセッションを行なっているのに、松本氏はプログラムが書けない。冒頭、松本氏が「プログラムを全然書けない人!」と挙手を求めたところ、案の定ほとんどの人が手を挙げず、「アウェイですね」と松本氏は笑う。

 今回のテーマは、Azure Logic Appsを使って、ノンコーディングかつサーバーレスでロジックを作成し、業務改善に活かせるという内容。サーバーレスというのはサーバーが不要になるというのではなく、開発者がサーバーについて考えなくてもよくなるということ。ソリューションのスケーリングやポスティング、監視などを考える必要がないというわけだ。

 マイクロソフトからはAzure FunctionsとAzure Logic Appsという2つのサーバーレスサービスが出ている。Functionsはプログラムを書けるのが前提だが、Logic Appsはノンコーディングでも利用できる。

「Logic Appsを端的に説明すると、『WebサービスAで何かがあったら、WebサービスBで何かをする』ということです。さまざまなサービスと連携できるiPaaS(Integration Platform as a Service)です。非エンジニアの方でも、ExcelやPowerPointのような感覚で使用できます。現場で使いながら、どんどんよくしていくということが可能です」(松本氏)

 Logic AppsはAzureポータルのブラウザ上で操作する。料金は利用した分だけの従量課金制。ロジックの構築には、コネクタを利用する。コネクタとは、サービス連携を行うためのコンポーネントをまとめたものだ。

 コネクタには2つの概念があり、1つが「トリガー」で、1つの仕組みの中に必ず1つ入る。イベントがあったら動作し、たとえば「OneDriveにファイルが作成されたら」という条件で動くのがトリガーだ。もう1つがトリガーの結果として動く「アクション」で、こちらは「Gmailにメールする」という動作を行なう。この2つをつなげると「OneDriveにファイルが作成されたらGmailにメールを送信する」というロジックができる。アクションを複数登録することも可能で、一連のトリガーとアクションをまとめて、「ワークフロー」と呼ぶ。現在、190種類以上のコネクタが提供されているが、マイクロソフトだけでなく、サードパーティ製のコネクタも多い。

Logic Appsの画面。コードは一切なく、マウス操作が可能

「Azureのサービスなのでリージョン単位で提供されているのですが、米国中西部に新しいコネクタが来やすいです。そのため、新しいサービスを使いたいときは、ぜひ米国中西部を選択してください」(松本氏)

 Logic Appsには通常のコネクタとは別に、カスタムコネクタを作成することもできる。たとえば、自社サービスをコネクタとしてワークフローに組み込みたい時に利用するものだ。今回は、自社の問い合わせAPIを持っていると仮定し、そのRESTful APIをSwaggerと組み合わせる方法が紹介された。ただし、カスタムコネクタを作るには、コードを書く必要がある。松本氏も、今回は知り合いのエンジニアに頼んで書いてもらったそうだ。

クレーム解析と多言語対応を備えたシステムもコードなしに作れる

 後半では、Logic Appsを活用し、クレーム対応AIと多言語対応を実装した問い合わせフォームを構築するデモが行なわれた。搭載する機能は大きく4つ。1つ目の機能が問い合わせメールの感情を分析し、クレームの可能性をAIで判定する。2つ目が、その結果次第で自動返信メールの内容を変えて返信する。3つ目が、Googleスプレッドシートへ内容を書き込んだり、Slackへの通知を行なう。4つ目が多言語対応だ。

 文面の感情分析は「Cognitive Services Text Analytics」を利用している。Logic Appsでは「テキスト分析」という名前のコネクタとして公開されている。テキストを解析して、スコアを0から1の間で返してくれる。スコアが低いほどネガティブな内容という判定となる。

言語の感情分析を行なう「テキスト分析」コネクタ

 デモでは、問い合わせメールが来たら英語に翻訳して「テキスト分析」コネクタにつなげて感情分析を行なった。すると、0~1の値が返ってくるので、その値が0.3よりも低ければクレームと判断するフローになっていた。今回は、返信メールも送るので、日本語と他言語の条件分岐を作り、多言語の場合は英語とそれ以外で条件分岐を作り、それぞれのフローでクレームチェックと翻訳などを行なっていた。翻訳には「Microsoft Translator」コネクタを利用する。実は「テキスト分析」コネクタは日本語にも対応しているのだが、現状は精度がよくないので、英語に翻訳した方が正確のようだ。

 チェックの結果に応じて、クレーム用と通常用に用意した返信メールをメールサービスの「SendGrid」コネクタを利用して送信する。同時に「Google スプレッドシート」や「Slack」コネクタを使い、Googleスプレッドシートに内容を書き込んだり、社内で使っているチャットサービスのSlackに問い合わせの着信通知を出す。もちろん、問い合わせメールとクレームメールのチャンネルを用意し、条件分岐で振り分けることも可能だ。さらに、前出のカスタムコネクタを利用し、問い合わせシステムに書き込みも行う。このワークフローでは、全部で49本のアクションを利用していた。もちろんここまでノーコードだ。

 松本氏は「ノーコーディングでここまでできます。Logic Appsは直感的に操作ができ、コードを1行も書かずにワークフローを作れるのがすごいところです」と締めた。

この記事をシェアしよう

週刊アスキーの最新情報を購読しよう

本記事はアフィリエイトプログラムによる収益を得ている場合があります