ヤマムギ

growing hard days.

*

チャットボットのAPIでA3RTのTalk APIを使った

   


Microsoft TeamsのOutgoing Webhooksを使ってAWS Lambda(Python), Amazon API Gatewayとbotの記事に書いているとおり、Microsoft Teamsからボットの雑談機能として、docomo Developer supportさんの自然対話APIサービスを利用させていただいておりました。

10/1にメールをいただいていて、「2018年11月1日以降は機能制限により、レスポンスに10秒程度の時間を要する場合や、2018年10月31日以前と同様の対話をご利用いただけない可能性がございますので、ご了承ください。」とのこと。
雑談の感じとかすごく自然だなあって思ってたので、無料で使えるのはそりゃあ制限があっても仕方ないなあと思いました。
※docomoさんでは、後継サービスで katarai というサービスもあります。

まあいいかな、と思ってたのですが、Teamsは5秒以内にレスポンスを返さないとエラーになって「Sorry, there was a problem encountered with your request」というメッセージをTeamsに表示します。

リクエストを受け付けている自作のAPI側ではエラーは一切出てないので原因が分からず、最終的にはただのオウム返しでsleepで1秒づつのばして5秒かあとなりました。

改善案としてTeamsのFeedbackに出されている方がいるので、緩和されることを願います。
adjustable timeout on the outbound webhook reply (5 seconds not long enough)

とはいえ、このままにしておくわけにもいかないので、とりあえずレスポンスの早い無料の対話APIを探してみました。
ありました!

A3RT

リクルートテクノロジーズさんのA3RT(アート)にTalk APIがありました。
他にも画像系や文章系、レコメンド、SQL生成などいろんなAPIがあります。
面白そうなのでまた試してみたいと思います。

APIキーを発行して、Talk APIの公式ページにかかれているとおり、エンドポイントに対して、apikeyとqueryをパラメータにして、POSTSすれば返答が返ってきます。

pya3rtというモジュールもあるのでそれを使うと簡単です。
apikeyはTALKAPIKEYという環境変数に設定しています。

使わなくてもya3rt.TalkClient(apikey).talkを見ると、次のようなコードなので、パラメータ設定して、POSTしているようです。

用意している対話モデルで対応できないときに使いたいのが雑談系APIなので、当面はA3RTを利用させていただこうと思います。


最後までお読みいただきましてありがとうございました!
【PR】 「AWS認定試験対策 AWS クラウドプラクティショナー」という本を書きました。

@yamamanx

開発ベンダー5年、ユーザ企業システム部門通算9年、ITトレーナー2年目のSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。

このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。

また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。

 - API

ad

ad

  関連記事

Twilioのサインアップをして最初の電話番号を設定する

ハンズオンなどTwilioを使ってみる場合に、最初は無料トライアルアカウントとな …

Twilioで電話を受ける人の仕事を少し楽に出来ないか考えてみた

Twilio Advent Calendar 2017の参加記事です。 Twil …

Feedly APIのタグストリームとカテゴリストリームの取得

以前からタグのストリームだけ取得していて、タグ付けをする前のカテゴリからストリー …

docomo Developer supportの 雑談対話APIから自然対話APIへ移行しました

LINEやSlackのbotで重宝していた、雑談対話APIが終了する、とのことで …

Stripe CheckoutをローカルのPythonで試す

Stripe Advent Calendar 2017の参加記事です。 Stri …

「API Meetup Tokyo #29 ニッポンのAPIエコノミー最前線 〜国産APIが社会を変える〜」に参加しました

API Meetup Tokyoに来ました〜 会場はおしゃれなDEJIMAさんで …

Slackでチームを作成してbotから投稿出来るようにする

Slackで新しいチームを作成して、botが投稿出来るように設定します。 ※20 …