📚

Dialogflow CX の統合に Slack と Google Chat が追加されました

2023/12/22に公開

はじめに

こんにちは、クラウドエース データ ML ディビジョン所属の寺内です。

データ ML ディビジョンでは、Google Cloud が提供しているデータ領域のプロダクトについて、新規リリースをキャッチアップするための調査報告会を毎週実施しています。
新規リリースの中でも、特に重要と考えるリリースを記事としてまとめ、本ページのように公開しています。
本記事では、今回リリースされた Dialogflow CX 統合へ追加された機能と、具体的な設定方法を解説いたします。

1. リリース概要

今回ご紹介するリリースは2023年9月29日付で発表された Dialogflow CX への新しい連携機能の追加です。
このリリースでは、Dialogflow CX に統合できるサービスに Slack と Google Chat が追加されました。
(プレビュー段階なので使用する際はご注意ください。)

実際のリリースノートについては下記をご確認ください。

https://cloud.google.com/dialogflow/docs/release-notes?hl=ja#September_29_2023

2. 前提知識 Dialogflow とは

Dialogflow は、Google Cloud が提供している自然言語理解プラットフォームです。自然言語を処理することで、テキストや音声の入力を処理してチャットボットを作成することが可能です。
Dialogflow には2種類のエディションがあり、比較的小規模なチャットボットの場合は ES、大規模なチャットボットの場合は CX が適しています。

タイプ 説明
ES 比較的小規模なチャットボットに対応。中規模程度までの複雑なエージェントに適している
CX 高度なエージェントタイプ。大規模なエージェントに適している

ES、 CX の詳細な比較については下記の公式ドキュメントをご確認ください。
https://cloud.google.com/dialogflow/docs/editions?hl=ja#agent-types

今回のリリースで機能追加されたのは CX エディションの方ですので、以下では CX エディションの前提で説明します。
まずは、前提知識として、Dialogflow CX を使用する上で最低限必要な用語について説明します。

エージェント

Dialogflow CX エージェントは、エンドユーザーとの同時会話を処理する仮想エージェントです。これは、人間の言語のニュアンスを理解する自然言語理解モジュールです。Dialogflow は、会話中のエンドユーザーのテキストまたは音声をアプリやサービスが理解できる構造化データに変換します。Dialogflow エージェントは、システムに必要な種類の会話が処理されるように設計および構築されます。

チャットボット全体を一纏めにした単位と考えればOKです。

フロー

多くの場合、複雑なダイアログでは複数の会話トピックが関与します。たとえば、ピザの配達エージェントの場合、料理の注文、顧客情報、確認という別個のトピックが考えられます。各トピックでは、エージェントがエンドユーザーから関連する情報を取得するため、複数の会話ターンを実行する必要があります。
フローは、これらのトピックと、関連する会話パスを定義するために使用されます

各会話トピック(次で説明するページに該当します)間をどのように遷移していくかを定義したものです。

ページ

Dialogflow CX の会話(セッション)は、ステートマシンとして記述し、可視化できます。CX セッションの状態はページで表されます。

フローで説明した、会話トピックに対応します。

インテント

1 回の会話ターンにおけるエンドユーザーの意図(含意)を分類します。

ユーザの発言の意図を表したものです。
例えば、ピザの注文エージェントであれば、「ピザを注文したい」「トッピングを選びたい」「配達時間を選びたい」等になります。

3. 今回のリリースで使えるようになった機能の概要

Dialogflow CX に Slack と Google Chat との連携が追加されました。
Slack と Google Chat から Dialogflow で作成したチャットボットと会話することができるようになります。

4. 検証

今回の検証では、Slack を例にサンプルのチャットボットと実際に接続する方法をご説明します。

4.1 事前準備

Dialogflow CX で作成されたエージェントと Slack ワークスペースについては既に準備されている想定で説明します。
エージェントの作成方法はこちらをご確認ください。

https://cloud.google.com/dialogflow/cx/docs/concept/agent?hl=ja

4.2 設定方法の解説

以下のドキュメントに沿って説明しますので、適宜ご確認ください。
https://cloud.google.com/dialogflow/cx/docs/concept/integration/slack?hl=ja

4.2.1 Slack ボットを作成する

[step 1]
Slack アプリ に移動します。

[step 2]
Create New App ボタンから新しい Slack アプリを作成します。
slack_create_new_app_1

[step 3]
Slack ワークスペースを選択する画面になるので、Dialogflow と接続したいワークスペースを指定します。
slack_create_new_app_2

[step 4]
途中でマニフェストの設定ファイルを入力するように求められます。
設定ファイルの例は下記に記載します。

特に、oath_config フィールドと event_subscriptions フィールドがサンプルのファイルと一致していることを確認してください。

display_information:
  name: Dialogflow CX
  description: Dialogflow CX Integration
  background_color: "#1148b8"
features:
  app_home:
    home_tab_enabled: false
    messages_tab_enabled: true
    messages_tab_read_only_enabled: false
  bot_user:
    display_name: CX
    always_online: true
oauth_config:
  scopes:
    bot:
      - app_mentions:read
      - chat:write
      - im:history
      - im:read
      - im:write
      - incoming-webhook
settings:
  event_subscriptions:
    request_url: https://dialogflow-slack-4vnhuutqka-uc.a.run.app
    bot_events:
      - app_mention
      - message.im
  org_deploy_enabled: false
  socket_mode_enabled: false
  token_rotation_enabled: false

[step 5]
Bot User OAuth Token、署名トークンの2つは後で使うため、控えておいてください。
それぞれ、下記の順に移動します。

  • Bot User OAuth Token
    • [Install App] > [OAuth Tokens for Workspace] > [Bot User OAuth Token]
  • 署名トークン
    • [Basic Information] > [App Credentials] > [Signing Secret]

slack_create_new_app_3
Bot User OAuth Token の確認方法

slack_create_new_app_4
署名トークンの確認方法

4.2.2 Dialogflow を設定する

[step 1]
左側のパネルで [Manage] タブをクリックします。

[step 2]
左側のメニューで [Integrations] をクリックします。

dialogflow_1

[step 3]
[Slack] タイルの [Connect] ボタンをクリックします。

dialogflow_2

[step 4]
次の情報をそれぞれ入力し、[Start]をクリックします。

  • アクセス トークン(Access token)
  • 署名トークン(Signing token)

dialogflow_3

[step 5]
[Webhook URL] の値は後で使うため、控えておいてください。

dialogflow_4

4.2.3 Slack で Webhook を有効にする

Slack アプリに戻り、[イベント サブスクリプション] > [イベントの有効化] > [リクエスト URL] で Webhook URL を貼り付けます。
slack_enable_webhook_1

4.3 検証

ここまでで Slack との連携の設定が完了しました。

実際に Dialogflow CX というアプリが追加されていることが確認できます。
slack_integrated_dialogflow_1

Slack では、下記のどちらかの方法でチャットボットと会話することが可能です。

  • 作成したアプリに DM を送信する
  • チャンネルにアプリを招待し、@メンションする

今回は Dialogflow のビルド済みエージェントであるSmall Talk エージェント に、ジョークを作ってもらいます。
実際に Slack から会話してみた結果がこちらです。
slack_integrated_dialogflow_2

5. まとめ

この記事では、Dialogflow CX の連携対象に Slack と Google Chat が追加されたリリースを紹介し、実際に Slack と連携する手順を解説しました。
とても簡単に設定できますので、ぜひ試してみてください。

Discussion