会話モデルは、ユーザーがアクションに対して何を言えばよいか、またどのような方法で アクションはユーザーに反応します。会話モデルの主な構成要素は インテント、タイプ、シーン、 プロンプト。アクションのいずれかが呼び出されると、Google アシスタントが そのアクションにユーザーが引き渡され、アクションはユーザーとの会話を 会話モデルに基づいて、次の要素で構成されます。
Valid user requests - ユーザーがアクションに何を言うかを定義するには、 アシスタントの NLU を補強するインテントのコレクションを作成して、 固有のリクエストを把握できます。各インテントは、 トレーニング フレーズを定義します。「 アシスタント NLU は、これらのトレーニング フレーズに類似したフレーズを含むように拡張します。 これらのフレーズが集約され、インテントの言語モデルが生成されます。
アクション ロジックとレスポンス - シーンは、インテントを処理し、必要なロジックを実行して、ユーザーに返すプロンプトを生成します。
有効なユーザー リクエストを定義する
ユーザーがアクションに何を言うかを定義するには、複数のインテントを組み合わせて使用します。 説明します。ユーザーのインテントとタイプを使用すると、 独自の言語モデルを作成します。システム インテントとタイプを使用すると、組み込みの イベント検出機能を実装できます。たとえば、ユーザーがアクションを アシスタントが入力をまったく検出しない。
ユーザー インテントを作成する
ユーザー インテントを使用すると、ユーザーを定義する独自のトレーニング フレーズを定義できます。 確認しましょう。アシスタント NLU はこれらのフレーズを使用して自己トレーニングを行います。 分析する必要がありますユーザーがキーワードに一致する発言をした場合、 ユーザーのインテントの言語モデルに基づいて、Google アシスタントがインテントを照合して ロジックを実行し、ユーザーに返信できます。
<ph type="x-smartling-placeholder">![](https://developers-dot-devsite-v2-prod.appspot.com/static/assistant/console/images/builder/new-intent.png?authuser=0000&hl=ja)
ユーザー インテントを作成するには:
- [Develop] タブで、[User intent >&CirclePlus;(新しいインテント)、 名前を指定して Enter キーを押してインテントを作成します。
- 左側のメニューで、新しく作成したインテントをクリックします。インテント エディタ 表示されます。
- インテントにトレーニング フレーズを追加します。必要な数のトレーニング フレーズを トレーニングします。
- 省略可: トレーニング フレーズにアノテーションを付けて、アシスタント NLU に解析を指示する
指定された型に一致するユーザー入力から型付きパラメータを抽出します。
<ph type="x-smartling-placeholder">
- </ph>
- [新しいパラメータを追加] フィールドにパラメータの名前を入力します。
- プルダウン メニューからシステムタイプを選択するか、カスタムタイプを作成します。
- パラメータがリストかどうかを指定します。これによりパラメータによって 同じ型の複数の値を格納できます。
- [トレーニング フレーズの追加] セクションで、追加するテキストをハイライト表示します。 適用できます。これにより、アシスタント NLU に、ハイライト表示された部分を text をパラメータとして渡します。ユーザーが話の内容がタイプに一致すると、NLU は その値をパラメータとして抽出します
システム インテントを作成する
システム インテントでは、事前定義された言語でインテントを利用できます。 一般的なイベント(アクションを終了したい、ユーザーが タイムアウトになります。システム インテントを作成するには:
- [Develop] タブで、[System intent] をクリックします。システム インテントのセットは、 (NO_MATCH、NO_INPUT、CANCEL など)があります。
- 各システム インテントには独自のハンドラがあり、 システム インテントの種類ごとに 1 つずつ確認することをおすすめします。たとえば、システム インテントを使用すると、 Webhook イベントを作成し、イベント発生時に静的プロンプトを送信します。
カスタムタイプを作成する
カスタムタイプを使用すると、独自のタイプ仕様を作成して NLU をトレーニングできます。 1 つのキーにマッピングする必要がある一連の値を理解する。
<ph type="x-smartling-placeholder">![](https://developers-dot-devsite-v2-prod.appspot.com/static/assistant/console/images/builder/type-options.png?authuser=0000&hl=ja)
カスタムタイプを作成するには:
- [Develop] タブで、[Types] >&CirclePlus;(新しいタイプ)。
「このメソッドで値の種類を指定する type support? セクションを
- 単語と類義語では、複数の値を 1 つのキーにマッピングできます。
これをエントリと呼びますタイプには、1 つまたは複数のエントリを含めることができます。もし
次の NLU 設定を有効にすることもできます。
<ph type="x-smartling-placeholder">
- </ph>
- ファジー一致を有効にする - 複数の単語を含むエントリを許可します。 単語の発話順序が異なる場合でも一致するように設定されます。
- 不明な値を受け入れる - 有効な値をすべて指定できない場合、 周囲の入力に基づいて未知の単語やフレーズを受け入れ、 食料品店に追加される可能性のあるアイテムなどのインテント トレーニング データ 選択します。
- 正規表現を使用すると、正規表現パターンに一致するタイプを指定できます。 Google の RE2 規格に基づいています。
- 自由形式のテキスト: ユーザーの発話すべてに一致するテキスト タイプです。
- 単語と類義語では、複数の値を 1 つのキーにマッピングできます。
これをエントリと呼びますタイプには、1 つまたは複数のエントリを含めることができます。もし
次の NLU 設定を有効にすることもできます。
<ph type="x-smartling-placeholder">
[Add entries] セクションで、型の値を指定します。[自由形式 text の場合、型は任意のテキストに一致するため、エントリを指定する必要はありません。
アクションのロジックとレスポンスを作成する
アシスタント NLU がユーザー リクエストをインテントと照合し、アクションが シーンで処理しますシーンは強力な論理エグゼキュータであり、 会話中にやり取りできます。
<ph type="x-smartling-placeholder">![](https://developers-dot-devsite-v2-prod.appspot.com/static/assistant/conversational/images/scene.png?authuser=0000&hl=ja)
シーンを作成する
以下のセクションでは、シーンを作成して機能を定義する方法について説明します。 各シーンのライフサイクル ステージで設定できます。
シーンを作成するには:
- [Develop] タブで、[Scenes] >&CirclePlus;(新しいシーン) Enter キーを押してシーンを作成します。
- 左側のメニューで、新しく作成したシーンをクリックします。シーンエディタ 表示されます。
1 回限りの設定を定義する
シーンが初めてアクティブになったときに、 開始時のステージ。開始ステージでは 1 回だけ実行されます。 実行されません。
シーン内で [On Enter](開始時)ステージをクリックして、その機能を指定します。 このステージでは、次の機能を指定できます。
- Webhook を呼び出す - Webhook をトリガーします。Webhook を確認する ドキュメントをご覧ください。
- プロンプトを送信する - 静的なプロンプトを指定して、 会話を続けます。プロンプトのドキュメントをご覧ください。 をご覧ください。
</ph> 図 4.開始ステージのシーンの例
条件を確認する
[条件] では、スロット充填、セッション ストレージ、ユーザー ストレージ、 シーンの実行フローを制御するホーム ストレージ パラメータです。
シーン内で、Condition ステージの + アイコンをクリックします。「 右側に条件エディタが表示されます。次の項目を指定できます。 次の段階に進みます
- Condition - ベースとなるロジックをオフにする実際の条件文を指定します。 できます。構文については、条件のドキュメントをご覧ください。 情報です。
![](https://developers-dot-devsite-v2-prod.appspot.com/static/assistant/conversational/images/scene-condition.png?authuser=0000&hl=ja)
スロット充填を定義する
スロットを使用すると、ユーザー入力から型付きパラメータを抽出できます。
シーンエディタで、[Slotfulfillment](スロット充填)ステージの [+] アイコンをクリックします。「 スロットのエディタが右側に表示されます。次の項目を指定できます。 プロパティの一例です。
- スロット名: スロットの名前を指定します。Google Cloud コンソールの スロット値のマッピングでは、 対応するインテント パラメータを指定します。
- Slot type: スロットのタイプを カスタムタイプです
- このスロットは必須です: このスロットを必須としてマークします。有効にした場合、スロットには このスロットが埋まるまで充填は完了しません。
- このスロットにデフォルト値を割り当てる: スロットのデフォルト値を指定します 読み取りに成功します
- スロット値のライトバックのカスタマイズ: 維持するセッション パラメータを指定します。 スロット充填が完了した後のスロットの値。
- スロットの検証: スロットが埋まったときに Webhook をトリガーします。この設定 すべてのスロットに適用されます。
- Webhook の呼び出し(スロットが必要な場合に有効): Webhook をトリガーします。 詳細については、Webhook に関するドキュメントをご覧ください。 できます。
- Send prompts(スロットが必要な場合に有効): 静的なプロンプトを指定します ユーザーに送信して、会話を続ける方法を把握します。詳しくは、 prompt ドキュメント プロンプトが表示されます。
特定のスロットタイプ(トランザクションやユーザー エンゲージメントに関連するスロットなど)では、 スロットを設定できる追加のセクションが表示されます。スロット 構成に応じて、ユーザーの会話エクスペリエンスが 定義できます。
スロットを設定するには、
フルフィルメント(セッション パラメータとして参照)、またはインライン JSON エディタで呼び出します。
各スロットタイプで使用可能なプロパティは、
Actions Builder の JSON リファレンス。たとえば、actions.type.DeliveryAddressValue
各スロットの参照コンテンツに対応する
DeliveryAddressValue
あります。
![](https://developers-dot-devsite-v2-prod.appspot.com/static/assistant/conversational/images/scene-slot.png?authuser=0000&hl=ja)
スロット値のマッピング
多くの場合、以前のインテント マッチには、部分的にまたは一致したパラメータが含まれている可能性があります。 対応するシーンのスロット値いっぱいにまで表示されます。この場合 すべてのスロットには インテント パラメータで埋められるフィールドが、シーンのスロット充填にマッピングされます(スロット名が インテント パラメータ名が一致します。
たとえば、ユーザーが飲み物を注文するインテントに一致したときに、「 バニラコーヒーを注文すると、サイズ、フレーバー、飲み物の時間枠がすでに存在する場合は、 対応するシーンで塗りつぶされていると見なされます(該当のシーンで定義されている場合、 あります。
入力を処理
このステージでは、アシスタント NLU にユーザー入力とインテントを一致させることができます。 目的のインテントを追加することで、インテント マッチングの対象を特定のシーンに設定できます。 追加できますアシスタントに話しかけて会話の流れを管理できます 特定のシーンがアクティブなときに特定のインテントに一致させることができます。
シーン内で、[User intent handle](ユーザー インテントの処理)の [+] アイコンをクリックします。または システム インテントの処理ステージ。インテント ハンドラのエディタが表示されます。 右の図はインテントの次の機能を指定できます。 handler:
![](https://developers-dot-devsite-v2-prod.appspot.com/static/assistant/conversational/images/scene-customintent.png?authuser=0000&hl=ja)
![](https://developers-dot-devsite-v2-prod.appspot.com/static/assistant/conversational/images/scene-systemintent.png?authuser=0000&hl=ja)