that

文脈のある対話を実現するため直前のシステム発話を設定します。<that>タグに設定した値は、ボットの直前の応答文とマッチングされ、<pattern>タグのマッチングと合わせて<category>タグが選ばれる条件として評価されます。<that>タグはワイルドカードを含む<pattern>タグと同じ要素を扱うことが可能です。また、1つの<category>タグに複数の<that>タグを並べて記述できます。

ご注意

前回システム発話情報には有効期限があります。

次のユーザ発話入力が、対話タイムアウトの設定時間を過ぎてから行われた場合は、前回システム発話情報が初期化された後に対話処理が行われます。
時間計算はシナリオ対話APIappSendTimeappRecvTimeの差を参照して行います。その値が対話タイムアウトの設定を越えている場合に前回システム発話情報が初期化されます。
また、シナリオ対話APIのリクエストパラメータinitTalkingFlagの値がtrueである場合も初期化されます。

属性

名称 必須 デフォルト 説明
partial
独自拡張
boolean false partial="true"の場合に前回システム発話文の部分一致マッチングを有効にします。
id
独自拡張
string マッチングさせたい前回システム発話IDを指定します。
emotion
独自拡張
string マッチングさせたい前回システム発話のemotionを指定します。

partial

trueを設定した場合に前回システム発話文の部分一致マッチングを有効にします。

Example

xAIML

実行結果

id

id属性を指定すると、前回のシステム発話の特定に<that>タグの内容ではなく発話IDでマッチングを行います。

発話IDの情報は前回のシステム発話がされてAPIのレスポンスを返す際に更新されます。

そのため、<template>タグのid属性にIDを指定していたとしても、そのまま<srai>タグで<that>タグを持つ<category>に入力を渡すことはできません。

強制的に現時点での前回システム発話IDを変更するには、predicateidの値を変更することで行えます。
指定する値には命名規則があり、文頭にid:を付けなければ有効になりません。(具体例は後述をご覧ください)

Example – 1

発話IDで前回発話マッチングを行う例です。

xAIML

実行結果

Example – 2
<srai>の再帰処理で<that>の絞り込みを行う例です。

xAIML

実行結果

emotion

マッチングさせたい前回システム発話のemotionを指定します。

emotionには以下のいずれかを1つ以上指定できます。

  • glad
  • angry
  • sad
  • happy

複数指定する際は、パイプ区切りで指定するか、<that>を複数記述してください。
以下の記述はどちらも同じemotionにマッチします。

子要素

<pattern>タグと同様です。