週刊アスキー

  • 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行も書かずにワークフローを作れるのがすごいところです」と締めた。

この記事をシェアしよう

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