docomo Developer supportに『自然対話プラットフォーム』がリリース
私が運営しているチャットサイトでも利用しているdocomo Developer supportの『雑談対話』機能が2018年6月末で終了とのことです。
しかし、新たに『自然対話プラットフォーム』がリリースしました。その中でも『雑談対話API』として継続して利用可能のようです。
『自然対話プラットフォーム』では以下のAPIが利用できます。
- 意図解釈API
- FAQチャットAPI
- 雑談対話API
- 知識検索API
現在、雑談対話APIを中心に動作確認をしてますが、今までcontextで会話を継続していた処理が、今回からは相手を理解するためにユーザー登録なることを行い、appIdを取得しなければならないようです。appIdにて相手を認識しているようです。また現在調べた限りでは今までできていたキャラクタ選択ができないようです。
※追記:キャラクタ選択についてdocomoに確認したところ、2018年4月中を目途に公開予定だそうです。
私の運営しているチャットサイトのようだと不特定多数が会話を行うので、その度にユーザー登録処理を行う必要がありそうで少し面倒。しかも各API毎にユーザー登録が必要なので、これまた面倒なことになりそうです。
ただ、最近では企業のFAQなどもチャットボットを利用した事例が多くなってきてますので、需要は多いのではないのでしょうか?
end
ディスカッション
コメント一覧
自然対話apiの雑談対話に移行しようと試みているのですがレスポンスのテクストが取得できずに困っています。どのようになさっているのか教えていただければ幸いです。
こちらからの発話に対して、システム側の応答メッセージを受け取る場合はこんな感じです。
自然対話の雑談APIでは対話する方を特定するためにユーザ登録処理を行わなくてはならないのですが、基本は以下のソースと変わりません。
class aireq{
var $apikey = "{取得したAPIキー}";
function ai_msg($text,$nickname,$chara){
$url = 'https://api.apigw.smt.docomo.ne.jp/naturalChatting/v1/dialogue?APIKEY='.$this->apikey;
$headers = array(
'Content-Type: application/json; charset=UTF-8',
);
$data = array(
'language' => 'ja-JP',
'botId' => 'Chatting',
'appId' => {ユーザ登録で取得したappId},
'voiceText' => $text,
'clientData' => array(
'option' => array(
'nickname' => $nickname,
'mode' => $_SESSION['chat_mode'],
't' => $chara
),
),
'appRecvTime' => {アプリが最後に取得パラメータを受信した時刻},
'appSendTime' => {アプリが送信パラメータを送信した時刻}
);
$options = array('http' => array(
'method' => 'POST',
'header' => implode("\r\n", $headers),
'content' => json_encode($data)
));
$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
$res = json_decode($response);
$_SESSION['chat_mode'] = $res->command->mode; // 対話モードをセッションに格納
return $res->systemText->expression; // システム発話を返す
}
}
$aireq = new aireq();
$text = urldecode("あなたの名前は?");
$nickname = urldecode("テストさん");
$chara = "kansai";
// 発言
$msg["airespo"] = $aireq->ai_msg($text,$nickname,$chara);
$json = json_encode($msg);
header("Content-Type: text/javascript charset=utf-8");
print $json;
早々のお答えありがとうございます。さっそく試してみたいと思います。