システムが自動設定した変数(システムPredicate)を使用する方法をご紹介します。
システムPredicateとは、ユーザ発話などのタイミングでシステムが自動設定するPredicateを指します。
また、システムPredicateには、発話の時間帯や親密度などがあり、自然な対話シナリオを作成するのに役立ちます。
利用できるシステムPredicateの一覧はこちらをご覧ください。
name
属性にシステムPredicate名を指定することで、システムPredicateの値を取得できます。
実装方法1
時間帯を取得する実装例です。(time_period
を使用し時間帯によってシステム発話が変化します。)
xAIML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<category> <pattern>こんにちは</pattern> <template> <!-- システム内固定のPredicateから時間帯を取得 --> <condition name="time_period"> <li value="早朝">おはようございます。早起きですね。</li> <li value="朝">おはようございます。</li> <li value="昼">こんにちは</li> <li value="夕方">こんばんは、外が暗くなってきましたね。</li> <li value="夜">こんばんは</li> <li value="深夜">もう深夜です。早く寝ましょう。</li> </condition> </template> </category> |
実行結果
1 2 3 |
※time_periodが夕方 user > こんにちは bot > こんばんは、外が暗くなってきましたね。 |
実装方法2
季節を取得する実装例です。(season
を使用し季節によってシステム発話が変化します。)
xAIML
1 2 3 4 5 6 7 |
<category> <pattern>TEST</pattern> <template> <!-- システム内固定のPredicateから季節を取得 --> <get name="season"/>ですね。 </template> </category> |
実行結果
1 2 3 |
※3月〜5月に実行 user > TEST bot > 春ですね。 |
1 2 3 |
※6月〜8月に実行 user > TEST bot > 夏ですね。 |
1 2 3 |
※9月〜11月に実行 user > TEST bot > 秋ですね。 |
1 2 3 |
※12月〜2月に実行 user > TEST bot > 冬ですね。 |