BOTの出力を定義するタグで、任意の文字列や子要素タグを記述できます。<template>
タグは<category>
タグ内に必ず1つだけ記述する必要があります。
1 2 3 4 |
<category> <pattern>こんにちは</pattern> <template>こんにちは!</template> </category> |
属性
名称 | 型 | 必須 | デフォルト | 説明 |
---|---|---|---|---|
id 独自拡張 |
string |
※ | – | システム発話IDを指定します。 ※ max_output 属性, suppression_period 属性を利用する場合、必須となります。 |
emotion 独自拡張 |
string |
– | – | システム発話の感情表現を指定します。 |
sound 独自拡張 |
string |
– | – | システム発話の効果音を指定します。 |
at 独自拡張 |
string |
– | start |
sound の再生タイミングを指定します。 |
timeout 独自拡張 |
integer |
– | – | APIレスポンスのタイムアウト(秒)を指定します。 |
max_output 独自拡張 |
integer |
– | – | システム発話の出力回数制限数を指定します。 |
suppression_period 独自拡張 |
integer |
– | – | システム発話の出力抑制期間(分)を指定します。 |
talkend 独自拡張 |
boolean |
– | – | APIレスポンスの発話終了フラグを指定します。 |
id
id
属性を利用することで、<template>
に発話IDを設定できます。発話IDは<category>
タグの子要素の<that>
タグで使用されます。
また、max_output
属性, suppression_period
属性を利用する場合、id
属性は必須になります。
1 2 3 4 |
<category> <pattern>こんにちは</pattern> <template id="0001">こんにちは!</template> <!-- 「こんにちは!」が出力されます。 --> </category> |
emotion
システム発話の感情表現を指定します。
クライアント側で、emotion
に応じたリアクションや、音声合成を行う際に使用します。
emotion
属性で指定した値は、シナリオ対話APIのレスポンスパラメータに設定されます。
emotion
属性は以下のいずれかを指定できます。
glad
angry
sad
happy
sound/at
システム発話の効果音(sound
)と、再生タイミング(at
)を指定します。
sound
属性には、クライアント側であらかじめ準備した効果音を指定してください。
※at
はsound
が指定されている場合のみ使用できます。
sound
属性とat
属性で指定した値は、シナリオ対話APIのレスポンスパラメータに設定されます。
at
属性は以下のいずれかを指定できます。
start
middle
end
timeout
APIレスポンスのタイムアウト(秒)を記述します。
xAIML
1 2 3 4 |
<category> <pattern>こんにちは</pattern> <template timeout="10">こんにちは!</template> </category> |
実行結果(JSON)
1 2 3 4 5 6 7 8 |
{ "systemText":{ "expression":"こんにちは!", "utterance":"こんにちは!" }, "timeout":"10", ・・・ } |
max_output
システム発話の出力回数制限数を記述します。出力回数制限数を超えると、その<template>
のid
属性を持つ<category>
タグはパターンマッチの対象から除外します。id
属性が記述されていない場合、この属性は無効になります。
xAIML
1 2 3 4 |
<category> <pattern>こんにちは</pattern> <template id="0001" max_output="1">こんにちは!</template> </category> |
実行結果
1 2 3 4 |
user > こんにちは bot > こんにちは! user > こんにちは bot > NOMATCH |
suppression_period
システム発話の出力抑制期間(分)を記述します。1度出力したシステム発話は指定した時間(分)、パターンマッチの対象から除外されます。max_output
属性と併用した場合は、出力抑制期間内であってもmax_output
属性に指定した回数までは出力します。id
属性が記述されていない場合、この属性は無効になります。
xAIML
1 2 3 4 |
<category> <pattern>こんにちは</pattern> <template id="0001" suppression_period="1">こんにちは!</template> </category> |
実行結果
1 2 3 4 5 6 7 |
user > こんにちは bot > こんにちは! user > こんにちは bot > NOMATCH (1分後) user > こんにちは bot > こんにちは! |
talkend
APIレスポンスの発話終了フラグを記述します。再帰処理などで、1度 true
になった場合はfalse
になりません。
xAIML
1 2 3 4 |
<category> <pattern>こんにちは</pattern> <template talkend="true">こんにちは!</template> </category> |
実行結果(JSON)
1 2 3 4 5 6 7 8 |
{ "systemText":{ "expression":"こんにちは!", "utterance":"こんにちは!" }, "talkend":"true", ・・・ } |
子要素
名称 | 必須 | 説明 |
---|---|---|
bot |
– | あらかじめ登録してあるボットプロパティを取得します。 |
br |
– | シナリオ対話APIのレスポンスに、改行を挿入します。 |
calc 独自拡張 |
– | xAIML上で計算(加算・減算・乗算・除算・剰余)を行います。 |
command 独自拡張 |
– | xAIMLからクライアントに任意の情報を返却します。 |
condition |
– | Predicateの内容に応じて条件分岐を行います。 |
conditional_random 独自拡張 |
– | 条件を満たした要素を出力候補とし、その中からランダムに出力内容を選択します。 |
date |
– | 日時を表示したり、特定の書式に変換します。 |
date_add 独自拡張 |
– | タグで囲んだ日時に対して加減算を行います。 |
date_span 独自拡張 |
– | タグで囲んだ日時と、属性で指定した日時の差の絶対値を計算します。 |
ext 独自拡張 |
– | AIML拡張のサービス(CGS)を利用する為に使用します。
|
eval |
– | <learn> <learnf> の外から引用した値をリテラル化します。<learn> <learnf> 内の<template> でのみ使用できます。 |
formal |
– | タグで囲んだ内容の単語の先頭文字を大文字にします。 |
get |
– | Predicateの値を取得します。 |
lowercase |
– | タグで囲んだ内容に含まれるアルファベットを、大文字から小文字にします。 |
map |
– | 特定の文字列をあらかじめ定義した辞書(MAPファイル)に基づいて置換します。 |
random |
– | ランダムに出力内容を選択します。 |
sentence |
– | タグで囲んだ内容の先頭文字を大文字にします。 |
set |
– | Predicateに値を記録します。 |
sr |
– | <pattern> のマッチングで行なった形態素解析結果を引き継いで<srai> します。 |
srai |
– | タグで囲んだ内容でパターンマッチを再度実行します。 |
sraix |
– | 指定したボットと対話を行います。 |
star |
– | <pattern> のワイルドカードシンボル(”*” or “_”)に一致した部分を抽出します。 |
that |
– | 文脈のある対話を実現するため直前のシステム発話を設定します。 |
thatstar |
– | <that> のワイルドカードシンボル(”*” or “_”)に一致した部分を抽出します。 |
think |
– | タグで囲んだ範囲の出力を抑制します。 |
topicstar |
– | <topic> のワイルドカードシンボル(”*” or “_”)に一致した部分を抽出します。 |
uppercase |
– | タグで囲んだ内容に含まれるアルファベットを、小文字から大文字にします。 |
utterance 独自拡張 |
– | シナリオ対話APIのレスポンスに、表示用テキストと音声合成用テキストを分けて設定します。 |