Amazon Lex で自由形式の入力を受け付けるスロットタイプ AMAZON.FreeFormInputを使ってみた

2023.05.02

はじめに

Amazon LexのスロットタイプAMAZON.FreeFormInputは、自由形式の入力を受け付けます。

ドキュメントで使用例としても紹介されていますが、「チャット終了後、発信者のフィードバック」や「Lambda でChatGPTのAPIをリクエストし、会話する」などの用途でこのスロットタイプを利用できますね。

今回は、Botの作成方法からAMAZON.FreeFormInputの設定方法、テストまでをやってみたいと思います。

AMAZON.FreeFormInputについて

ドキュメントでは、AMAZON.FreeFormInputは、少し他のスロットタイプと異なる点がありました

  • 待機と続行機能が利用できない
  • 現在Amazon Connect Chatチャンネルでサポートされていません
  • AMAZON.FreeFormInputスロットでは、FallbackIntentは誘発されない

ボットの作成

  1. Lexのコンソール画面から、[ボットの作成]をクリックします。
  2. [空のボットを作成します]を選択し、ボット名を記載し、下記画像の通りに入力します。
  3. 日本語を選択し、音声はTakumiを選択し、[完了]をクリックします。

これでボットが作成できました。

インテントの作成

  1. インテントの[インテントを追加]から[空のインテントを追加]でインテントを作成します。
  2. インテント名を入力し、サンプル発話に「話したい」を追加します。
  3. [スロットを追加]から、スロットタイプ[AMAZON.FreeFormInput]を選択します。プロンプトと名前も記載します。
    • スロット名をfreeformslotsとしました。
    • 設定時、以下のポップアップが出ましたが、保存して構いません
  4. [応答を閉じる]をアクティブにし、メッセージグループを入力します。
  5. インテントを保存後、Buildすると、インテントのテストが行えます。

テスト

テストしてみます。

話したいと入力すると、設定したプロンプトが返ります。

次に、自由形式で入力できますので、適当に入力すると、インテントが閉じます

Lambdaを使用し、入力されたコメントをDBに保存やChatGPTのAPIにリクエストするなど、色々な場面で利用できそうですね。

ぜひ、利用してみてください。