Dialogflowを使って自然言語処理部分を実装していきます。

1-1. Agentを作成する

https://dialogflow.com/にアクセスしてください。
[Sign up for free]ボタンをクリックします。お持ちのGoogleアカウントでログインしてください。

s100

初めてDialogflowをお使いになる方は利用許可してください。

s101

Terms of Service部分のチェックを入れてから[ACCEPT]ボタンをクリックします。

s102

[CREATE AGENT]ボタンをクリックします。

s103

Parrot と入力し、デフォルト言語を Japanese - ja に選択してから[CREATE]ボタンをクリックします。

s200

1-2. MainIntentを作成する

左側メニューの Intents の[+]ボタンをクリックします。Intent名は「MainIntent」と入力します。

s201

Training phrasesに any と入力して、[Enter]キーで確定させます。

s203

any の単語をマウスでダブルクリックするとポップアップメニューが表示されます。
その中にある @sys.any を選択します。

s204

警告ダイアログが表示されるので、OKをクリックします。
この警告は非推奨な使い方だけど、問題ないかの確認ダイアログです。

s205

最終的にこのようになればOKです。

s206

ResponsesのText Responseに $any と入力してください。
この $any に入力した文字列が入ってきます。

s209

画面右上の[SAVE]ボタンをクリックします。

s207

1-3. 動作確認

右側に Try it now という所にオウム返ししてほしい言葉を入力します。
入力した文字が下に表示されます。

s208

LINEのチャットボットで作ったオウム返しを動かしてみましょう!

2-1. LINE Developerにアクセス

下記URLにアクセスしてお持ちのLINEアカウントでログインしてください。
https://developers.line.biz/console/

プロバイダーをまだ設定していない方は作成しておいてください。

s300

2-2. 新規チャネル作成

[新規チャネル]をクリックします。

s301

その中の Messaging API をクリックします。

s302

各種項目を埋めていきます。

①チャネル名

チャットハンズオン

②チャネル説明

チャットハンズオン

③大業種

個人

④小業種

個人(その他)

⑤メールアドレス

ご自身のメールアドレス

s303

2つのチェックを入れてから[作成]ボタンをクリックします。

s304

[同意する]をクリックします。

s305

2-3. DialogflowにLINEの設定値を反映させる

Dialogflowの Integrations にある LINE をクリックします。

s306

ポップアップメニューが表示されるので、LINE Developerの各種値を反映していきます。

s307

Channel ID はチャネル基本設定にあります。

s308

Channel Secret はチャネル基本設定の下の方にスクロールすると出てきます。

s309

Channel Access Token は 「Messaging API設定」 の一番下の項目にあります。

s310

[再発行]ボタンを押して、アクセストークンを再発行します。

s311

DialogflowにあるWebhook URLをLINE Developer側に反映させます。

s312

[START]をクリックします。

s313

2-4. 応答設定をする

LINE公式アカウント設定カテゴリの「応答メッセージ」を編集します。

s314

応答メッセージを「オフ」にします。

s315

2-5. ボットと友だちになる

QRコードを読み取って、LINEボットと友だちになってください。

s316

LINEアプリから[追加]をタップして、チャット画面で好きな言葉を入力します。
これでチャットの返答がオウム返しで返ってきます。

s317

身長と体重を入力してBMIを測定してみましょう!

3-1. Intentを作成する

左側メニューの Intents の[+]ボタンをクリックします。Intent名は「BMIIntent」と入力します。測定を開始するための言葉を Training phrases に登録します。

s400

Action and parameters 部分に項目を埋めていきます。

REQUIRED

チェックを入れる

PARAMETER NAME

height

ENTITY

@sys.number

VALUE

$height

s401

入力したら、[Define prompts]をクリックします。ポップアップが表示されるので、身長を答えてもらえるような言葉を登録します。

あなたの身長をcmで教えて下さい

s402

続いて体重も同様に入力します。

REQUIRED

チェックを入れる

PARAMETER NAME

weight

ENTITY

@sys.number

VALUE

$weight

PROMPTS

続いてあなたの体重をkgで教えて下さい

このようになればOKです。

s403

Fulfillment部分にあるWebhookを有効化にします。

s404

3-2. コードを入力する

左側メニューの Fulfillment をクリックします。Inline Editor側を ENABLED にします。index.jsにコードを入力します。

コードを入力後、右下にある[DEPLOY]ボタンをクリックします。左側に日付が表示されればOKです。

'use strict';
 
const functions = require('firebase-functions');
const {WebhookClient} = require('dialogflow-fulfillment');

process.env.DEBUG = 'dialogflow:debug'; // enables lib debugging statements
 
exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
  const agent = new WebhookClient({ request, response });
  console.log('Dialogflow Request headers: ' + JSON.stringify(request.headers));
  console.log('Dialogflow Request body: ' + JSON.stringify(request.body));
 
  function bmiintent(agent) {
    const bmiVal = (parseFloat(agent.parameters.weight) / (parseFloat(agent.parameters.height)/100 * parseFloat(agent.parameters.height)/100)).toFixed(1);
    let speechText = `あなたのBMIは${bmiVal}です。`;
    agent.add(speechText);
  }
  let intentMap = new Map();
  intentMap.set('BMIIntent', bmiintent);
  agent.handleRequest(intentMap);
});

s405

3-3. 動作確認する

LINEチャット画面で「スタート」と入力すると身長と体重を聞かれます。
値を入力すると、BMIの値が返ってきます。

s406

スタートという文字を入力しなくてもリッチメニューで開始できるように対応しよう!

4-1. LINE Official Account Managerの設定

LINE Developer画面の LINE Official Account Manager のリンクをクリックします。

s500

4-2. リッチメニューを作成

[ホーム]ー[リッチメニュー]にある[作成]ボタンをクリックします。

s501

タイトルと表示期間を設定します。

①タイトル

スタート

②表示期間

2020/01/01 00:00 〜 2029/12/31 00:00

s502

[テンプレートを選択]ボタンをクリックします。

s503

テンプレートは左下の物を選択して、[選択]ボタンをクリックします。

s504

アクションの設定をします。

①タイプ

テキスト

②テキスト

スタート

s505

4-3. 背景画像を作成する

[画像を作成]ボタンをクリックします。

s506

メニューからテキストや背景色を設定してそれらしいボタン画像を作成します。
ボタンが出来たら[適用]ボタンをクリックします。

s507

画像を保存する必要が特に無いので、[適用]ボタンをクリックします。

s508

[保存]ボタンをクリックします。

s509

4-4. 動作確認する

LINEチャット画面を表示すると、リッチメニューが表示されます。
[測定開始]をタップすると自動的に「スタート」と入力されます。

s510