はじめに
ユーザーローカル社が提供している「人工知能ボットAPI」の事前申し込みをしていたのですが、利用可能になったという連絡をいただいたので早速使ってみました。
上記のように、BOTに話しかけると会話内容に応じたメッセージが返ってきます。
基本的な仕様
- エンドポイント
-
https://chatbot-api.userlocal.jp/api/chat
- GET/POSTどちらも可
-
https://chatbot-api.userlocal.jp/api/chat
- 入力パラメータ
- key: APIキー(必須)
- message: 入力メッセージ(必須)
- bot_name: botの名前
- platform: プラットフォーム(line, tw, fb, slack)
- user_id : プラットフォーム上でのユーザーID
- user_name : ユーザー名
- 返却値
- 下記のようなjson形式のデータが返ってくる
sample.json
{
"status":"success",
"result":"えーーっ!?まるで、甲子園みたい"
}
注意
- 利用するには事前にサイトに登録し、認証用のAPIキーを受け取っておく必要がある。
- ただし、試用だけならAPIキー未発行でも可能
-
key
の値をsample
にして渡せば1時間に10リクエストまで使用可能(APIキーがある場合は、現時点で1時間で最大500リクエストまでコール可能)
-
- ただし、試用だけならAPIキー未発行でも可能
サンプルコード
userlocal-api.coffee
# Description:
# Let's communicate with ai bot api created by userlocal.
#
# Configration:
# HUBOT_USERLOCAL_API_KEY
module.exports = (robot) ->
url = "https://chatbot-api.userlocal.jp/api/chat"
api_key = process.env.HUBOT_USERLOCAL_API_KEY
robot.respond /(.*)/i, (msg) ->
message = msg.match[1]
params = {
"message": message,
"key": api_key
}
robot.http(url).query(params).get() (err, res, body) ->
return res.send "Encountered an error :( #{err}" if err
body = JSON.parse(body)
msg.send "#{body.result}"
解説
- Slackとhubotがすでに連携されていることが前提。
- api_keyを環境変数としてheroku上で定義し、
process.env.XXX
で環境変数を読み込む。(hubot自体はheroku上で動かしてます。) - APIキー、入力されたメッセージをパラメータとして渡し、リクエストを送る。
- 返ってきたjsonデータをパースして
msg.send
でBOTから返答させる。
- 返ってきたjsonデータをパースして
その他のAPI例
上記で紹介したAPI以外にも下記のようなAPIも用意されているようです。詳しい使い方は人工知能ボットAPI マニュアルPDFをご覧ください。
- キャラクター会話変換API
- ネコやイヌなどのキャラクターっぽい会話を実現するためのAPI
- 氏名自動識別API
- 会話中の相手の名前をもとに性別判定したり、姓・名を切り分けることができるAPI
- 形態素解析API
- 文章を形態素(言語で意味を持つ最小単位)に分割するためのAPI