LoginSignup
21
18

More than 5 years have passed since last update.

人工知能ボットAPIを使ってSlack上で会話してみた

Posted at

はじめに

ユーザーローカル社が提供している「人工知能ボットAPI」の事前申し込みをしていたのですが、利用可能になったという連絡をいただいたので早速使ってみました。

image

上記のように、BOTに話しかけると会話内容に応じたメッセージが返ってきます。

基本的な仕様

  • エンドポイント
  • 入力パラメータ
    • 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リクエストまでコール可能)

サンプルコード

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から返答させる。

その他のAPI例

上記で紹介したAPI以外にも下記のようなAPIも用意されているようです。詳しい使い方は人工知能ボットAPI マニュアルPDFをご覧ください。

  • キャラクター会話変換API
    • ネコやイヌなどのキャラクターっぽい会話を実現するためのAPI
  • 氏名自動識別API
    • 会話中の相手の名前をもとに性別判定したり、姓・名を切り分けることができるAPI
  • 形態素解析API
    • 文章を形態素(言語で意味を持つ最小単位)に分割するためのAPI
21
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
18