GASでリクルートA3RTのTalk APIを実行する方法!サンプルコードで解説

リクルートが提供しているAIサービス「A3RT」の中に自動メッセージ応答の「Talk API」があります。

このTalk APIをGoogle Apps Script(GAS)でリクエストする方法をサンプルコードで詳しく解説します。

リクルートのAIサービス「A3RT」

「A3RT」はリクルートが提供しているAI技術を公開したサービスです。

ホットペッパーやじゃらんなどリクルートが運営しているサービスで培ったAIの知見をオープンな技術として公開してくれています。

A3RTはAPIという形式で公開されているため、手軽にAIが利用することができます。

中でも後述するGoogle Apps Script(GAS)とは相性がよく、A3RTのプロダクトのAPIを簡単に実装可能です。

メッセージ応答のTalk API

A3RTのプロダクトの1つに「Talk API」というAPIサービスがあります。

Talk APIはRecurrent Neural Network(RNN)というAI技術を活用し、応答文を自動生成してくれるサービスです。

リクルートのAIをAPIで利用できる「A3RT」のプロダクトの1つ「TalkAPI」の説明

AIによる日常会話の自動応答の機能を用意したい場合、このTalk APIを導入すれば、応答文生成はTalk APIが担当してくれます。

あとは、プログラム側でTalk APIから帰ってきた応答文をユーザーに返信すれば、立派な日常会話を行うチャットボットの出来上がりです。

今回、Google Apps Script(GAS)を使って、Talk APIにリクエストを送るスクリプトを解説していきます。

Talk APIのAPIキー発行手順

Talk APIを利用するにあたっては、APIリクエストに必要なAPIキーを発行します。

Talk APIの利用登録とAPIキー発行手順については以下の記事で紹介しています。

リクルートA3RT「Talk API」の登録とAPIキー発行手順を解説!チャットボット利用に

上記記事を参考にすればメールアドレスを1つ用意するだけで、APIキーを取得できます。

Google Apps Script(GAS)のスクリプトからTalk APIにリクエストを送るためにAPIキーは必須なので、準備しましょう。

※Talk APIのAPIキーはメールに届くので、大切に保管しておきましょう

GASでTalk APIをリクエストするサンプルコード

Talk APIのAPIキーが準備できたら、Google Apps Script(GAS)でAPIリクエストを行います。

実際にGASで稼働するサンプルコードを使ってTalk APIのリクエスト手順を解説します。

Talk APIにリクエストを送るために必要な情報をリファレンスで確認します。

リクルートA3RTのプロダクト「Talk API」のAPIリクエストに必要な3つのパラメータ

  1. apikey:(必須)Talk APIのAPIキー
  2. callback:(任意)レスポンスのデータ形式
  3. query:(必須)自動応答するメッセージ

callbackは任意のパラメータのためなくてもよいので、apikeyとqueryをAPIリクエストに指定します。

Talk APIに自動応答する元メッセージを送り、レスポンス結果をログ出力するGASサンプルコードは以下の通りです。

リクエストA3RTのTalk APIをGoogle Apps Script(GAS)で実行して、自動応答文をログ出力するサンプルコード

 

3行目のtext変数で、Talk APIに送るメッセージを定義します。

5行目のapiKey変数でAPIキーを定義しているので、取得したAPIキーで書き換えます。

Talk APIのリクエスト方式がHTTP/POSTなので、POSTを指定してペイロードにAPIキーとメッセージを設定します(9~17行目)。

UrlFetchAppオブジェクトのfetchメソッドでTalk APIにHTTPリクエストし、console.logで実行結果をログ出力します。

リクエストのTalk APIをGoogle Apps Script(GAS)で実行して、自動応答文をログ出力するサンプルコードを実行した結果、ログにTalk APIのレスポンスが出力

GASのログ結果に、Talk APIから応答があったレスポンスが正常に表示されています。

Talk APIレスポンスのperplexityとは?

Talk APIからのレスポンスには自動応答のメッセージと一緒に、「perplexity」という小数点ありの数値が返却されています。

Talk APIのドキュメントによると、このperplexityは自動応答の「予測性能」を示しており、数値が大きいほど予測性能が高いことを意味しています。

Talk APIのレスポンスにあるperplexityは予測性能を表す指標

先程の天気のメッセージに対し、「こんにちは!」とあいさつを送った場合、予測性能のperplexityは上昇しました。

Google Apps Script(GAS)からTalk APIにおくるメッセージを「こんにちは」という挨拶に変更したログ出力結果でperplexityが天気よりも上昇

この数値の比較から元メッセージ「こんにちは」→応答メッセージ「こんにちは」のほうが天気よりも高いとAIは判定しています。

さらにTalk APIがうまく返答できなさそうな「JavascriptとPythonどちらを学習すればよいですか?」という質問を用意してみました。

Talk APIの自動応答が機能しなさそうな質問をGoogle Apps ScriptでAPIリクエストした結果、perplexity(予測性能)が低下

自動応答メッセージがちぐはぐになっている分、perplexityの数値が天気やあいさつよりもかなり小さくなっています。

このように単に応答メッセージを使うだけでなくperplexityを使い、一定値以下の場合は、汎用的な別の応答文に切り替えるなどの処理ができそうです。

GASとTalk APIでAIチャットボットが簡単開発

今回はGoogle Apps Script(GAS)からTalk APIにリクエストを送る方法に絞ったサンプルコードでした。

ただ、Talk APIから帰ってきた応答メッセージをLINEやSlackなどに投稿すれば、自動応答のチャットボットを作ることができます。

自分でチャットボットを作る場合は、ルールベースの応答になりがちですが、手軽にAI応答が実装できるのがTalk APIの魅力です。

まとめ・終わりに

今回、Google Apps Script(GAS)でリクルートの自動応答AI「Talk API」にリクエストする方法を解説しました。

GASはAPIリクエストが簡単に利用できるため、Talk APIでもメッセージをHTTP/POSTすれば、自動応答のメッセージをレスポンスしてくれます。

返答replyと合わせて、予測性能を意味するperplexityも一緒に返却され、「自動応答メッセージが適切かどうか」を数値で解釈できます。

Talk APIとGASを組み合わせれば、自動応答してくれるボットが簡単に作成できそうです。

チャットツールなどで自動応答の機能を実装したい場合は、ぜひ、TalkAPIとGASで活用してみてください。