4
2

More than 5 years have passed since last update.

Sebastienでボットを喋らせて、Clovaとボット同士の会話をさせる

Last updated at Posted at 2017-10-03

Sebastienについてはこちら

作るもの(動画)

準備するもの

  • Googleアカウント、またはdアカウント
  • AWSアカウント、LambdaとAPI Gatewayの知識
  • LINEのWave、Android端末

作業工程

  1. UDSにデバイスを設定
  2. アプリをインストール
  3. DDSにボットを設定
  4. AWSに接続
  5. Clovaと会話させる

1.UDSにデバイスを設定

Googleアカウントを取得し、UDSにアクセスします。
スクリーンショット 2017-10-03 14.29.33.png

dアカウントでもログインできます。
利用規約に同意して進みます。

スクリーンショット 2017-10-03 14.31.03.png

新規デバイス登録画面が出ます。本来はここでデバイスを登録するのですが、現在はトライアル版のため登録できません。次に進みましょう。

2.アプリをインストール

Android端末でPlayストアを起動し、「cotobadesign」を検索すると見つかる対話アプリをインストールします。

スクリーンショット 2017-10-03 14.39.50.png

起動して先ほどと同じGoogleアカウントでログインすると、認証が自動で行われます。
UDSへ戻って画面をリロードしてみてください。

スクリーンショット 2017-10-03 14.41.27.jpg

SHADOWSの欄に、DOCOMOのTrialが出現しました。
SHADOWとは、大量にボットを作ったときに紐付けることが出来る単位です。今回は、SHADOWやデバイス追加について気にせず先へ進みます。

スクリーンショット 2017-10-03 14.48.24.png

開発したボットは有効化しないと動きません。左のアイコンをクリックしてプルダウンを出し最下段の「サービス追加」画面から、ボットの有効化を行います。

スクリーンショット 2017-10-03 14.49.41.png

今は何もないですね。先にボットを開発しましょう。

3.DDSにボットを設定

先ほどと同じアカウントで、DDSにログインします。利用規約に同意して進みます。

リファレンスに詳しく載っていますが、デフォルトで用意されているシステムCGSを使えば天気やニュースなどを呼び出すボットが簡単につくれます。

では、クローバと会話するボットを作りましょう。こんな感じで設定します。
スクリーンショット 2017-10-05 12.48.27.png

作成したボットは、ユーザダッシュボード(UDS)に出現します。忘れずにボットを有効化してください。
スクリーンショット 2017-10-05 12.19.32.png

ボットに好きな言葉を喋らせようとすると、コードを書く必要があります。ここでは、AWSのLambdaを使います。

4.AWSに接続

Lambdaのテンプレートを選択します。PythonでAPI Gatewayを使うテンプレートで作成します。
スクリーンショット 2017-10-05 11.44.44.png

このように設定します
スクリーンショット 2017-10-05 11.46.41.png

定型文を返すPythonコードです。

# coding: UTF-8
import logging
import json

logger = logging.getLogger()
logger.setLevel(logging.INFO)
logger.info('Loading Lambda function')

def lambda_handler(event, context):
    data = json.loads(event['body'])
    log('data = {}'.format(data))

    bot_id = data['bot_id']
    user_id = data['user_id']

    body = {
        "error_code": "success",
        "status": "true",
        "bot_id": bot_id,
        "user_id": user_id,
        "params": {
            "status": "true",
            "message": 'あ、、、い、いや。何でもないです。'
        }
    }
    response = {
        'statusCode': 200,
        'body': json.dumps(body)
    }
    log('response = {}'.format(response))
    return response

def log(message):
    logger.info(message)

保存したら、API Gatewayでデプロイします
スクリーンショット 2017-10-05 11.53.28.png

ステージの「URLの呼び出し」をコピーします。
スクリーンショット 2017-10-05 11.54.09.png

デベロッパダッシュボード(DDS)へ戻って、Endpoint Settingへ貼り付けましょう。URLの最後にメソッド名をつけるのを忘れずに。
スクリーンショット 2017-10-05 11.55.20.png

DDSの画面右でテストをしましょう。
まずは、(Invocation name)を呼んで、(Invocation name)をお願い、などと発言し、ボットを呼び出します。

スクリーンショット 2017-10-05 11.58.24.png

「こんにちは」と、発言します。

スクリーンショット 2017-10-05 12.50.51.png

先ほどの定型文が返ってきました。その後に、Goodbye messageがつながっています。Goodbye messageを設定しなければ、会話を終わらせずに続けることが出来ます。

5.Clovaと会話させる

Androidアプリを立ち上げ「(Invocation name)を呼んで」と発言すれば、ボット同士の会話が始まります。
「クローバ、◯◯」などと発言の前に「クローバ」を入れれば、Clovaが反応してくれます。Goodbye messageを設定せずにNLUを使えば、会話のバリエーションを増やすことも出来そうですね。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2