ユーザにシステム発話を返した後も、継続して値を保存する方法をご紹介します。
- 対話が終わった後も値を保存できるため、自然なシナリオ制御を行うことができる。
- 値はユーザ毎に保存されます。(他のユーザの値は参照できません)
実装方法
<set>
、<get>
で任意のPredicate名を指定して、グローバル変数を利用することできます。
ご注意
グローバル変数を利用する際は、Predicate名の接頭辞に_var_
を付加することはできません。
xAIML
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<category> <pattern>私の名前は*です</pattern> <template> <set name="username"><star/></set>さんですね。 </template> </category> <category> <pattern>こんにちは</pattern> <template> こんにちは<get name="username"/>さん </template> </category> |
実行結果
1 2 3 4 |
user > 私の名前はタローです bot > タローさんですね user > こんにちは bot > こんにちはタローさん |