DialogFlow CXで天気予報チャットボットをつくる: Entity編
🌟 はじめに
おぐまです。
勉強も兼ねてDialogFlow CXを使用した天気予報チャットボットを作ります!
それぞれ設定項目を分割して説明していて、前回は Intentの作成
について説明しました。
-
Intent
の作成 -
Entity
の作成 👉 ココ! -
Flow,Pages
の作成 -
???
※ここで作成したシンプルチャットボットを改造(応用)する
今回は2番の Entityの作成
について説明します。
👷♂️ 事前準備
- Google Cloud Platform アカウント
- DialogFlow CX Agent
📖 ステップ
👉 Entityの理解
Entity
は、ユーザーの発言から具体的な情報を抽出しその情報をもとに適切なアクションを決定するためのものです。
Entityを上手く使うことでチャットボットはユーザーの意図をより正確に解釈できるようになり、より適切な回答をしてくれるようになります。
ここでIntent
との違いをさらっとまとめておきます(自分もこんがらがったので)
EntityとIntentの主な違い:
- Entity:具体的な情報やデータを識別し抽出する役割
- Intent:ユーザーの発言や質問から意図を識別する役割
📺 Entity画面の機能
機能・要素 | 説明 |
---|---|
Entities | 既存のEntityのリストを表示し、新しいEntityの追加や編集を行います |
Create | 新しいEntityを作成するためのボタンです |
Import | Entityの定義を外部ファイルやCloud Storageに保存されているファイルからインポートする機能です |
📺 Entity作成画面の主な要素
要素 | 説明 |
---|---|
Entity type | 情報のタイプを定義します。時間や日付などの共通情報タイプにはシステムEntityがありますが、独自のものを作成することもできます。 |
Display name | ディスプレイ名です。文字、数字、アンダースコア、ダッシュを含むことができ、文字で始まる必要があります。 |
Entities only (no synonyms) | シノニムを持たないEntityのみを指定します。 |
Regexp entities | 正規表現に基づいてEntityを指定します。 |
Entities | Entityを追加するには、参照値とオプショナルなシノニムを入力します。例: Entityタイプが野菜の場合、参照値として「ネギ」、オプショナルなシノニムとして「青ネギ」があります。 |
Search | Entityを検索します。 |
Advanced settings | 自動拡張、ファジーマッチング、ログでのマスキングなどの高度な設定。 |
Automatic expansion | Entityがユーザーの入力に自動的に適応するかどうかを指定します。 |
Fuzzy matching | 入力がEntityに完全に一致しない場合でも、類似性に基づいてマッチングを試みます。 |
Redact in log | ログに記録されるときにEntityの値をマスキングします。 |
Entity exclusions | マッチングされるべきではない例外フレーズのコレクションです。例: サイズEntityタイプに「巨大」(形容詞)がある場合、「巨人」(名詞)を除外として追加することを検討します。 |
👉 Entityの作成
-
表示名の設定:
- Display name: わかりやすい名前を設定します。ジョジョを扱うエンティティであれば「ジョースター家」とする。
-
エンティティの追加:
-
Entities: 「ジョースター家」エンティティの場合、参照値として具体的な名前を追加します。
- Entity: ジョジョ
- Synonyms: ジョナサンジョースター,ジョセフジョースター,空条承太郎,東方仗助,ジョルノジョバァーナ,空条徐倫,ジョニィジョースター,東方定助,ジョディオジョースター
-
Entities: 「ジョースター家」エンティティの場合、参照値として具体的な名前を追加します。
-
オプション設定:
- Automatically expand: 新しいジョジョに対応できるようにこのオプションを有効にする。
- Fuzzy matching: 入力に多少の誤りがあってもマッチングさせたい場合は、このオプションを有効にします。
- Entity exclusions: マッチングされるべきではない例外フレーズ設定する。
-
エンティティの保存:
- 設定が完了したら、「Save」ボタンをクリックしてエンティティを保存します。
-
エンティティのインポート (オプション):
- 大量の地域名などを一括で追加したい場合は、「Import」機能を利用して、エンティティのリストが記載されたファイルをインポートします。
💡 補足 : EntityとIntentの連携について
DialogFlow CXでのチャットボットでは Entity
と Intent
は連携して動作します。具体的にこれらがどう連携するかを確認します。
Step 1: ユーザーの入力受付
まず、ユーザーがチャットボットに質問や命令を入力します。
「今日の東京の天気は?」という質問があったとします。
Step 2: Intentの識別
DialogFlow CXはユーザーの入力から「天気を知りたい」という意図(Intent)をユーザーの言葉が含むキーワードやフレーズ、文脈などを分析してどのIntent
にマッチするかを判断します。
Step 3: Entityの抽出
次に、DialogFlow CXは入力から具体的な情報(Entity)を抽出します。
今回の例では「今日」が日付Entity(@sys.date-time
)、そして「東京」が地域名Entity(@sys.location
)として識別されます。
Step 4: 応答の生成
Intent
と抽出されたEntity
の情報を基に、DialogFlow CXが適切な応答を生成します。
🎉 まとめ
この記事では、DialogFlow CXを使用して天気予報チャットボットを作成する際のEntity
の設定方法について詳しく解説しました。
Intent
とEntity
のつながりも説明したのでイメージできたでしょうか?
次のステップでは、これまでに作成したIntent
と今回作成したEntity
を使って、ユーザーに応じたフローとページを設計する方法について詳しく説明します!
💡 参考
Discussion