新卒エンジニアがAIチャットボットをQiitaに実装してみました!

皆さん、こんにちは。QiitaやQiita Teamを開発しているIncrementsのエンジニア千葉です。普段はQiitaやQiitadonの開発を担当しています。ご利用いただいている皆さん、いつもありがとうございます!

さて今回のPR記事では、プログラミング不要で使えるチャットボット作成ツールを使って、QiitaにAIチャットボットを実装してみました。実装の話や実際に使ってみての感想などをまとめましたのでご覧ください。

プロフィール

千葉知也(ちば・ともや) Tomoya Chiba
サーバーエンジニア
東京大学にてコンピュータサイエンスを専攻。
東京大学大学院修了後、アプリケーションエンジニアとして2017年にIncrementsに入社。
Qiitaのサーバーサイドを担当している。
最近では、新人ながらもQiitaのHTTPS化やQiitadonの開発をリードした。

利用したツールはNTTドコモ開発の「Repl-AI(レプルエーアイ)」です。

目次
Repl-AIとは?
AIチャットボットについて
Qiitaにチャットボットを実装してみた
CSVでシナリオ作成を自動化
実装してみて感じたこと
AIチャットボットの可能性について
サービスについて

Repl-AIとは?

無料で問い合わせ対応AIチャットボットを作れるサービスです。プログラム知識を必要とせず、対話ボックスをつなげるだけでAIチャットボットが作れます。以下、特長をまとめました。

・プログラミング不要でシナリオが作成できる
・辞書機能で表記ゆれを吸収できる
・シナリオテンプレートが豊富
・FacebookやLINEなど様々なプラットフォームに対応
・カスタマイズ可能なチャットウィンドウ

横浜市資源循環局のサイトこのAIチャットボットを導入しており、ごみ分別案内に利用されていますね(※ごみの名前に「旦那」と入力すると、面白い回答が返ってくるとニュースになったあれです)。私もまず手始めにこちらのチャットボットに話しかけてイメージをつかみました。

Repl-AIを開発しているNTTドコモの資料によると、横浜市資源循環局のごみと資源の分別方法を検索できる「MIctionary(ミクショナリー)」というシステムがあり、そのシステムをRepl-AIで対話形式にすることで、検索に不慣れな方でも利用できるようにしたものだそうです。

AIチャットボットについて

エンジニアで知られているチャットボットというと、有名なのはGitHubのHubotでしょうか。あとはGoogleアシスタンスもありますね。こちらからの発言に対して何かを返してくれたり、何かをしてくれたりするのがとても便利ですよね。実はIncrementsでも「Qiitan」というチャットボットを利用しています。これはRubotyというRubyのフレームワークです。

詳しくは、こちらにまとめられているのですが、出退勤管理、Twitterのエゴサーチ、Google Calendarのリマインダーなどが、Slackを介してQiitan から実行できるようになっています。Slack上で完結するため、わざわざエンジニアが何か開発するのに特別な設定が必要ないという「簡単に導入できる」メリットがあります。また、過去に誰がどういった発言をして、どういった設定をしたかという「ログが残る」こともメリットです。

Slackからチャットをボットを使用したデプロイイメージ

SlackからチャットをボットQiitanを使用したデプロイイメージ

そんなわけでQiitanは便利なですが、何か新しくQiitanにやらせたい時に、Rubotyを触れるのがエンジニアしかいないというのネックになります。またサーバーが必要で、その運用に手間がかかるというのもあります。QiitanはHerokuを使ってサーバーを立てているので、サーバーが止まってしまったりすると、何かあった時にエンジニアが対応しなくてはなりません。

そこで今回は気軽に使えるRepl-AIで、AIチャットボットを実装してみました。

※ 今回チャットウィンドウを設置させていただくにあたり、Repl-AI のエンタープライズプランで実装しました。

Qiitaにチャットボットを実装してみた

チャットボットを実装する場所ですが、今回はヘルプページに実装してみました。

何か分からないことがある場合、それに対して受け答えする、というのはチャットボットに向いていそうです。
ということで、チャットボットを
Qiitaヘルプページに実装してみました。

チャットボットをヘルプ記事へ実装

「チャットボット」を実装したヘルプページを確認する

Qiitaはエンドユーザー向けのサービスなので、サポートへの問い合わせ数はQiitaの成長とともに年々増加傾向にあります。ヘルプページで解決できる内容のはずなのにユーザーさんから問い合わせがあり、問い合わせの返答やそのやり取りで、ユーザーさんもIncrementsの担当者も時間を使ってしまうことが多々あります。それがチャットボットで改善できればお互いにハッピーですよね。

それでは、実際にどうやってチャットボットを実装したのか説明します。まずは、Repl-AIのページにアクセスしてユーザー登録をしておきます。

  1. 管理画面にアクセス。右上のダッシュボードからプロジェクト画面に移動
  2. プロジェクトを作成 (管理画面にログインしたら、プロジェクト追加を押します。今回は「sample」という名前にしました。)
  3. チャットボットを作成

次にチャットボットを作成します。名前は「sample」です。
4.シナリオを作成
次にシナリオを追加します。「Qiitan」というシナリオを作成しました。

Qiitanの実装画面

Qiitanが学習したQiitaの機能について簡単に説明してくれます。雑談対話ボットを追加することで特定のキーワード以外を入力した時も、Qiitanと会話ができます。雑談対話ボットをGUIで挿入するだけで、簡単にチャットボットのクオリティを上げられます。

対話ボックスを使うだけでチャットボットのシナリオ(受け答えのルール)が作れるのは便利です。

 

CSVでシナリオ作成を効率化

Qiitaのように常に開発を進めているWebサービスは、速いスピードで新機能リリースがあるので、その度に何度もヘルプ項目をアップデートしています。新機能がリリースされる度に、GUIでシナリオを編集しても構いませんが、ヘルプ項目が増えていくに従って、対話ボックス同士を線でつなぎ、抜け漏れなく項目をアップデートするには、時間が必要になったり、管理が大変になったりするかもしれません。そこでインターンにも協力してもらい、CSVインポート機能とGoogle スプレッドシートでRepl-AIへのヘルプ更新を以下のように効率化しました。

  1. Qiita新機能リリース時にGoogleスプレッドシートに新機能の名前と説明をそれぞれ別のセルに追記
  2. 新機能名と説明をチャットボットAIのCSVシナリオのフォーマットに代入

  1. GoogleスプレッドシートのCSVシナリオの部分をコピー
  2. 事前に用意したCSVファイルに貼り付ける

  1. Repl-AIにシナリオをCSVインポート

これでシナリオ作成が効率化されます。ちなみにシナリオ作成時に使うことのできる制御文字を一部ご紹介すると、以下のようになります。

説明 制御文字
改行 ¥n (¥ではなくバックスラッシュの場合もあり)
ボックスの分割※ #DELIMITER#
ボタン※ #BTN#ここがボタンになる#/BTN#
URL(URLのみ) https://sample.jp/
URL(URL表示なし)※ [こちら](https://sample.jp/)

この表は重要で、Repl-AI のシナリオを作り出して一番知りたくなるのはこの制御文字はずです。

※メモしておくことをおすすめします。

さらに、シナリオ作成ではJson形式を使用したシナリオ作成機能も用意されています。Json 形式は LINE API Reference と同じ形式で利用できるため、こちらを参考にすれば作りやすいと思います。

実装してみて感じたこと

ということで、一通りRepl-AIを触ってみましたがシナリオ作成がノンプログラミングでできるのが、このツールの1番の特長だと思いますコーポレートや営業、インターンなどエンジニア以外の人が、チャットボットを使って日々の業務を効率化したいというニーズもあるので、そういった時に役立ちそうです。対話ボックスを使えば、エンジニアでなくても比較的簡単にシナリオが作成できますが、最初はエンジニアがサポートする形で一緒に作ってみるといいかもしれません。作った後に「こういった応答を入れたい」といったリクエストが出てきても、対話ボックスを変更すればいいので、エンジニアの対応を待たなくてもよくなります。今回Qiitaヘルプに実装したRepl-AIも私がリードしてインターンと作りましたが、今後、応答を増やしていくのはインターンだけでもできそうです。

インターンにもレクチャーして触ってもらいました。問題なく運用をお願いできそうです。

 

AIチャットボットの可能性について

Qiita Teamでは、以前リアルタイムに近い形で問い合わせに関して、チャットで対応していたことがあります。評判は良かったのですが、スタートアップだとサポート業務にそこまでかける人時間なく、現場の負担にな止めてしまいました。そういった業務をある程度チャットボットで受けられると、人手を介さずに問い合わせ対応ができます。

また、Qiitaだったら、「この記事はQiitaの利用規約に合っていないのでは?」というユーザーさんからの問い合わせを、チャットボットを使って窓口へスムーズに誘導することができれば、Qiitaコンテンツの質の向上にもつながるかもしれません。こうした社外向けの運用だけでなく、ヘルプデスクなどの社内業務で「カジュアルにチャットボットを使ってみる」というのも良さそうです。

例えば勤怠、有給休暇、経費などの申請や問い合わせの業務ってなかなか受け答えに時間が取られたりします。だいたいドキュメントが用意してあると思うのですが、それを探すのにも手間がかかりますし、自分で探さずに問い合わせる人もいますよね。それがチャットボットで解消できると、問い合わせる側も対応する側もメリットがあります。

最後に、今回のQiitaヘルプページではユーザーのユースケースと合わなかったので見送りましたが、Repl-AIはFacebookやLINEとの連携が用意されています。それがさらにIFTTTみたいにいろいろなサービスと連携できるようになると夢が広がりますね。今回、Repl-AIを使ってみて「チャットボットを導入する敷居が下がる」というのは、とても大事なことだと思いました。人が楽をするためのサービスなので、楽に作れたらいいですよね(笑)。

Repl-AIで気軽にチャットボットを使ってみてはいかがでしょうか。いろいろな使い方が見えてくると思います!

無料AIチャットボット「Repl-AI」の詳細を確認する

Repl-AI

サービスについて

運営
株式会社インターメディアプランニング
サイト
https://repl-ai.jp/

  1. Incrementsのブログメディア『Work:Q』を『Qiita Zine』にリニューアルします。
  2. 自分に合ったインターンシップが見つかる! エンジニア1on1面談イベントに参加してみた