BotSwitcherを使用すると、複数ボットで構成したチャットボットの制御を簡単に行うことができます。
BotSwitcherはユーザと対話するボットをカレントボットとし、その切り替えや確認を行える関数を提供します。
ご注意
BotSwicherを使用してボットを呼び出す場合、対象ボットの配置場所によってボット設定の「公開」を以下に設定してください。
- BotSwitcherと同一プロジェクト内のボットを呼び出す場合、対象ボットは「project」に設定してください。
- BotSwitcherと別のプロジェクトにあるボットを呼び出す場合、対象ボットは「global」または「public」に設定してください。
※Frontボットとして利用するボットは「global」、そうでないボットは「public」を設定してください。
使用方法
操作手順
- Githubに公開されているBotSwicherのシナリオをダウンロードしてください。
ダウンロードするシナリオについてはこちらをご覧ください。 - ダウンロードしたBotSwicherのシナリオを登録してください。
詳細はこちらをご覧ください。
関数一覧
利用できる関数の一覧です。関数をクリックすると、関数の詳細へジャンプします。
関数 | 概要 |
---|---|
#set botId |
カレントボットをbotId に変更します。 |
#get |
カレントボットのボットIDを取得します。 |
#clear |
カレントボットをクリアします。 |
#check expire |
カレントボットの有効期限を検証します。 |
関数詳細
#get
カレントボットのボットIDを取得します。取得に成功した場合は、対象ボットの有効期限が更新されます。
対象ボットの有効期限が切れていた場合はEXPIRED
、対象ボットが見つからない場合はNOTFOUND
が返却されます。
パラメータ
- なし
戻り値
- BotSwitcherの状態に応じて下表のとおり戻り値が設定されます。
カレントボットの有無 有効期限の状態※ 戻り値 有り 有効 カレントボットのボットID 無効 EXPIRED
無し – NOTFOUND
※有効期限の状態が無効の場合、
#set botId
関数を実行すると対象ボットの有効期限が再設定されます。
#clear
カレントボットをクリアします。
パラメータ
- なし
戻り値
- OK
#check expire
カレントボットの有効期限を検証します。
パラメータ
- なし
戻り値
- BotSwitcherの状態に応じて下表のとおり戻り値が設定されます。
カレントボットの有無 有効期限の状態※ 戻り値 有り 有効 STILL ALIVE
無効 EXPIRED
無し – BOTNOTFOUND
※有効期限の状態が無効の場合、
#set botId
関数を実行すると対象ボットの有効期限が再設定されます。
有効の場合、#get
関数を実行すると対象ボットの有効期限が更新されます。
使用例
BotSwitcherを使用した例です。有効期限の状態によって実行するボットを変更します。
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 |
<?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> <!-- カレントボットを優先して実行する。 --> <think> <set name="_var_current_botid"><sraix botid="xxx_BotSwitcher">#get</sraix></set> <condition name="_var_current_botid"> <li value="EXPIRED|NOTFOUND"> <set name="_var_botswitcher_result"><srai><get name="input"/></srai></set> </li> <li> <set name="_var_botswitcher_result"><sraix><botid><get name="_var_current_botid"/></botid><get name="input"/></sraix></set> </li> </condition> </think> <!-- 実行結果を発話する。 --> <get name="_var_botswitcher_result"/> </template> </category> </aiml> |
旧BotSwicherから移行する場合
#RELAY関数を移行する場合
上記の使用例は旧BotSwicherの#RELAY
を使用した場合と同じ処理を実行する例です。
旧BotSwicherで#RELAY
を使用していた場合は、上記処理に移行してください。
#ONECE関数を移行する場合
旧BotSwicherで#ONECE
を使用していた場合は、BotSwitcherを使わずに<sraix>
で直接ボットを呼び出すよう変更してください。
1 |
<sraix botid="DummyBot"><get name="input"/></sraix> |
#set botId
カレントボットを
有効期限はデフォルトでbotId
に変更します。その際、対象ボットの有効期限が設定されます。time="60"
(秒)が設定されます。有効期限の設定値を変更したい場合は、ボットプロパティファイルのキーに
time
を指定して登録してください。ボットプロパティファイルについてはこちらをご覧ください。
パラメータ
botId
カレントボットのボットID。戻り値
カレントボットを変更する例です。
xAIML
実行結果