新卒エンジニアがAIチャットボットをQiitaに実装してみました!
皆さん、こんにちは。QiitaやQiita Teamを開発しているIncrementsのエンジニア千葉です。普段はQiitaやQiitadonの開発を担当しています。ご利用いただいている皆さん、いつもありがとうございます!
さて今回のPR記事では、プログラミング不要で使えるチャットボット作成ツールを使って、QiitaにAIチャットボットを実装してみました。実装の話や実際に使ってみての感想などをまとめましたのでご覧ください。
プロフィール
東京大学大学院修了後、アプリケーションエンジニアとして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上で完結するため、わざわざエンジニアが何か開発するのに特別な設定が必要ないという「簡単に導入できる」メリットがあります。また、過去に誰がどういった発言をして、どういった設定をしたかという「ログが残る」こともメリットです。
そんなわけでQiitanは便利なのですが、何か新しくQiitanにやらせたい時に、Rubotyを触れるのがエンジニアしかいないというのがネックになります。またサーバーが必要で、その運用に手間がかかるというのもあります。QiitanはHerokuを使ってサーバーを立てているので、サーバーが止まってしまったりすると、何かあった時にエンジニアが対応しなくてはなりません。
そこで今回は気軽に使えるRepl-AIで、AIチャットボットを実装してみました。
※ 今回チャットウィンドウを設置させていただくにあたり、Repl-AI のエンタープライズプランで実装しました。
Qiitaにチャットボットを実装してみた
チャットボットを実装する場所ですが、今回はヘルプページに実装してみました。
何か分からないことがある場合、それに対して受け答えする、というのはチャットボットに向いていそうです。
ということで、チャットボットをQiitaヘルプページに実装してみました。
Qiitaはエンドユーザー向けのサービスなので、サポートへの問い合わせ数はQiitaの成長とともに年々増加傾向にあります。ヘルプページで解決できる内容のはずなのにユーザーさんから問い合わせがあり、問い合わせの返答やそのやり取りで、ユーザーさんもIncrementsの担当者も時間を使ってしまうことが多々あります。それがチャットボットで改善できればお互いにハッピーですよね。
それでは、実際にどうやってチャットボットを実装したのか説明します。まずは、Repl-AIのページにアクセスしてユーザー登録をしておきます。
- 管理画面にアクセス。右上のダッシュボードからプロジェクト画面に移動
- プロジェクトを作成 (管理画面にログインしたら、プロジェクト追加を押します。今回は「sample」という名前にしました。)
- チャットボットを作成
次にチャットボットを作成します。名前は「sample」です。
4.シナリオを作成
次にシナリオを追加します。「Qiitan」というシナリオを作成しました。
Qiitanが学習したQiitaの機能について簡単に説明してくれます。雑談対話ボットを追加することで特定のキーワード以外を入力した時も、Qiitanと会話ができます。雑談対話ボットをGUIで挿入するだけで、簡単にチャットボットのクオリティを上げられます。
CSVでシナリオ作成を効率化
Qiitaのように常に開発を進めているWebサービスは、速いスピードで新機能リリースがあるので、その度に何度もヘルプ項目をアップデートしています。新機能がリリースされる度に、GUIでシナリオを編集しても構いませんが、ヘルプ項目が増えていくに従って、対話ボックス同士を線でつなぎ、抜け漏れなく項目をアップデートするには、時間が必要になったり、管理が大変になったりするかもしれません。そこでインターンにも協力してもらい、CSVインポート機能とGoogle スプレッドシートでRepl-AIへのヘルプ更新を以下のように効率化しました。
- Qiita新機能リリース時にGoogleスプレッドシートに新機能の名前と説明をそれぞれ別のセルに追記
- 新機能名と説明をチャットボットAIのCSVシナリオのフォーマットに代入
- GoogleスプレッドシートのCSVシナリオの部分をコピー
- 事前に用意したCSVファイルに貼り付ける
- 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を使ってみて「チャットボットを導入する敷居が下がる」というのは、とても大事なことだと思いました。人が楽をするためのサービスなので、楽に作れたらいいですよね(笑)。
サービスについて
運営
株式会社インターメディアプランニング
サイト
https://repl-ai.jp/