サーバレスと自然言語エンジンにより、コンシェルジュとして働くチャットボット (その名は、会議円滑くん)

ビジネス開発本部
第3応用技術部 第4チーム
庄谷 信哉

はじめに

今回の匠コラムでは、2019年夏に実施されましたシスコテクノロジーコンテストに応募した取り組みについてご紹介します。その提出作品制作プロジェクトの取り組みから得た「教訓」と「プロトタイプ作品」を皆さんにお伝えします。

今回のシスコテクノロジーコンテストは5回目で、毎年多数のシスコユーザーから作品が応募されています。歴代の受賞作品の特徴としては、いままでのインフラ管理を便利にするツール開発作品から、デジタルトランスフォーメーション(DX)を実現する作品に変化してきています。
このことから、今年は執筆者を含むチームにて、ワークスタイルイノベーション(WSI:Work Style Innovation)を活かし、ビジネスパーソンに広く取り入れられ、働き方改革を促進する作品をプロトタイプ開発しました。

アイディア出しから要求仕様への落とし込み

今回チームを組んだメンバーは、それぞれ以下の4名で構成しました。

・シスコプログラムコンテスト経験者+ネットワークインフラエキスパート
・ネットワークインフラ+DevOpsエキスパート
・クラウドコンピューティング+プログラミングエキスパート
・元シスココースインストラクター+システムセキュリティエキスパート

それぞれ持っている知識とスキルと経験が異なっており、スキルのダイバーシティがうまく活用できる組み合わせのチームになっていました。

常に利用者の目線と得意分野にとらわれない自由な発想を念頭に置きながら、各メンバーのアイディアをブレーンストーミングにて整理した結果、「会議室を予約する際に毎回、Outlook上で検索⇒予約といった作業の効率化が実業務に直結するのでは」という意見に固まり、現状の想定課題から、本ソリューションで解決するための要求仕様への落とし込みを下記の様に検討致しました。

本ソリューション実現に向けた要求仕様:
・Outlookでの会議室予約をWebex Teams上から実施可能とし、会議室予約にかかる時間を短縮する。
・会議に必要な資料を事前に共有する機能を実現し、会議時間の短縮を目指す。
・事前に会議に参加するメンバーをインバイトしたWebex Teamsスペースに対し、会議開始5分前と会議終了5分前に通知が行われ、タイムマネージメント補助機能として実装する。

要求仕様から必要コンポーネントの決定

上記要求仕様を機能実装するうえで、今回は必要なコンポーネントとして以下を選定しました。

会議室予約スペース:Webex Teams
簡易で且つ直感的な会議室予約を実現するためにWebex Teamsを利用したチャットによる対話方法を取り入れました。

自然言語エンジン:Dialogflow
チャットにおける言語入力を補助するためGoogle CloudのDialogflowを採用し、言語入力で問題となりやすい自然言語の解析を採用しました。

共有ファイル保存:Box
必要な資料を会議参加者に事前に共有し円滑に議題を進められる様、セキュアなファイルコラボレーションサービスであるBoxを利用しました。

会議室予約:Outlook
会議室予約では、Outlook APIを利用した連携によりWebex Teamsでの入力に沿った内容で自動的にOutlook会議室予約表示、予約を実現しました。

SaaSサービスの連携:Amazon API Gateway/AWS Lambda /Amazon DynamoDB
Webex Teams、Dialogflow、Outlook間のAPI連携では、AWS Lambdaを利用しておりOutlookのログインに必要な認証情報は、Amazon DynamoDBに格納するアーキテクチャを採用しました。

各コンポーネント間の関係を検討した結果が以下の図1です。

図1.会議室予約システムアーキテクチャ図

サービス間の連携動作

次に本システムのサービス間連携は、以下のように動作することで、ユーザからの入力情報に従って、Outlook会議室情報習得、または、予約の処理を実施しています。
その際のアーキテクチャ図は図2の通りです。

図2.サービス連携動作図

① ユーザよりWebex Teams上のチャットで文字入力(例.明日予約)
② Webex Teamsへの入力内容がWebex BotによりDialogflowへ通知されます。
なお上記Webex TeamsへのIntegrations機能を利用するには、Webex Botのトークン情報をDialogflow上に登録しておく必要があります。
(参考:https://cloud.google.com/dialogflow/docs/integrations/spark
③ Dialogflowで入力メッセージ内容を判別し、外部サービス連携機能(Fullfillment)を利用することでAmazon API Gatewayを通じ、AWS Lambda上にセットされた関数をコールします。
④ ③で呼び出された処理(会議室情報取得、予約)に応じたOutlook会議室情報を操作するためのOutlook APIをコールします。
⑤ 最後にWebex Botを通じWebex Teams上にOutlookでの操作結果を通知します。

完成品の動作イメージ

上記アーキテクチャを利用し、完成した会議室予約システムの一例をご紹介します。この例では、会議室の予約状況の確認した後に希望する部屋を予約するシナリオとなり、3回の入力で会議室予約完了まで実施可能です。本システムでは、会議予約中に自動的に受け答えを行ってくれるWebex Botを「会議円滑くん」と命名しています。
(情報保護の観点より、下記例での記載URLは、削除しております。)




また、予約したミーティングの開始5分前になると、会議円滑くんBotから予約を行ったWebex Teamsスペースへ開始5分前を通知します。
さらに会議で利用する資料を保存するクラウドストレージサービス(box)のフォルダを作成しURLを通知します。

最後に開催されたミーティングが終了5分前になると、会議円滑くんBotから
予約を行ったWebex Teamsスペースへ終了5分前を通知します。

最後に

このように、今回我々が開発を実施した会議予約システムは、簡単な手順で会議室の予約を実現でき、あたかも全社の社員からの会議に関わる定常業務をすべて一手に担う「コンシェルジュ」として働いてくれることを目指したプロトタイプ作品です。
とくに今回のプロジェクトでよい経験となったのは、チーム4名のアイディアがスキルのダイバーシティに富んでおり、プログラミング開発の各フェーズおいても従来の手法に囚われることなく常に新鮮なアイディアや気づきがあり、それを具現化できたことです。
今後も新たなビジネスに対する時間を創出できるよう、このような業務効率化を実現するようなアイディアを発信していきます。

執筆者プロフィール

庄谷 信哉

2005年にネットワンシステムズに入社し、スイッチ製品の新旧技術の調査・検証業務を元に
ネットワーク提案、導入を支援する業務を経て、現在は、クラウド関連製品担当に従事。
最近は、企業システムの今後のマルチクラウド化を見据えたクラウド関連技術の最新動向に注目している。

・AWS Certified Solutions Architect – Professional
・MCPCモバイルシステム技術検定1級

イベント/レポート

pagetop