Sebastienについてはこちら
作るもの(動画)
SebastienとClovaの会話: https://t.co/SrNUh3PNu6、@YouTube がアップロード
— Hiroka Koizumi (@hirokanet) 2017年10月5日
準備するもの
- Googleアカウント、またはdアカウント
- AWSアカウント、LambdaとAPI Gatewayの知識
- LINEのWave、Android端末
作業工程
- UDSにデバイスを設定
- アプリをインストール
- DDSにボットを設定
- AWSに接続
- Clovaと会話させる
1.UDSにデバイスを設定
Googleアカウントを取得し、UDSにアクセスします。
dアカウントでもログインできます。
利用規約に同意して進みます。
新規デバイス登録画面が出ます。本来はここでデバイスを登録するのですが、現在はトライアル版のため登録できません。次に進みましょう。
2.アプリをインストール
Android端末でPlayストアを起動し、「cotobadesign」を検索すると見つかる対話アプリをインストールします。
起動して先ほどと同じGoogleアカウントでログインすると、認証が自動で行われます。
UDSへ戻って画面をリロードしてみてください。
SHADOWSの欄に、DOCOMOのTrialが出現しました。
SHADOWとは、大量にボットを作ったときに紐付けることが出来る単位です。今回は、SHADOWやデバイス追加について気にせず先へ進みます。
開発したボットは有効化しないと動きません。左のアイコンをクリックしてプルダウンを出し最下段の「サービス追加」画面から、ボットの有効化を行います。
今は何もないですね。先にボットを開発しましょう。
3.DDSにボットを設定
先ほどと同じアカウントで、DDSにログインします。利用規約に同意して進みます。
リファレンスに詳しく載っていますが、デフォルトで用意されているシステムCGSを使えば天気やニュースなどを呼び出すボットが簡単につくれます。
では、クローバと会話するボットを作りましょう。こんな感じで設定します。
作成したボットは、ユーザダッシュボード(UDS)に出現します。忘れずにボットを有効化してください。
ボットに好きな言葉を喋らせようとすると、コードを書く必要があります。ここでは、AWSのLambdaを使います。
4.AWSに接続
Lambdaのテンプレートを選択します。PythonでAPI Gatewayを使うテンプレートで作成します。
定型文を返す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)
デベロッパダッシュボード(DDS)へ戻って、Endpoint Settingへ貼り付けましょう。URLの最後にメソッド名をつけるのを忘れずに。
DDSの画面右でテストをしましょう。
まずは、(Invocation name)を呼んで、(Invocation name)をお願い、などと発言し、ボットを呼び出します。
「こんにちは」と、発言します。
先ほどの定型文が返ってきました。その後に、Goodbye messageがつながっています。Goodbye messageを設定しなければ、会話を終わらせずに続けることが出来ます。
5.Clovaと会話させる
Androidアプリを立ち上げ「(Invocation name)を呼んで」と発言すれば、ボット同士の会話が始まります。
「クローバ、◯◯」などと発言の前に「クローバ」を入れれば、Clovaが反応してくれます。Goodbye messageを設定せずにNLUを使えば、会話のバリエーションを増やすことも出来そうですね。