DocomoruでBOTと雑に会話する

docomoが提供している雑談対話APIを利用し、docomoruというライブラリを使いながらBOTと雑談する方法について説明します。後半では、Rubotyを使ってチャットサービス上でBOTと雑談する方法について説明します。

docomoru

docomoruは、docomoのAPIを利用することを目的として作られたRuby製のライブラリです。gem install docomoru でインストールできます。docomoのAPIキーが必要なので、予め https://dev.smt.docomo.ne.jp/ からアプリ登録申請を済ませてAPIキーを発行してもらいましょう。

使い方

docomoruはCLI経由で利用でき、APIキーと文字列を与えると雑談対話APIにリクエストを送り、レスポンスをJSON形式で標準出力します。APIキーは、--api-keyオプションか、環境変数DOCOMO_API_KEY経由で与えます。雑談対話APIを利用するには、docomoru create_dialogue <文字列> のようにコマンドを実行します。

以下は予め環境変数DOCOMO_API_KEYを設定してdocomoruを利用してみた例です。docomoruは結果をJSONで出力しますが、例えば jq を使えば簡単にJSONの中から値を取り出せます。かわいいですね。

image

応用

雑に関数を定義すれば更に雑談しやすくなります。ねむいですね。

$ @yunotti() { docomoru create_dialogue $1 | jq .utt -M -r }
$ @yunotti 寒い
ねむい
$ @yunotti ねむいの
寝ろー

チャットで使う

SlackやHipChatなどチャットのBOTにこれを組み込む場合には、Rubotyのプラグインとしてruboty-talkが提供されています。これを入れると、既に登録されている他のどのルールにも一致しなかったとき、docomoruを利用して雑に発言を返してくれるようになります。

Rubotyで利用するには、Gemfileにruboty-talkを追加して、環境変数にDOCOMO_API_KEYを与えれば動作します。Rubotyを新しく導入する場合には、Ruby製HubotクローンのRubotyをSlackで動かす - Qiita などを参考にしてください。

tqbot

家庭や職場での貴重な雑談の様子を紹介します。これはシェアハウスに住んでいるtqbot。初期の頃は不具合でRedisがすぐに揮発し、よく記憶が無くなっていました。

qiitan

これは職場で飼っているQiitan。デプロイは全て彼にお願いしています。

おわり

最近リモートワークなども流行っていますが、お互いの顔がすぐに見えない状況下では距離感が掴みづらくなりがちですし、雑談ルームなどで緩い雰囲気をつくることでコミュニケーションの量を保っていけると良いですね。