チャットボットそのものについてはこちらをどうぞ→話題のチャットボットって実際どうなんでしょ?
■やっぱりまずは対話機能
チャットボットとなるとやはり対話機能が欲しいですよね。(この時点で自前主義の人とかMeCabとかの単語が頭に浮かぶ人は記事の対象じゃないのでreturnしてください!)
日本語に対応した対話APIはいくつかあるのですが、まずは現在一番メジャーとも言えるdocomo 雑談対話APIを試してみるのが良いかと思います。変女botでも使っていますよ!うまくハマると「本当にbot?」と聞かれるぐらい、見事な会話をすることもあります。(まぁ、少し会話をすればすぐにbotとバレますけど…)サンプルコードとかはネットを探せばきっと落ちてると思うので、ここでは長く使って気がついたこととか、エラーを食らったこととかを参考になればと書き残しておきます。
まず、docomoのAPIを使用するにはdocomo Developer supportで開発者登録する必要があります。
登録は無料です!しかも素晴らしいAPIが色々とありますよ!
法人登録するとAPIのリクエスト回数制限等が緩和されるようですが、雑談対話APIに関しては今の所はリクエスト数制限がなさそうなので、個人の登録でも特に困るこはないかと思います。ちなみに以前、このdocomo Developer supportの開発者の方のインタビューをどこかで読んだのですが、docomoのAPIではこの雑談対話APIが一番人気とのことでした!
そうそう、docomoのAPIを使う上での注意事項ですが、docomoが提供するAPI機能を利用していることを明示する必要があるので注意してください!細かいことはAPIごとに注意事項が異なるので使用するAPIの説明を確認ください!
■APIコンソールで色々試せます!
とりあえず動きを確認するだけなら、コンソール画面が用意されているのでプログラムをする必要はありません。
こんな感じでリクエストすると・・・
こんな返事が返ってきました。
キャラ設定もできます。
今の所、ノーマル(デフォルト)、関西弁、赤ちゃんの三種類が指定できます。
この設定を変えると会話の時の語尾が変化したりしますよ!
例えばこんな感じで「眠い」と話しかけてみます!
ノーマルモードの返信はこちら
関西弁モードだと返信もこんな感じに変わります
さらに特徴的なの対話履歴機能です。
docomo 雑談対話APIからのレスポンスには上記の会話例にある通り、context情報が付いて返ってきます。返ってきたcontext情報を使って話しかけることでAPIとの継続した話題での対話が可能になるんです!
■雑談対話APIは名前の通り雑談力が売りです
普通の対話APIはこちらの発言に対して、キーとなる言葉を拾ってそれっぽい回答を返すのが基本的な流れになるのですが、docomo 雑談対話APIは雑談対話と言うだけあって、普通の会話以外にAPIのほうから雑談っぽいネタで話を広げようとしてきます。
いくつか例をあげると
- ところどこで最近のニュースの話をしてきます
- ジャンボジェット機やウミガメなどに関するちょっとした雑学を披露してくることがあります
- 好きな食べ物を聞いてきます
- TVやディズニーランド話をしてきたり
- 興味のある音楽、映画、本の話題を聞いてきたり
- その他にも、ペット、スポーツ、料理、旅行、等の話題などなど
って感じです。
特に映画と書籍に関しては裏にDBがあるのか、タイトルを言うだけで監督や著者の名前を話題にしてきたりして、なかなかの賢さを感じさせる時があります!
なお、これだけ色々話題をふってくる機能があっても、何度も会話しているとやはり話題が被ってくるので「また同じ話題?」と言われてしまいます(世知辛い・・)
変女botはAPIに頼る以外にも独自の話題が出てくるようにしているのですが、ありがたいことに長期に渡って会話してくれる方も多いので、どうしても同じことを何度も聞いたりしてしまうのが、ちょっと申し訳ないところだったりしますね。
■注意点!?
・注意点1:デフォルトの名前が曲者です
docomo 雑談対話APIはbot側に名前を設定することはできません。”ゼロ”という名前がデフォルトで設定されているようです。ですので突然「名前はゼロです」的な自己紹介発言をすることがあります。チャットボットとして使っている時に、ユーザーに見せている名前と全然異なる名前で自己紹介されると興醒めしてしてしまいます。この点は会話データを受け取った側で適切に処理してあげる必要がありそうですね。
・注意点2:改行コードは消しましょう
Twitterで使うときなど、受け取ったメッセージに改行コードが含まれていることがあります。この改行コードの含んだ文字列をそのままAPIに渡すとエラーになるので注意しましょう!
・注意点3:nicknameパラメータはチェックが厳しいです
“nickname”パラメータに会話相手の名前を入れておくと、会話の際に名前を呼んでくれたりするのですが、Twitterなどでは名前欄にかなり特殊な文字コードを設定している人が多いので注意です。会話の本文となる”utt”には大抵の文字コードならエラーになることはないのですが、“nickname”はそこまで寛大ではないようです。下記の例のようにエラーになりやすいので注意してください。
■隠し機能??
・ニュース
「ニュース」とリクエストを送ると、ちょっとゆるめの最近のニュースを返してきます。この情報はだいたい1週間ごとぐらいに更新されてる感じがします。
・話題変換
対話履歴機能を使って継続会話をしていると、なんだか一つの話題に執着してしつこい時があります。docomo雑談対話APIのクセみたいなもんだと思って割り切るしかないのですが、「話題を変えたい」とリクエストを送れば、話題を切り替えてくれますよ。
・他にも何かあるかも!?
「ニュース」や「話題変換」に関しては仕様書を読んでも特に記述されていません。ちょっとした会話のコツみたいなものなので、あえて載せてないのかな?ってところなので、こういった特徴のあるレスポンスを得られるメッセージはきっと他にもあるでしょうね。よかったら変女botと会話して色々見つけてみてください!
(スタッフ)