提供方法の変更のお知らせ
2020年9月30日(水)10:00を以って、既存のBotSwitcher(旧BotSwitcher)はご利用いただけなくなります。
今後は新BotSwitcherのご利用を推奨いたします。新BotSwitcherについてはこちらをご覧ください。
今後は新BotSwitcherのご利用を推奨いたします。新BotSwitcherについてはこちらをご覧ください。
BotSwitcherを使用すると、複数ボットで構成したチャットボットの制御を簡単に行うことができます。
BotSwitcherはユーザと対話するボットをカレントボットとし、その切り替えや確認を行える関数を提供します。
ポイント
BotSwitcherを使用する際はフロントボットにこちらのシナリオを登録してください。
ご注意
カレントボットは、シナリオ設定の「<sraix>による呼び出し」が「global」のボットのみ指定できます。
関数一覧
利用できる関数の一覧です。関数をクリックすると、関数の詳細へジャンプします。
関数 | 概要 |
---|---|
#SWITCH botId |
カレントボットをbotId に変更し、初期発話をリクエストします。 |
#SWITCH botId input |
カレントボットをbotId に変更し、input の内容をリクエストします。 |
#SET botId |
カレントボットをbotId に変更します。 |
#GET |
カレントボットのボットIDを取得します。 |
#RELAY input |
カレントボットにinput の内容をリクエストします。 |
#CLEAR |
カレントボットをクリアします。 |
#ONECE botId |
カレントボットを変更せずに、一度だけbotId に初期発話をリクエストします。 |
#ONECE botId input |
カレントボットを変更せずに、一度だけbotId にinput の内容をリクエストします。 |
関数詳細
#SWITCH botId input
カレントボットをbotId
に変更し、input
の内容をリクエストします。
パラメータ
botId
カレントボットのボットID。
※シナリオ設定の「<sraix>による呼び出し」が「global」のボットのみ指定できます。input
カレントボットにリクエストする発話。
戻り値
- カレントボットに
input
の内容をリクエストした際のレスポンス。
#SET botId
カレントボットをbotId
に変更します。
パラメータ
botId
カレントボットのボットID。
※シナリオ設定の「<sraix>による呼び出し」が「global」のボットのみ指定できます。
戻り値
- カレントボットのボットID。
#GET
カレントボットのボットIDを取得します。
パラメータ
- なし
戻り値
- カレントボットのボットID。
#RELAY input
カレントボットにinput
の内容をリクエストします。
パラメータ
input
カレントボットにリクエストする発話。
戻り値
- BotSwitcherの状態に応じて下表のとおり戻り値が設定されます。
カレントボットの有無 有効期限の状態※ 戻り値 有り 有効 カレントボットに input
の内容をリクエストした際のレスポンス。無効 EXPIRED
無し – NOTFOUND
※カレントボットには有効期限が設けられています。有効期限を更新するには、
#SWITCH
、#SET
、#RELAY
のいずれかの関数を実行してください。
#CLEAR
カレントボットをクリアします。
カレントボットのレスポンス内に文字列#TALKEND
を含んでいる場合も#CLEAR
と同じ動作をします。
パラメータ
- なし
戻り値
- OK
#ONECE botId
カレントボットを変更せずに、一度だけbotId
に初期発話をリクエストします。
パラメータ
botId
呼び出したいボットID。
※シナリオ設定の「<sraix>による呼び出し」が「global」のボットのみ指定できます。
戻り値
botId
に初期発話をリクエストした際のレスポンス。
#ONECE botId input
カレントボットを変更せずに、一度だけbotId
にinput
の内容をリクエストします。
パラメータ
botId
呼び出したいボットID。
※シナリオ設定の「<sraix>による呼び出し」が「global」のボットのみ指定できます。input
呼び出したいボットにリクエストする発話。
戻り値
botId
にinput
の内容をリクエストした際のレスポンス。
BotSwitcherシナリオ
BotSwitcherを使用する際に必要となるシナリオ(BotSwitcher.aiml)です。
特に理由がない場合はこのまま登録して使用してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<?xml version="1.0" encoding="UTF-8"?> <aiml version="xaiml1.0.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> <!-- カレントボットを優先して実行する。 --> <think> <set name="_var_botswitcher_result"><sraix botid="BotSwitcher">#RELAY <get name="input"/></sraix></set> <condition name="_var_botswitcher_result"> <li value="NOMATCH|NOTFOUND|EXPIRED"> <set name="_var_botswitcher_result"><srai><get name="input"/></srai></set> </li> </condition> </think> <!-- 実行結果を発話する。 --> <get name="_var_botswitcher_result"/> </template> </category> </aiml> |
#SWITCH botId
カレントボットを
botId
に変更し、初期発話をリクエストします。パラメータ
botId
カレントボットのボットID。※シナリオ設定の「<sraix>による呼び出し」が「global」のボットのみ指定できます。
戻り値
カレントボットを以下のダミーボットに変更する例です。
ダミーボット(DummyBot)
xAIML
実行結果