Amazon Web Services ブログ
Amazon Lex セッション API チェックポイントを使った複数トピックの会話フローの管理
日常会話では、複数のトピックの間で行き来することがよくあります。たとえば、家の新しい窓とカーテンの改装について話し合うとき、「カーテンのスタイルはこれで決めて、色について考え直してみない?」というような質問が出てくることがあります。 AWS が Amazon Lex セッション API を開始するときに、 会話が脱線する場合の対応方法を学びました。セッション API アクションを使用して、インテントを切り替え、会話を継続することができます。しかし、毎日の対話で、「では窓の選択を終えてからカーテンについて考えましょう」というような複数の脱線に対応することが必要になる場合があります。
一連の脱線を含む会話フローをどのように設計したらよいでしょうか。 あなたが私のようである場合は、家の改装プロジェクトにおける特定の製品を考える前にでも、複数の質問がある場合があります。
セッションのチェックポイントで、あなたは多くのトピックのうちの 1 つに切り替えるサポートをするために容易に会話を設定できます。家の改装の会話を 2 つのインテント、すなわち OrderWindows
と OrderCurtains
、としてモデル化することができます。 今ではこのトピックの切り替えが容易にできるようになりました。OrderWindows
のフローには、チェックポイントがあることがあります。ユーザーがカーテンを注文したが、窓の選択を最初に完了したい場合、「windowSelection」チェックポイントを使用して会話を OrderWindows
に戻すことができました。
セッションチェックポイントの管理
Amazon Lex ランタイム API は、会話のセッションチェックポイントを管理できるようにするオペレーションを提供しています。PutSession
および GetSession
呼び出しは、チェックポイントを定義して、取得できるようにします。 ここでは、API を使用して以前、説明した会話フローを管理できる方法を示します。ボットの詳細については、ボットスキーマを見直してください。
会話フローを管理するためには、次のステップに従ってください。
- 会話の現在の状態を保存します
- 以前に保存した状態を取得し、会話を継続します
会話の現在の状態を保存します
フィルターなしで GetSession
API を呼び出し、ボットとユーザーの間の会話の現在の状態を取得します。GetSession
API 呼び出しの後に PutSession
API 呼び出しが続き、チェックポイント「windowSelection」 を OrderWindows
インテントに適用します。PutSession
呼び出しは、以下のコード例で示されています。
以前保存された状態を取得します
この時点で、OrderCurtains
インテントが完了しました。GetSession
API 呼び出しを発行する一方で、「windowSelection」checkpointLabelFilter
を渡します。 この呼び出しは一致するインテント (OrderWindows) の結果が得られ、それは前のステップでチェックポイントラベルを受け取ります。
会話を続行します
最終的に、PutSession
API 呼び出しを発行し、OrderWindows
でユーザーが離れた場所で続行する会話の次のステップを設定します。以下のコード例は、GetSession
の詳細をリストします。
セッション API チェックポイントで開始します
この投稿では、セッション API チェックポイントを使用して、複数の脱線を管理する方法を学びました。AWS SDK を使用して、セッション API チェックポイントを定義できます。この投稿の会話の ボットスキーマ をダウンロードして、簡単なアプリケーションを実装できます。詳細については、 Amazon Lex のドキュメント をご参照ください。
著者について
Shahab Shekari は、Amazon AI のソフトウェア開発エンジニアです。彼は、スケール自在な分散型システムを担当し、Lex ユーザーのエクスペリエンスを向上させています。仕事以外では、太平洋岸北西部で彼の犬と友人、家族と旅行したり、楽しんだりしています。