📘

Amazon Lexについてまとめてみた

2024/07/10に公開

Amazon Lexとは

Amazon Lexは、音声やテキスト(自然言語)を使用した会話型インターフェースを構築するサービスです。

Amazon Lex V1とV2の違い

Amazon Lex V1

  • 単一言語サポート: 一度に一つの言語しか使えません。
  • バージョン管理がない: ボットを更新すると、古いバージョンが消えてしまいます。
  • 簡単な会話のみ対応: 複雑なやり取りは苦手です。
  • 基本的な機能: インテント(ユーザーの意図)やスロット(情報の抜き出し)の管理がシンプルです。
  • 統合が限定的: 他のサービスとの連携が少ないです。
  • 制約が多い: 柔軟性や拡張性が限られています。

Amazon Lex V2

  • 複数言語サポート: 一つのボットで複数の言語を扱えます。
  • バージョン管理が可能: ボットの異なるバージョンを保存・管理できます。
  • 複雑な会話も対応可能: 長いやり取りもスムーズに処理できます。
  • 高度な機能: インテントやスロットの管理がより詳しくなっています。
  • 豊富な統合オプション: 他のサービスと簡単に連携できます。
  • 使いやすいインターフェース: 設定や管理が簡単になっています。
  • 強化されたセキュリティ: より安全に利用できます。

簡単に言うと、Amazon Lex V2は、より多機能で使いやすく、複数の言語や複雑な会話に対応しやすくなっています。V2は、ボットを簡単にアップデートでき、他のサービスとも柔軟に連携できるので、より高度で安全なチャットボットを作成するのに適しています。

インテントとスロットについて

インテント(Intent)

ユーザがチャットボットと話す際の「目的」を指します。
例えば、ユーザが「天気を教えて」とリクエストした場合、ユーザの目的は「天気情報を知りたい」ということになります。

スロット(Slot)

インテントを完了するために必要な詳細情報を指します。
スロットは特定のデータを取り出すための「入力欄」とも言えます。
 例えば、ユーザが「東京の天気を教えて」とリクエストした場合、そのインテントは「天気情報を知りたい」ですが、「東京」という情報がスロットに該当します。

例を挙げて説明すると...

ユーザの発話:「明日の東京の天気を教えて」
インテント:天気情報を知りたい
スロット:
  日付:明日
  場所:東京

まとめると….

  • インテント
    ユーザーの目的(例:天気情報を知りたい)。

  • スロット
    インテントを完了するために必要な具体的な情報(例:日付、場所)。

Amazon Lexのエイリアスとは

エイリアス(Alias)とは

ボットの特定のバージョンを指すラベルのようなものです。
ボットの異なるバージョンを管理・運用するのを簡単にするために使用されます。

なぜエイリアスがあるのか?

  • 柔軟な管理ができる
ボットの新しいバージョンをデプロイ(展開)する際に、エイリアスを使用することで、
ボットの使用者に影響を与えることなく、新旧のバージョンを切り替えることができる。

  • テストと運用の分離
「テスト用のエイリアス」と「運用用のエイリアス」を分けて設定することで、新しいバージョンのボットをテストしながら、
現在の運用バージョンをそのまま使い続けることができる。

例を挙げて説明すると...

問題:

ある会社では、Amazon Lexでチャットボット(バージョン1)を運用しています。
あるとき、新機能を追加することになったので、新バージョン(バージョン2)をリリースすることになりました。
しかし、リリースする際は、利用者に影響を与えることなく、継続して安定に使用してもらいたいです。
こんな時どうしたらいいだろうか??

そこでエイリアスの使用する:

まず、現在運用しているバージョン1のエイリアスを「production」として設定する。
そして、新バージョンのエイリアスを「test」として設定する。

テストと切り替え:

エイリアスを設定したら、まずテストチームが「test」エイリアスを使用して新機能をテストする。
テストが完了したら「production」エイリアスをバージョン1からバージョン2に変更する。
これにより、ユーザは「production」エイリアスを通じて新しいバージョンのボットを使用できるようになる。
ちなみに、この切り替えにおけるダウンタイムは発生しない。そして即座に反映される。

Amazon Lexはリソースベースポリシーをサポート

Amazon Lexで作成したボットごとにリソースベースのポリシーを設定することが可能です。
リソースにアクセスできるユーザとリソースで実行できるアクションを指定できる。

Amazon Lexの料金

公式ページに料金をまとめると以下のようになります。
https://aws.amazon.com/jp/lex/pricing/

課金される項目は大きく分けて3つあり、初期費用や最低利用料金などはありません。

リクエストと応答の相互作用:

音声リクエスト:

1リクエストあたり0.004USD(≒0.65円)

テキストリクエスト:

1リクエストあたり0.00075USD(≒0.12円)

ストリーミング会話:

音声ストリーミング:

1リクエストあたり0.0065USD(≒1.05 円)

自動チャットボットデザイナー:

トレーニング時間:1分あたり0.5USD(≒80.76 円)

補足)
● リクエストと応答の相互作用:
1ヶ月8,000回の音声リクエストと2,000回のテキストリクエストを処理する場合、
8,000×0.004 + 2,000×0.00075 = 32USD + 1.5USD = 33.5USD
となる。
日本円にして、5410円ぐらい

● ストリーミング会話:
ユーザーとチャットボットの間でリアルタイムの音声対話を実現する機能です。通常の音声リクエストとは異なり、会話全体がストリームとして処理されるため、よりスムーズで自然な対話が可能になります。
例1: 短い音声対話
ユーザー: 「こんにちは、今日の天気は?」
ボット: 「こんにちは!今日の天気は晴れです。」
このやり取りが1つの音声ストリーミングリクエストとしてカウントされます。
料金: 約0.71円(0.0065 USD)

例2: 長い音声対話
ユーザー: 「こんにちは、今日の天気は?明日はどうですか?」
ボット: 「こんにちは!今日の天気は晴れです。明日は雨が降る予定です。」

これも1つの音声ストリーミングリクエストとしてカウントされます。
料金: 約0.71円(0.0065 USD)

● 自動チャットボットデザイナー:
Amazon Lex Automated Chatbot Designer は、会話の会話記録を使用して数時間以内に自動的にチャットボットを作成します。
自然言語理解 (NLU) と深層学習技術を使用して会話の会話記録を分析し、ユーザーの目的 (保険ボットの「請求を提出する」など)、それらの目的に関連付けられた例文 (「請求を申し立てる」など)、およびそれらの実行に必要なすべての情報 (請求の種類、ポリシー ID など) リストを含むチャットボットの設計を明らかにします。
この設計を繰り返して、最初からやりとりする代わりにチャットボットのプロンプトと応答を変更できます。
会話記録の分析と意図の把握にかかる時間に対して、1 分あたり USD 0.50 のトレーニング料金が請求されます。トレーニングの完了にかかる時間は、会話記録の量や会話の複雑さなど、さまざまな要因によって異なります。通常、毎分 500 行の会話記録が分析されます。トレーニング時間は、1 分間隔で最も近い時間に切り上げられます。たとえば、トレーニングを完了してチャットボットのデザインを表示するのに 15 分 30 秒かかる場合、トレーニング時間は 16 分に切り上げられます。1 分あたり USD 0.50 の場合、この時間に対する合計コストは USD 8.00 になります。

Discussion