xAIMLの基本の形式として、aimlブロック内に記述する必要があります。
xAIMLの基本の対話シナリオは、2つ組みの構成と3つ組みの構成があります。
<pattern>
内にマッチさせたいユーザ発話を記述し、<template>
内にはシステム発話を記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<?xml version="1.0" encoding="UTF-8"?> <aiml version="2.5.0" xmlns="http://www.nttdocomo.com/aiml/schema" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.nttdocomo.com/aiml/schema/AIML.xsd"> <!--ここにxAIMLを記述する --> <category> <pattern>・・・</pattern> <template> ・・・ </template> </category> <category> <pattern>・・・</pattern> <template> ・・・ </template> </category> ・・・ </aiml> |
実装方法 – 2つ組の構成
2つ組みの構成は、「ユーザ発話」→「システム発話」の構成です。
xAIML
1 2 3 4 5 6 7 8 9 10 11 |
<?xml version="1.0" encoding="UTF-8"?> <aiml version="2.5.0" xmlns="http://www.nttdocomo.com/aiml/schema" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.nttdocomo.com/aiml/schema/AIML.xsd"> <category> <pattern>こんにちは</pattern> <template> ようこそ、砂場へ! </template> </category> </aiml> |
実行結果
シナリオ対話APIでリクエストを送る場合、Body内の”voiceText”の値にユーザ発話を設定してください。
1 2 |
user > こんにちは bot > ようこそ、砂場へ! |
実装方法 – 3つ組の構成
3つ組みの構成は、「システム発話」→「ユーザ発話」→「システム発話」の構成です。
3つ組みの構成では、前のシステム発話に応じて応答を変えることができます。
ポイント
xAIML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<?xml version="1.0" encoding="UTF-8"?> <aiml version="2.5.0" xmlns="http://www.nttdocomo.com/aiml/schema" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.nttdocomo.com/aiml/schema/AIML.xsd"> <category> <pattern>init</pattern> <template id="coffee"> コーヒー好き? </template> </category> <category> <pattern>うん</pattern> <that id="coffee"/> <template> コーヒー美味しいよね </template> </category> </aiml> |
実行結果
1 2 3 |
bot > コーヒー好き? user > うん bot > コーヒー美味しいよね |
また、3つ組みの構成では、<category>
内に<that>
を記載することで、前のシステム発話に応じて応答を制限することができます。
xAIML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
<!-- IDの指定 --> <category> <pattern>init</pattern> <template id="tea"> 紅茶好き? </template> </category> <category> <pattern>うん</pattern> <that id="coffee"/> <template> コーヒー美味しいよね </template> </category> <category> <pattern>うん</pattern> <that id="tea"/> <template> 紅茶美味しいよね </template> </category> <!--システム発話の指定--> <category> <pattern>init</pattern> <template> 紅茶好き? </template> </category> <category> <pattern>うん</pattern> <that>コーヒー好き?</that> <template> コーヒー美味しいよね </template> </category> <category> <pattern>うん</pattern> <that>紅茶好き?</that> <template> 紅茶美味しいよね </template> </category> |
実行結果
1 2 3 |
bot > 紅茶好き? user > うん bot > 紅茶美味しいよね |