Amazon AlexaのプラットフォームであるAmazon Lexが一般公開され、音声を使用したチャットボットやモバイル、Web、デスクトップなどのアプリケーション開発が可能になった。
先回のRe:inventカンファレンスでプレビューベータとして紹介されたAmazon Lexを使用すれば、開発者が自身のアプリに会話型インターフェースを組み込むことができる。Lexは自動音声認識(ASR)といくつかの形式の自然言語理解(NLU)の両機能を、それらにアクセスするフレームワークを提供するボット(bot)のコンテキスト内で提供する。ボットには次のものが含まれている。
- インテント(Intents): ユーザーが達成したい目的を表現するもので、質問に対する回答の取得、リモートサービスに対するアクションの実行などで構成される。
- アタランス(Utterances): さまざまなインテントに関連付けられたフレーズ。アタランスは、スロットと呼ばれるプレースホルダをオプションとして含む文のテンプレートとして見ることができ、その値は、ユーザが発した実際の音声によって充足される。
- スロット(Slots): 前述のように、アタランスに対するインプットを表現するメカニズムを提供する。スロットはそれぞれ、数値や年、国、都市といった特定のタイプの情報を表現する。アクションリストや色リストのように、関連するインプットのセットを処理する独自タイプのスロットを定義することも可能だ。
- プロンプト(Prompts): 最初のアタランスで提供されなかった必要な情報を、Lexがユーザに尋ねることのできる質問。プロンプトは、ユーザとLexで動作するボットの間での、複数の言葉による実際の会話を可能にする基本ブロックである。
- フルフィルメント(Fulfillment): ユーザの目的(Intent)を達成(fulfill)するAWS Lambdaベースのサービスを表すものとして、Amazonが選択した名称。このビジネスロジックでは、ユーザの発話をベースに認識されたインテントに加えて、そのアタランスのスロットに対する実際の値をLexから取得することが可能である。
Alexaの開発経験のある開発者であれば、Alexaで使用するフレームワークに極めて近いという印象を持つだろう – 大きな違いは、Alexaで言うところのスキルがボットであることと、AlexaのスキルはAWS Lambdaに拘束されず、バックエンドで実装された任意のリモートエンドポイントを利用可能であることの2点だ。
プレビュー版の発表に合わせて、Amazonは、Facebook Messengerのチャットボットを公開した。その後もSlackやTwiloなど、より多くのサービスとの対話サポートが追加されている。さらに重要なのは、Webアプリやデスクトップアプリに加えて、iOSとAndroidアプリの開発サポートがAWS SDKに追加され、Lexを統合してさまざまな言語によるユーザとの対話が可能になったことだ。またLexコンソールは、アタランスの定義とボットを構成するインテントとの関連づけ、認識されずにインテントを起動しなかったアタランスの監視など、さまざまな機能を提供する。
この記事を評価
- 編集者評
- 編集長アクション