ユーザーローカルの人工知能APIをLINE BOTに組み込んでみた

f:id:yamamotomanabu:20160616004522p:plain

先日、ユーザーローカル社が人工知能APIの公開を発表しました。
発表当日に無料版の申し込みをしておいたところ、先程メールでAPIキーが届いたので早速試してみました。

先日試したLINE BOT APIにこの人口知能APIを組み込んでみようと思います。

構成は前回同様なので、LINE BOT APIやWebsocket.ioについてはこちらの記事を参照してください。 http://yamamotomanabu.hatenablog.com/entry/2016/04/08/webscript.io%E3%81%A7LINE_BOT_API%E3%81%AE%E4%BA%8B%E5%A7%8B%E3%82%81

という訳で、いきなりスクリプトです。

-- LINEの認証情報
ChannelID = あなたのChannel ID
ChannelSecret = あなたのChannel Secret
MID = あなたのMID

-- 人工知能ボットAPIの認証情報
key = あなたのAPIキー

-- 受信メッセージを取得
body = json.parse(request.body)
message = body.result[1].content.text

-- 人工知能ボットAPIを呼び出す
local response = http.request {
    -- まだAPIの内容が一般公開されていないようなのでコメント化します
    -- API公開後に修正します
}
res = json.parse(response.content)
text = res.result

reply = body.result[1].content.from
data = {
    ['to'] = {reply},
    ['toChannel'] = '1383378250', -- 固定値
    ['eventType'] = '138311608800106203', -- 固定値
    ['content'] = {
        ['contentType'] = 1,
        ['toType'] = 1,
        ['text'] = text
    }
}

-- メッセージ送信
local response = http.request {
    url = 'https://trialbot-api.line.me/v1/events',
    method = 'POST',
    data = json.stringify(data),
    headers = {
        ['Content-Type'] = 'application/json; charser=UTF-8',
        ['X-Line-ChannelID'] = ChannelID,
        ['X-Line-ChannelSecret'] = ChannelSecret,
        ['X-Line-Trusted-User-With-ACL'] = MID
    }
}

return true

「LINEの認証情報」と「人工知能ボットAPIの認証情報」の計4行はご自身の情報に置き換えてください。

これだけでLINE BOTをAI化することができます。
f:id:yamamotomanabu:20160616011634p:plain

と言ったものの、精度はMicrosoftさんのりんなと比較するとまだまだといった印象です。
ただ組み込みの簡単さは素晴らしく、こういう人工知能チャットBOTがサーバレスで一時間もかからず構築できてしまうことには非常に驚きを感じました。

さて、こちらの人口知能APIですが、まだ完全公開ではなく、開発者の第二期募集中とのことなので(6/15時点)、API仕様もまだ公開されていないので、スクリプトも肝心の部分はマスクしておきました。
APIキー発行のメールにはAPIドキュメントのリンクが記載されていて、「APIを試したらブログやQiitaに記事を書いてね!」とあるので、マスクしなくても良い気もするのですが念のため。 公式サイトにもAPIドキュメントのリンクを貼ってくれればいいのに。。。