コンテンツに移動
Google Cloud

Dialogflow と Google Chat の統合

2020年12月21日
https://storage.googleapis.com/gweb-cloudblog-publish/images/deconstructing_chatbots.max-1300x1300.jpg
Google Cloud Japan Team

※この投稿は米国時間 2020 年 12 月 9 日に、Google Cloud blog に投稿されたものの抄訳です。

オンラインでの共同作業に加え、生産性の維持が重要な鍵を握る今日の世界において、chatbot には果たすべき大きな役割があります。でも、なぜ chatbot なのでしょうか。ワーカーは外部ソースからの情報を頻繁にコミュニケーションに組み込む必要があり、chatbot はその情報をすべて 1 か所で見つけるのに役立ちます。この投稿では、Google で実際のユースケースからアイデアを得た bot についてご説明します。

Google のような大企業では、特定の製品分野の担当者を見つけるのが難しい場合があります。お客様のチームから質問を受けると、回答を探すためにスプレッドシート(サンプルの加工済みデータ)など多くのリソースから情報を掘り出さないといけないことが多々あります。

外出中の場合、特にスプレッドシートの URL や、回答を見つける方法を覚えていないと、情報を見つけることはさらに困難になります。スプレッドシートを探す代わりに、チャット メッセージを送信して、ネットワーキングやセキュリティに関する専門的なことについて質問できる相談先を確認できたらどんなにいいでしょうか。そこで役立つのが、DialogflowGoogle Chat の統合です。ユーザーは Google Chat 内で直接質問を行うことができ、回答を見つけるために Sheets API と統合され Dialogflow に組み込まれた bot で対処できるため、コンテキストの切り替えを減らすことができます。ではその仕組みを見ていきましょう。

本投稿をお読みいただくほかに、こちらの動画でプロセス全体を確認することも可能です。

仕組み

ユーザーが Google Chat で質問すると、起動された bot が Dialogflow と統合され、自然な会話を促進します。次に Dialogflow は、Cloud Functions フルフィルメントを介して、バックエンド データベースまたは Google スプレッドシート(下の画像を参照)と統合されます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/dialogflow.max-1100x1100.png

Google スプレッドシートからの情報の抽出

Google スプレッドシートから情報を抽出するには、まずリクエストを処理するためにどんな情報が関連しているかを正確に知る必要があります。必要な情報を特定したら、Sheets API を使用してその情報を抽出します。

入力フレーズの定義

あらかじめ決められた順序で入力する必要がある基本的な bot を作成する方が簡単ですが、そうした bot は使いにくいでしょう。ユーザーは順序を覚えなくてはならないだけでなく、常にすべてのスペルを正確につづる必要があります。また、ツールが使いづらいと誰も使用しなくなります。

chatbot 導入の鍵となるのはユーザビリティです。これは、自然な会話の中で出てくるフレーズ、たとえば次のようなフレーズを処理できることを意味します。

  • 「Gmail でデータ管理をしているのは誰ですか」

  • 「データ管理の専門家を教えてもらえますか」

  • 「データ管理の専門家を教えてください」

ここで Dialogflow の出番です。Dialogflow は、モバイルアプリ、ウェブアプリ、bot などにおける会話型ユーザー エクスペリエンスの設計や統合を簡素化する自然言語理解プラットフォームです。

私たちは 3 つの簡単なステップで bot を構築しましたが、chatbot の分解の動画シリーズをすべて視聴していれば見覚えがあるのではないでしょうか。

ステップ 1: エンティティを定義する

Dialogflow は、自然な会話でトレーニングされたモデルを使用します。ただし、これらのモデルを使用する前に、bot はロールのタイプ、スキル、アカウント名など、コンテキスト内のキーフレーズを知っておく必要があります(例: アカウント スペシャリスト、Gmail、セキュリティ)。

https://storage.googleapis.com/gweb-cloudblog-publish/images/entities.max-600x600.png

ステップ 2: インテントを構成する

インテントとは、基本的にはユーザーの質問です。ここでは、アクションとパラメータを定義して、作成したエンティティの使用方法を定義します。bot をルームに追加すると、インテントから応答が返されます。

アクションとパラメータ

定義したエンティティは、アクションとパラメータの構成に使用されます。ここでは、ロール、スキル、アカウントはすべて、このインテントが処理されるために必要なパラメータです(ユーザーは好きな順序で指定できます)。ユーザーがその 1 つを忘れた場合、ユーザーに確認するためのプロンプトを定義します。

https://storage.googleapis.com/gweb-cloudblog-publish/images/actionandparamerters.max-1000x1000.png

トレーニング フレーズ

人によって話し方が異なるため、トレーニング フレーズを使用して、多種多様なユーザーのリクエスト例を提供します。Dialogflow は事前トレーニング済み NLP モデルを使用し、これらのトレーニング フレーズは、ユースケースの特定のモデルをトレーニングするのに役立つ実際の質問になります。

https://storage.googleapis.com/gweb-cloudblog-publish/images/training_untTp9m.max-900x900.png

ステップ 3: フルフィルメント コードを設定する

フルフィルメントでは、Node.js Firebase Functions ですべての API を接続してまとめます。今回は Sheets API を使用しますが、任意のバックエンドに接続できます。詳細については、サンプルコードをご覧ください。

https://storage.googleapis.com/gweb-cloudblog-publish/images/inlineeditor.max-1100x1100.png

ワンクリック統合

Dialogflow は、Google Chat、Google アシスタント、Slack などの一般的な会話プラットフォームと統合されます。直接的なエンドユーザー インタラクションが処理されるため、エージェントの作成に専念できます。各統合は、エンドユーザー インタラクションをプラットフォーム固有の方法で処理します。詳細については、統合プラットフォームのドキュメントをご覧ください。

まとめ

Google Chat、Dialogflow、Google スプレッドシート(または別のデータソース)を統合する chatbot は簡単に構築できます。詳細については、Dialogflow と Google Chat を統合する方法に関する動画をご覧ください。プロセスについても詳しく説明しています。また、完全な GitHub のソースコードもご確認いただけます。

Dialogflow を使用したチャットや音声アプリケーションの構築について詳しく確認するには、初心者でもすぐに作成できるようになることを目的として制作した動画シリーズ、chatbot の分解をご覧ください。

Cloud コンテンツの詳細については、Twitter で @pvergadia@srivas_dev をフォローしてください。

-Google デベロッパー アドボケイト Priyanka Vergadia

-AI / ML デベロッパー アドボケイト Anu Srivastava

投稿先