LoginSignup
3

More than 5 years have passed since last update.

【AWS】Amazon Lexのカスタムボットできんにくフレンズを作ろう[Part1]

Last updated at Posted at 2017-05-21

タダです。

Amazon Lex(以下、Lex)と戯れてみたレポートを何回か書いてみたいと思います。
今回は、定型文の会話を行うカスタムボットを作ってみた時の紹介記事です。
社内のLT大会で話してみたので、その模様は以下からどうぞ。

社内ブログとか動画

[contents]

Lexの概要

さて、改めてLexの概要をまとめてみると、次のような特徴があります

  • Lexはアプリケーションの対話型インタフェースを作るのをサポートするサービス
    • チャットボット開発に最適
  • Lambda,Cognito,Polly,MobileHub 等とも連携可能
  • チャットのプラットフォームとして、Facebook Messanger,Twilio SMS,Slackと連携可能
  • 従量課金制

Lexの専門用語

Lexで扱う専門用語は次のものです

  • Bot : ボットそのもの
  • Intents : ユーザが入力した自然言語に応答する、ボットのアクションの固まり
  • Utterances : Intentsを発動する口頭もしくは入力されるフレーズ
  • Slot : Intentsを満たすための要求される入力データ
  • Prompt : Slotを引き出すためのフレーズ
  • Fulfillment : Intentsを実現するビジネスロジック

公式資料

やってみたこと

  • Slackにきんにくフレンズを召喚
    • 普段から使っているし、馴染みがある
  • きんにくフレンズBot(@musclechang)に話しかけて自分のトレーニングメニューを管理するものを作ってみたい
    • トレーニングしたいと話しかけると、トレーニングメニュー、回数、セット数を聞いてくれて、最後は励ますようなボットです

実現するためにやったこと

AWS側

Utterancesと、Slots、Promptはこんな感じです

Screen Shot 2017-05-21 at 10.25.05 PM.png

Slots typesは3つ作りました

  • Set(トレーニングのセット数)
  • Training Menu(トレーニングメニュー)
  • Count(何回やるかのカウント数)

Fulfillmentは、Lambdaでやらないので、「Return parameters to client」を選択しています
Screen Shot 2017-05-21 at 10.27.11 PM.png

Slack側

Slackの連携部分は、以下のドキュメントを参考にしました

結果

こんな感じの対話ができるフレンズができました!

Screen Shot 2017-05-21 at 10.06.30 PM.png

まとめ

  • ノンプラグラミングでボットを作れました
    • 定型文しか返せないので、AIぽく入力した情報を貯めて、より良いトレーニングメニューを提案するような感じにしていきたい
    • 次回に他のAWSリソースと連携してみたいです(Lambda,Pollyとの連携とか)

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
3