しりとりCGSを使用すると、しりとりを対話機能に実装できます。
ご注意
サービス名
siritori
リクエストパラメータ
しりとりCGSにリクエストを送信する際のパラメータです。
名称 | 必須 | 型 | 解説 |
---|---|---|---|
userword |
◯ | string |
ユーザの回答を指定します。 |
userwordyomi |
– | string |
ユーザの回答の読みを指定します。 |
section |
– | string |
しりとりを継続するためのトークンを指定します。 |
lose |
– | string |
システムが敗北する確率を指定します。 どのような数値を指定した場合でも、10回は必ず続くようになっています。 |
レスポンスパラメータ
しりとりCGSのレスポンスを受け取った際のパラメータです。
名称 | 必須 | 型 | 解説 |
---|---|---|---|
cord |
◯ | string |
しりとりの状態をコードで返却します。 返却されるコードは以下になります。
※ |
section |
– | string |
しりとりを継続するためのトークンを返却します。 リクエストで section が指定されている場合は指定されたトークンを返却し、指定されていない場合は新しいトークンを払い出します。 |
turn |
– | string |
しりとりの継続した回数を返却します。 |
userword |
– | string |
ユーザの回答を返却します。 |
userwordyomi |
– | string |
ユーザの回答の読みを返却します。 |
sysword |
– | string |
システムの回答を返却します。 ユーザの回答の末尾が「ん」、ユーザの回答が認識不能の場合は undefined になります。 |
syswordyomi |
– | string |
システムの回答の読みを返却します。 |
char |
– | string |
システムの回答の読みの末尾の文字を返却します。 |
使用例
しりとりCGSを使用するためには<ext>
を使用します。
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 |
<category> <pattern>*</pattern> <template> <!-- しりとりCGSを実行する --> <ext name="siritori"> <arg name="userword"><star/></arg> </ext> <!-- しりとりCGSの回答の有無を確認する --> <condition name="_ext_siritori_sysword"> <!-- しりとりCGSの回答を得られなかった場合 --> <li value="undefined"> 回答できませんでした。 </li> <!-- しりとりCGSから回答を得られた場合 --> <li> <get name="_ext_siritori_sysword"/> </li> </condition> </template> </category> |
動作結果
1 2 |
user > しりとり bot > 理科 |
非商用目的での利用方法
しりとり機能を非商用目的で利用する場合は、汎用CGSを使用してSUNABAに用意された、しりとり機能を利用できます。
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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 |
<?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> <!-- アプリIDが取得できていない場合は、アプリIDの登録を行う --> <condition name="appId"> <li value="|undefined"> <set name="_var_registraion_result"><srai>#REGISTRATION</srai></set> </li> </condition> </think> <!-- アプリIDが取得できなかった場合は、エラー内容を表示 --> <condition name="appId"> <li value="|undefined"> <get name="_var_registraion_result"/> </li> <!-- アプリIDが取得できている場合は、汎用CGSを使用してシナリオ対話APIを呼び出す --> <li> <ext name="multicgs"> <arg name="request"> { "method": "POST", "url": "https://api-sunaba.xaiml.docomo-dialog.com/dialogue", "header": { "HTTP-Version": "HTTP/1.1", "Content-Type": "application/json;charset=utf-8" }, "body": { "language":"ja-JP", "botId":"Shiritori", "appId":"<get name="appId"/>", "voiceText":"<star/>" } } </arg> <arg name="type">JSON</arg> </ext> <!-- 汎用CGSのステータスが ture であるか確認 --> <condition name="_ext_multicgs_status"> <li value="true"> <!-- シナリオ対話APIのステータスが200番台の場合は、しりとりの結果を出力 --> <condition name="_ext_multicgs_remote_status"> <li regex="2[0-9]{2}"> <condition name="_ext_multicgs_body.systemText.expression"> <li regex="(.*) #TALKEND"> <matcher group="1"/> </li> <li><get name="_ext_multicgs_body.systemText.expression"/></li> </condition> </li> <!-- ステータスが200番台以外であればステータスを出力 --> <li> エラーです。ステータス <get name="_ext_multicgs_remote_status"/> </li> </condition> </li> <li>エラーです。結果を取得できませんでした。</li> </condition> </li> </condition> </template> </category> <!-- アプリID登録 --> <category> <pattern>#REGISTRATION</pattern> <template> <!-- 汎用CGSを使用してユーザ登録APIを呼び出す --> <ext name="multicgs"> <arg name="request"> { "method": "POST", "url": "https://api-sunaba.xaiml.docomo-dialog.com/UserRegistrationServer/users/applications", "header": { "HTTP-Version": "HTTP/1.1", "Content-Type": "application/json;charset=utf-8" }, "body": { "botId": "Shiritori", "appKind": "sunaba", "notification" : "false" } } </arg> <arg name="type">JSON</arg> </ext> <!-- 汎用CGSのステータスが ture であるか確認 --> <condition name="_ext_multicgs_status"> <li value="true"> <!-- ユーザ登録APIのステータスが200番台の場合は、アプリIDを取得 --> <condition name="_ext_multicgs_remote_status"> <li regex="2[0-9]{2}"> <think><set name="appId"><get name="_ext_multicgs_body.appId"/></set></think> </li> <!-- ステータスが200番台以外であればステータスを出力 --> <li> エラーです。ステータス <get name="_ext_multicgs_remote_status"/> </li> </condition> </li> <li>エラーです。結果を取得できませんでした。</li> </condition> </template> </category> </aiml> |
商用目的での利用方法
しりとり機能を商用目的で利用する場合は、汎用CGSを使用してkataraiをご利用ください。
ご注意
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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 |
<?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> <!-- ChattingId が取得できていない場合は、ChattingId の登録を行う --> <condition name="ChattingId"> <li value="|undefined"> <set name="_var_registraion_result"><srai>#REGISTRATION</srai></set> <set name="_var_mode">dialog</set> </li> <li> <!-- 現在の対話の状態を取得する --> <!-- dialog:初期状態、srtr:しりとり --> <condition name="_client_option_mode"> <li value="|undefined"> <condition name="KataraiMode"> <li value="eyJtb2RlIjoiZGlhbG9nIn0="><set name="_var_mode">dialog</set></li> <li value="eyJtb2RlIjoic3J0ciJ9"><set name="_var_mode">srtr</set></li> <li><set name="_var_mode">dialog</set></li> </condition> </li> <li><set name="_var_mode"><get name="_client_option_mode"/></set></li> </condition> </li> </condition> </think> <!-- ChattingId が取得できなかった場合は、エラー内容を表示 --> <condition name="ChattingId"> <li value="|undefined"> <get name="_var_registraion_result"/> </li> <!-- ChattingId が取得できている場合は、汎用CGSを使用してかたらいを呼び出す --> <li> <ext name="multicgs"> <arg name="request"> { "method": "POST", "url": "https://apigw.katar.ai/chat/v1/dialogue", "header": { "HTTP-Version": "HTTP/1.1", "Content-Type": "application/json;charset=utf-8", "x-api-key": "ここにAPIキーを入力" }, "body": { "language":"ja-JP", "botId":"KATARAI_Chatting", "appId":"<get name="ChattingId"/>", "voiceText":"<get name="input"/>", "clientData":{ "option":{ "mode":"<get name="_var_mode"/>" } } } } </arg> <arg name="type">JSON</arg> </ext> <!-- 汎用CGSのステータスが ture であるか確認 --> <condition name="_ext_multicgs_status"> <li value="true"> <!-- レスポンスのステータスが200番台の場合は、しりとりの結果を出力 --> <condition name="_ext_multicgs_remote_status"> <li regex="2[0-9]{2}"> <think><set name="KataraiMode"><get name="_ext_multicgs_body.command"/></set></think> <get name="_ext_multicgs_body.systemText.expression"/> <command><get name="_ext_multicgs_body.command"/></command> </li> <!-- ステータスが200番台以外であればステータスを出力 --> <li> エラーです。ステータス <get name="_ext_multicgs_remote_status"/> </li> </condition> </li> <li>エラーです。結果を取得できませんでした。</li> </condition> </li> </condition> </template> </category> <!-- 初期登録 --> <category> <pattern>#REGISTRATION</pattern> <template> <!-- 汎用CGSを使用して ChattingId を取得する --> <ext name="multicgs"> <arg name="request"> { "method": "POST", "url": "https://apigw.katar.ai/chat/v1/registration", "header": { "HTTP-Version": "HTTP/1.1", "Content-Type": "application/json;charset=utf-8", "x-api-key": "ここにAPIキーを入力" }, "body": { "botId": "KATARAI_Chatting", "appKind": "Robot" } } </arg> <arg name="type">JSON</arg> </ext> <!-- 汎用CGSのステータスが ture であるか確認 --> <condition name="_ext_multicgs_status"> <li value="true"> <!-- レスポンスのステータスが200番台の場合は、ChattingId を取得 --> <condition name="_ext_multicgs_remote_status"> <li regex="2[0-9]{2}"> <think><set name="ChattingId"><get name="_ext_multicgs_body.appId"/></set></think> </li> <!-- ステータスが200番台以外であればステータスを出力 --> <li> エラーです。ステータス <get name="_ext_multicgs_remote_status"/> </li> </condition> </li> <li>エラーです。結果を取得できませんでした。</li> </condition> </template> </category> </aiml> |