メニュー

簡単なチャットボットを作ってみよう~あいさつボット:チャットボットの基礎知識4

チャットボットの基礎知識

更新日:2020年1月8日(初回投稿)
著者:ひぐぺん工房 松浦 健一郎、司 ゆき

前回は、チャットボットのプログラムが行う処理の流れや、開発に使うプログラミング言語、そしてチャットボットの開発を支援する開発環境について解説しました。今回は、実際に簡単なチャットボットのプログラムを作りながら、どんな処理を行っているのか具体的に解説します。作成するのは「こんにちは!」や「おはようございます!」といった応答を返す、あいさつチャットボットです。このチャットボットはLINE(ライン)上でユーザーと会話します。他のチャットサービスなどで会話するチャットボットを作る際も、基本的な考え方は共通です。

今すぐ、技術資料をダウンロードする!(ログイン)

1. あいさつチャットボットの仕組み

最初は、簡単なチャットボットを作りましょう。いつも「こんにちは!」とだけあいさつするチャットボットです(図1)。ユーザーが何か発言したら、その内容にかかわらず、常に「こんにちは!」という応答を返します。

図1:「こんにちは!」とだけあいさつするチャットボット

図1:「こんにちは!」とだけあいさつするチャットボット

例えばユーザーが「やあ」と発言すると、チャットボットはチャットサーバからJSONデータを受信します(図2)。このデータには、発言のテキスト「やあ」に加えて、応答に必要なリプライトークンなども含まれています。ここでは図を簡単にするために、データの一部を「…」のように省略しました。また、実際のデータではテキストがエンコード(符号化)されていますが、ここでは分かりやすさのために、元のテキストのまま示しています。

図2:チャットボットが受信するJSONデータ

図2:チャットボットが受信するJSONデータ

このチャットボットが「こんにちは!」と応答するには、図3に示すようなJSONデータをチャットサーバに送信します。このデータには、「こんにちは!」というテキストと、先ほどチャットサーバから受信したリプライトークンを含めます。

図3:チャットボットが送信するJSONデータ

図3:チャットボットが送信するJSONデータ

2. あいさつチャットボットのプログラム

これでチャットボットが受信および送信するデータの構造は分かったので、あとはこれらのデータを操作するプログラムを作成すれば、チャットボットは完成です。今回は、プログラミング言語Python(パイソン)を使って、プログラムを開発してみました。以下にプログラムを示します。

#!/usr/local/bin/python
import codecs
import json
import os
import sys
import requests

# 入力の文字エンコーディングを指定
sys.stdin = codecs.getreader(‘utf-8’)(sys.stdin.detach())

# JSONデータを取得
input = json.load(sys.stdin)

# アクセストークン(発行された番号を…に記入)
token = ‘…’

# 全てのイベントを処理
for event in input[‘events’]:

# ユーザの発言を取得
query = event[‘message’][‘text’]

# 応答を作成
reply = ‘こんにちは!’

# ユーザの発言に応じて応答を変える
if ‘おはよう’ in query:
reply = ‘おはようございます!’
if ‘おやすみ’ in query:
reply = ‘おやすみなさい!’

# 応答を送信
requests.post(
‘https://api.line.me/v2/bot/message/reply’,
headers={
‘Content-Type’: ‘application/json’,
‘Authorization’: ‘Bearer ‘ + token
},
data=json.dumps({
‘replyToken’: event[‘replyToken’],
‘messages’: [{
‘type’: ‘text’,
‘text’: reply
}]
})
)

続きは、保管用PDFに掲載中。ぜひ、下記よりダウンロードして、ご覧ください。

3. ユーザーの発言に応じてあいさつを変えるには

保管用PDFに掲載中。ぜひ、下記よりダウンロードして、ご覧ください。

  • セミナー1月
  • カタログバナー
  • 販促_無料出展

ピックアップ記事

tags

  • 特集バナー0114_01
  • 特集バナー0114_02
  • 特集バナー0114_03
  • 特集バナー0114_04
  • 特集バナー0114_05
  • 特集バナー0106_01
  • 特集バナー0106_02
  • 特集バナー0106_03
  • 基礎知識一覧