<srai>による関数的な使い方をご紹介します。
実装方法
<srai>
を使用することにより、categoryブロックを関数的な使い方にすることができます。
<sraix>
でも関数的な使い方をすることはできますが、<sraix>
を多用すると処理時間が長くなってしまいます。
xAIML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<category> <pattern>*</pattern> <template> <think><set name="_var_time"><srai>#TIME</srai></set></think> <condition name="_var_time"> <li value="|undefined">ごめんなさい、わかりませんでした。</li> <li><get name="_var_time"/>です。</li> </condition> </template> </category> <category> <pattern>#TIME</pattern> <template> <ext name="nludatetime"> <!-- 指定なしの場合は現在日時がデフォルト値/指定ありの場合は"+3Y2M3D"(3年2ヶ月3日後の日時情報)のようにリクエストする --> <arg name="extracted_word"><get name="_task_slot_time"/></arg> </ext> <!-- 絶対日時表現に変換後の日時(日本語)情報 --> <get name="_ext_nludatetime_string_date_jp"/> </template> </category> |
実行結果
1 2 |
user > 明日の日付 bot > 2018年11月1日です。 |