
チャットボットとは何か。簡潔に表現するならば、それは「会話形式で情報を入出力するプログラム」だと言えます。本記事では、誰でも簡単に作れるチャットボットの作り方について説明します。AIの有無別にチャットボットの作り方をご紹介していきますので、ぜひ参考にしてみてください!
なお本記事は、AIチャットボット「FirstContact」を提供する株式会社バイタリフィが執筆しています。
[PR]
本記事を執筆する(株)バイタリフィでは、AIチャットボット「FirstContact」を提供中です。近年話題【ChatGPT】にも対応しています。ぜひお気軽にお問い合わせください!
チャットボットの仕組みと種類
チャットボットの作り方を紹介する前にまずは、チャットボットの仕組みと種類について解説していきます。まず前提としてチャットボットがどういう仕組みになっているのか?簡単に解説します。
チャットボットは、あらかじめチャットボット上に想定問答を登録しておくことで、ユーザーから投稿、選択された質問にリアルタイムで返答できるような仕組みとなっています。

ECサイトや自治体ホームページなど、様々な場所でチャットボットをみかける機会が増えましたが、それらのチャットボットは事前に想定問答を登録されたものになっています。どんな質問に対応できるかどうか?設置されているチャットボットを試してみると分かりやすいかもしれません。
次にチャットボットの種類については、AI搭載型(機械学習型)かAI非搭載型(ルールベース型)かの2つに分かれます。

2つの違いを簡単にあらわすと「AIの機械学習があるかないか」といえます。AIが搭載されているチャットボットであれば、チャットボットに読み込ませたデータや運用で得たデータをもとに受け答えの精度を高めることができ、より自然な会話を行えるようになります。一方、AI非搭載型であれば質問とそれに対する回答をパターン化しやすいため、指定したルール通りに動き予測不能な動きをすることはありません。
チャットボットの作り方 〜準備編〜
では続いて、チャットボットの作り方を説明していく前段、準備段階の話をしていきます。本内容を知っておくと、チャットボット作成後に効果の高い運用を行えるようになります。ぜひ押さえておきましょう。
チャットボットをなぜ作りたいのか、目的を明確にする
チャットボットを作る前にまずは「なぜチャットボットを作りたいのか?」目的を明確にしておきましょう。
理由としては、
- サイトのコンバージョン率を上げる
- 離脱率を下げる
- 電話による問い合わせ数を減らす など
自社が成し遂げたい目的によって選択すべきチャットボットが変わってくるからです。解決したい課題によってはチャットボットが適さない場合もあります。
そのため「チャットボットでやりたいこと」や「解決したい課題は何か?」明確にしてからチャットボットの作り方を検討したり、実際にチャットボットを導入したりする段階にうつるようにしましょう。
チャットボットに求めるモノを決める
次に、チャットボットに求めるモノを洗い出します。チャットボットにどんな機能を求めるのか?AIの搭載有無はどうするのか?自社の方針によって決めていきましょう。
どこにチャットボットを導入するか決める
チャットボットをどこに導入するか決めることも重要です。コーポレートサイトやオウンドメディアなどのWebサイト上に導入するのか?アプリケーション上に導入するのか?などチャットボットを出現させる場所を決めていきましょう。
参考:チャットボットの導入には何が必要?~参考にしたい導入事例20社もご紹介!~
では、ここからは本題に入ります。
チャットボットの作り方 〜実装編〜 AIなし
まず最初にAIを使わないチャットボットについての作り方をご紹介いたします。
プログラミング言語を決定する
AIを使わないチャットボットを作る際はまず、実装を行うためのプログラミング言語を決めていきます。
チャットボットの場合はウェブサイト上に設置することが多いため
- Python(パイソン)
- PHP(ピーエイチピー)
- GO(ゴー)
- JavaScript(ジャバスクリプト)
- Perl(パール)
- Ruby(ルビー) など
web開発系の言語を使用することになるかと思われます。どこに設置したいかによって使うべき言語が異なる場合もあるので注意しましょう。
会話のやりとりを作成する
AIを使わないチャットボットを作る次の工程は、会話のやりとりの作成です。
具体的には「こう問いかけられた場合はこう回答する。」といった会話のパターンを全て洗い出します。
例)問いかけ | 例)回答 |
「おはよう、今日はいい天気だね。」 | 「そうですね。本日の気温は18℃、降水確率は30%です。」 |
「AのパッケージとBのパッケージ、比較して。」 | 「かしこまりました。以下の図をご覧ください」 |
会話のパターンを洗い出す際に重要となってくるのは、登録された言葉以外が入力されたとしても、ボットは答えることができない点です。
例えば、以下例のように登録されていない状態の問いかけが来た場合。ボットは答えることができません。
例)登録されていない問いかけ | 例)登録されていない場合専用の回答 |
「明日の天気は?」 | 「申し訳ありません、解釈できませんでした。」 |
そのため、登録されていない問いかけに対する定型文(答え)をあらかじめ決めておく必要があります。
プログラムを組む
AIを使わないチャットボットの作り方最後は、プログラムを組むことです。
チャットボットで対応する会話が出そろったのを確認したら、プログラムを組んでいきましょう。
実際に運用する場合は、
サイト利用者がボットへ質問を投げる度に、JavaScriptで質問内容をサーバーに送信。
↓
質問を受け取ったサーバーの中でチャットボットのプログラムが動作し、プログラムが吐き出した回答を利用者に送り返す。
という一般的なリクエストーレスポンス形式もしくは、チャットボットのロジックをフロントに直接書いてしまうといった2パターンの方法が考えられます。
ツールを使用する
プログラムを組むのが面倒、あるいはコストがかかり過ぎるという場合は、ツールを使って構築する方法もあります。
チャットボットを作成するためのツールは非常に多く存在し、用途に合ったツールを見つけることができれば、企業が提供する専用のマニュアルに沿って実装することで、欲しい機能を備えたチャットボットを作成することができます。
チャットボットの作り方 〜実装編〜 AI有り
次は、AIを組み入れたチャットボットの作り方について、ざっと説明いたします。
どこにAIが介在するのか把握する
AIを組み入れたチャットボットを作るにはまず、どこにAIが介在するか?把握するようにしましょう。具体的には、AIが介入する部分は「文章の意味付け」となります。以下例を挙げて解説していきます。
例)「岸田首相の年齢は?」
上記の文章は、岸田首相の年齢を尋ねています。AIはこの文章を解釈し、岸田首相という「人物」の「年齢」を「尋ねられている」のだと理解します。これが文章の意味付けです(具体的にAIがどのような仕組みで文章の解釈を行なっているのかは「自然言語処理」というワードで検索してください)。
AIが「人物」の「年齢」を「尋ねられている」ことを理解したら、次に回答の作成に移ります。AIチャットボットにおける回答の作成は二通りの方法があります。回答そのものもAIに作成させるか、それとも回答は人間が(あらかじめ)作成するか、です。
それぞれについて見ていきましょう。
AIが回答を作成する
AIが回答を作成するとはどういうことか。それは、AIが人間の指示を受けずに一から文章を構築することを指します。これは「生成モデル」と呼ばれる手法で、柔軟な回答を実現します。
例として、雑談AIを作成する手順を見てみましょう。
まず、学習データを用意します。
名大会話コーパスのようなデータセットをダウンロードし、GiNZA, MeCabといった自然言語処理のライブラリを使って整理します。(手法によっては省略)
それらデータを、Tensorflow, Keras, Pytorch, といったディープラーニングフレームワークで作成したモデルに学習させます。
■参考 https://qiita.com/Pu-of-Parari/items/62d7226814a6aba98354
自然言語処理のライブラリ一覧
https://note.com/npaka/n/na0a80b9e368d
ディープラーニングのライブラリ一覧
https://www.bigdata-navi.com/aidrops/32/
このチャットボットは雑談しかできません。何故なら学習させたデータが雑談だからです。AIが回答を自動生成するチャットボット(例えば歴代の首相のプロフィールを正確性は問わず雑談形式で回答するAI、ニッチな話題をさも興味深げに聞いてくれるAI、ジョークAI、など)を作成するには、そのためのデータセットが必要になってきます。
回答は人間が作成する
次に、人間が回答を作成する方法です。
文章の解釈はAIに任せ、回答は人間が作成する場合。AIが読み取った文章上の「意味」を「フラグ」とし「フラグが立った場合の回答をそれぞれ作成する」のがベーシックな手法です。
具体的な例を紹介します。
例)「岸田首相の年齢は?」
この文章をAIが解釈すると「岸田首相」の「年齢」を「尋ねられている」のだと分かります。この「岸田首相」「年齢」という「意味」を「フラグ」として扱い、それらが立ったら(=文章上にそれらの「意味」が出現したら)、この回答「2022年3月4日時点の岸田首相の年齢は64歳です」を出力すると「設定」します。
上記の例であれば「岸田首相」「年齢」という「フラグ」が立った場合には、データベースから「岸田首相」の年齢情報( 2022年3月4日時点の岸田首相の年齢は64歳です )を引っ張り出して表示する。という処理をあらかじめ登録しておくことで、この問いに対し正しい回答を返すことができます。
逆に言えば、AIがフラグを認識したとしても、対応する回答が登録されていなければボットが正しい(=質問の答えとなるような)回答を返してくれることはない、ということになります。
このような手法は「ルールベースのチャットボット」であり、チャットボットの中では「検索ベースモデル」に分類されます。興味のある方は以下のリンクをご覧ください。
ルールベース型・機械学習型とは?~チャットボットの違い~
実装する
AIがチャットボットのどこに介在するのか把握したら、次は実装です。お近くのAI技術者に実装を依頼するか、ご自身でAIを学び、プログラムを実装します。
ツールを使用する
IBMWatson
https://www.ibm.com/jp-ja/watson
IBMWatsonは、上記の例で言うところの「文章解釈をAIに任せ、回答を人間が作成する」タイプのチャットボットを構築することができるAIツールです。チュートリアルに従って手を動かすことで、簡単なボットを作成することができます。
IBMWatsonで作成されたチャットボットを設置しているサイトの例としては、株式会社ツナググループHCが運営しているmizicanaがあげられます。身近な求人を掲載しているサイトで、チャットボットにより希望に沿った求人を検索することができます。
チャットボットの活用事例
ここから、実際にチャットボットを活用している事例を紹介していきます。
三谷商事株式会社
パッケージ商品の新規集客と保守サポートのため、自社のサイトにチャットロボットを設置。結果として、資料請求やマニュアルダウンロードなどチャット経由からの流入が増加した事例です。

アディッドバリュー株式会社
法人に特化したギフトコンシェルジュサービス「okurimono -おくりもの-」を運営するアディッドバリューは、電話での問い合わせが多かったことから、チャットボットを設置。設置後、チャットボット経由での問い合わせのうち、約3割が成約に結び付いた事例です。

積水化学工業株式会社
家づくりにおける住宅ローンの簡易シミュレーションのために導入、GA(Google Analytics)連携により離脱や選択されている項目を可視化、ニーズの把握が可能になった事例です。
チャットボットの作り方 まとめ
チャットボットには、様々な種類や作り方があります。現在抱えている問題は何か?それはチャットボットによって解決できるのか?よく考えた上で、目的に合った手法を選ぶことが重要です。
[PR]FirstContactとはどんなサービスか
2023年話題沸騰中ChatGPTにも対応しているAIチャットボット「FirstContact(ファーストコンタクト)」をご紹介させていただきます。

簡単、低価格。コンバージョン率をアップするWebチャットボットサービス
FirstContactは、社内の問い合わせ対応の自動化、ECサイトにおける購入数の増加、Web接客の実施によるLTVの向上など、お客様が抱える”課題”解決に寄与できるチャットボットサービスです。
チャット・AI(人工知能)による対話・プッシュ通知といった様々な機能を揃え、導入費・運用費共に リーズナブルな価格でご提供しております。
また、Webサイトやアプリをお持ちの企業であれば数行のコードを埋め込む事で、簡単に導入が可能です。
課題解決に繋がる様々なカスタマイズが実現可能
FirstContactはWebサイトでの利用はもちろん、LINEやFacebookとの連携をオプション機能として用意しております。また、弊社は開発を主軸としている”開発会社”のため、お客様の課題や要望に合わせて柔軟に機能を追加したり連携開発を行ったりすることができるという強みを持っています。直近の事例ですと、チャットボットとIVR(音声認識)ソリューションとの連携開発を行い、ユーザーからの電話での問い合わせに対し音声による自動応答ができる仕組みを開発いたしました。
チャットボットと人間、両方で対応
FirstContactはチャットボットによるAIを活用した自動対応・人間のオペレーターによる手動対応を自由に切り替えることができるハイブリッドなWebチャットです。
また、切り替え作業はボタンを1クリックするだけなので簡単に行うことができます。

問い合わせに即時応答し顧客満足を得るためには、チャットボットの「即時応答性・データの豊富さ・再現性」に加え、手動対応の「柔軟性・ユーザーの意図を推論できること」を組み合わせることが、現時点でのWebチャットの最適解といえます。
再現性・・・人間のように記憶違いなどがなく、同じ質問に対していつも同じ答えを返すことができること
なぜWatsonなのか?
FirstContactはWatsonのAPIを利用しています。
WatsonのAIエンジンを選択した理由として、
- 自然言語処理に強い
- 会話をツリー状につなげるシンプルなUI
- 慣れれば複雑なシナリオも設計できる
- 日本語にも柔軟に対応ができる
といった点があります。
プログラムがわからなくても多くのデータを投入することでバリエーション豊かなシナリオを設計できますし、プログラムがわかればより複雑なシナリオを構築できるようになっています。
Watsonは自然言語処理にも強くなっており、言葉のゆらぎを吸収することが可能となります。人間が思わず言ってしまう話し言葉やうろ覚えで言ってしまう言葉にも反応をすることができます。ユーザーの中には的確な単語が思い浮かぶ人もいれば、ぱっと出てこない中で単語を入力する人など状態は様々だと思います。例えばサービスの料金を聞きたい場合にも「料金を知りたい」「いくらなの?」「金額教えて」「費用は?」など様々な訊き方がありますよね。そういった様々な言い回しの質問にも対応することができるため、Watson搭載のチャットボットはユーザーにとって使い心地の良いチャットボットであると言えます。
Watsonの操作画面
Webチャット+プッシュ通知を組み合わせたマーケティングの新手法
即時性が強みの「チャットボット」と、人間によるオペレーションを橋渡す機能として、Webプッシュ機能を搭載しています。 即時対応できる体制がなくても、ユーザーに対して後日チャットを返信したり、チャットボットの対応で不十分だった箇所をフォローできます。
これまで、単なる広告チャンネルでしかなかったWebプッシュ を、双方に有益なコミュニケーションツールとして活用できます。「一度サイトを離れるとその後利用してもらいにくい」というデメリットも補うことができます。
また、操作方法も簡単になっておりワンタッチでチャットボットと人間を切替えすることができます。
チャットボットで対応したい場合と人間で対応したい場合、様々な場面においても柔軟にかつ簡単に対応できる仕様となっております。
検出ワードの設定で必要なときだけ有人対応
ハイブリット対応とはいってもできるだけ人手は省きたいものですよね。管理画面を常時見て、どのユーザーが有人対応を必要としているか探すというのは、せっかくチャットボットを導入しても返って手間になってしまいますし、取りこぼしのリスクもあります。そのような事態を防ぐために、FirstContactには「検出ワード設定」という機能を搭載しております。有人対応を必要とするユーザーに対しAIが返答するテキストを「検出ワード」として設定しておくと、そのキーワードが発話された際にオペレーターにメール通知を送る、という機能です。通知メールにあるURLをクリックすると、すぐに該当ユーザーのチャット画面を開くことができます。
これにより必要な時にだけ即時有人対応をするフローを組むことができ、工数の削減が期待できます。
このようにFirstContactでは様々な機能を搭載しており、お客様に合わせたカスタマイズも柔軟に対応しております。
ご相談は無料ですので、是非お気軽にお問い合わせくださいませ!