前回は、チャットボットの実例を紹介しながら、チャットボットのできることや、AI との関係などについて説明しました。今回は、チャットボットの仕組みと題し、ユーザーの発言がチャットボットに届く仕組み、チャットボットの応答がユーザーに届く仕組み、そしてチャットボットが自発的に発言する仕組みについて解説します。
第2回「チャットボットの仕組み」を解説していきます。
1. ユーザーの発言がチャットボットに届く仕組み
ユーザーが「おはよう」と発言したとき、発言がチャットボットに届く例を見てみましょう(図1)。
最初に、ユーザーの発言がネットワーク(多くの場合はインターネット)を通じて、チャットサーバに届きます。チャットサーバは、チャットサービスを行っている会社が提供しているものとします。ここでは、ハードウェア(コンピュータ)とソフトウェア(プログラム)の両方をまとめて、チャットサーバと呼ぶことにします。なお、ウェブサイト上で動作するチャットボットの場合、Web サーバがチャットサーバの役割を担うことがありますが、基本的な仕組みは同じです。
次にチャットサーバは、ネットワークを通じてユーザーの発言をチャットボットに対して送信します。多くのチャットボットは、チャットサーバとは別のコンピュータ上で動いているプログラムです。このとき「おはよう」のような発言のテキストだけではなく、発言したユーザーを識別するためのユーザーID や、発言した時刻を表すタイムスタンプなどの情報も一緒に送信します。LINE( ライン) の場合には、チャットボットが応答を行う際にチケットとして使う、リプライトークンと呼ばれる番号も付加します。
チャットサーバとチャットボット間の通信には、HTTP(エイチティーティーピー:HyperText Tranfer Protocol)またはHTTPS(エイチティーティーピーエス:HTTP Secure)と呼ばれる通信規約を使うことが多いです。HTTPやHTTPSは、主にWebブラウザとWebサーバの間で使う通信規約です。また、それ以外のさまざまな通信にも活用されています。URL の先頭の「http」や「https」というのは、はHTTP やHTTPS を表しています。なおHTTPS は、Secure(安全な)とあるとおり、HTTP の安全性を高めた通信規約です。
2. チャットボットの応答がユーザーに届く仕組み
次に、ユーザーの発言を受信したチャットボットが、ユーザーへ応答を返す例を見てみましょう(図2)。
例えば「おはようございます!」という応答を返すとします。チャットボットはチャットサーバに対して、「おはようございます!」というテキストに加えて、前述のリプライトークンや、チャットサーバにアクセスする権利を表すアクセストークンという番号などを一緒に送信します。LINE では、リプライトークンやアクセストークンが必要となります。一方、他のチャットサービスでもLINE と似たような仕組みを使って、チャットボットがチャットサーバにアクセスする権利を管理しています。
チャットボットの応答を受信したチャットサーバは、トークンを調べて、発言を許されているチャットボットなのか、発言が許されているタイミングなのか、などを確認します。確認ができたら、チャットサーバはユーザーに応答を送信します。あとはユーザーの手元にあるアプリやWeb ブラウザが、届いた応答を画面に表示すれば完了です。
このように、チャットサーバとチャットボットの間では、発言や応答のテキストに加えて、ユーザーID やタイムスタンプやトークンといった、さまざまな情報がやりとりされます。多くの場合、これらの情報はJSON(ジェイソン:JavaScript Object Notation)というデータ形式で扱われます。JSON は、JavaScript(ジャバスクリプト)というプログラミング言語に由来するデータ形式ですが、JavaScript に限らず幅広い場面で活用されています。JSON をうまく使って記述したデータは、簡単なプログラムで処理でき、人間が読んでも読みやすいという強みがあります。
登録商標・商標:
LINE は、LINE 株式会社の商標または登録商標です
3. チャットボットが自発的に発言する仕組み
全6回で下記の内容を解説しています。
- 第1回 チャットボットとは
- 第2回 チャットボットの仕組み
- 第3回 チャットボットの開発
- 第4回 簡単なチャットボットを作ってみよう~あいさつボット
- 第5回 実用的なチャットボットを作ってみよう~割り勘ボット
- 第6回 Web APIを使ったチャットボットを作ってみよう~価格検索ボット