ゼファーネットのロゴ

生成 AI 機能で Amazon Connect と Lex を強化 |アマゾン ウェブ サービス

日付:

効果的なセルフサービス オプションはコンタクト センターにとってますます重要になっていますが、それらを適切に実装するには特有の課題が生じます。

Amazon Lex あなたの アマゾンコネクト 音声およびテキスト チャネルを介した自動音声認識 (ASR) や自然言語理解 (NLU) 機能などのチャットボット機能を備えたコンタクト センター。ボットは自然言語音声またはテキスト入力を受け取り、入力の背後にある意図を認識し、適切な応答を呼び出すことでユーザーの意図を満たします。

発信者のアクセント、発音、文法は多様です。これに背景ノイズが加わると、音声認識でステートメントを正確に理解することが困難になる可能性があります。たとえば、「注文を追跡したい」は「所有者を追跡したい」と誤って認識される可能性があります。このような意図の失敗により、同じことを繰り返したり、間違ってルーティングされたり、常駐のエージェントにエスカレーションされたりする顧客はイライラし、企業のコストが増加します。

アマゾンの岩盤 開発者が最新のコンタクト センター向けの生成 AI ベースのアプリケーションを簡単に構築および拡張できるように、基本モデル (FM) へのアクセスを民主化します。 Amazon Bedrock によって配信される FM など アマゾンタイタン & アントロピック・クロードは、インターネット規模のデータセットで事前トレーニングされており、文の分類、質問と回答、音声認識エラーにもかかわらず意味理解の強化などの強力な NLU 機能を提供します。

この投稿では、Amazon Bedrock によって提供される FM を使用して、Amazon Connect と統合された Amazon Lex のインテント認識を強化し、最終的に顧客に向上したセルフサービスエクスペリエンスを提供するソリューションを検討します。

ソリューションの概要

ソリューションは使用します アマゾンコネクト, Amazon Lex , AWSラムダ, アマゾンの岩盤 次の手順で:

  1. Amazon Connect の問い合わせフローは、 GetCustomerInput ブロック。
  2. ボットが呼び出し元のインテントを認識できず、デフォルトでフォールバック インテントになると、Lambda 関数がトリガーされます。
  3. Lambda 関数は顧客の発話のトランスクリプトを取得し、それを Amazon Bedrock の基盤モデルに渡します。
  4. モデルは高度な自然言語機能を使用して、発信者の意図を判断します。
  5. 次に、Lambda 関数は、フルフィルメントのために呼び出しを正しいインテントにルーティングするようにボットに指示します。

このソリューションでは、Amazon Bedrock 基盤モデルを使用することで、音声認識エラーがあっても Amazon Lex ボットが意図を理解できるようになります。これにより、スムーズなルーティングとフルフィルメントが実現し、エージェントへのエスカレーションや発信者のいらだちの繰り返しを防ぎます。

次の図は、ソリューションのアーキテクチャとワークフローを示しています。

次のセクションでは、ソリューションの主要なコンポーネントについて詳しく説明します。

Lambda 関数と LangChain フレームワーク

Amazon Lex ボットが Lambda 関数を呼び出すと、ボット情報と呼び出し元の発話の転写を含むイベントメッセージが送信されます。このイベント メッセージを使用して、Lambda 関数はボットの設定されたインテント、インテントの説明、インテントの発話を動的に取得し、次を使用してプロンプトを構築します。 ラングチェーンは、開発者が大規模言語モデル (LLM)、データ ソース、アプリケーションを統合できるようにするオープン ソースの機械学習 (ML) フレームワークです。

その後、プロンプトを使用して Amazon Bedrock 基盤モデルが呼び出され、予測された意図と信頼レベルを含む応答が受信されます。信頼レベルが設定されたしきい値 (たとえば 80%) より大きい場合、関数は特定されたインテントを次のアクションとともに Amazon Lex に返します。 委任する。信頼レベルがしきい値を下回る場合、デフォルトに戻ります。 FallbackIntent そしてそれを閉じるアクション。

コンテキスト内学習、プロンプトエンジニアリング、モデル呼び出し

このタスクを達成するために基礎モデルを使用できるようにするために、コンテキスト内学習を使用します。インコンテキスト学習とは、LLM が特定のタスク用に事前トレーニングや微調整を行わずに、プロンプトに含まれる内容だけを使用してタスクを学習できる機能です。

プロンプトでは、まず何をする必要があるかを詳しく説明します。次に、Lambda 関数は、Amazon Lex ボットの設定されたインテント、インテントの説明、インテントの発話を動的に取得してプロンプトに挿入します。最後に、思考と最終結果を出力する方法についての指示を提供します。

次のプロンプト テンプレートは、テキスト生成モデル Anthropic Claude Instant v1.2 および Anthropic Claude v2 でテストされました。モデルのパフォーマンスを向上させるために XML タグを使用します。また、適切な意図を選択する推論を改善するために、最終的な意図を特定する前にモデルが考える余地を追加します。の {intent_block} インテント ID、インテントの説明、インテントの発話が含まれます。の {input} ブロックには、発信者からの音声の文字起こしが含まれます。モデルがコード ブロックをより一貫して出力できるように、最後に 3 つのバックティック ("`) が追加されています。あ <STOP> それ以上生成されないようにシーケンスが追加されます。

"""
Human: You are a call center agent. You try to understand the intent given an utterance from the caller.

The available intents are as follows, the intent of the caller is highly likely to be one of these.
<intents>
{intents_block} </intents>
The output format is:
<thinking>
</thinking>

<output>
{{
     "intent_id": intent_id,
     "confidence": confidence
}}
</output><STOP>

For the given utterance, you try to categorize the intent of the caller to be one of the intents in <intents></intents> tags.
If it does not match any intents or the utterance is blank, respond with FALLBCKINT and confidence of 1.0.
Respond with the intent name and confidence between 0.0 and 1.0.
Put your thinking in <thinking></thinking> tags before deciding on the intent.

Utterance: {input}

Assistant: ```"""

モデルが呼び出されると、基礎モデルから次の応答を受け取ります。

<thinking>
The given utterance is asking for checking where their shipment is. It matches the intent order status.
</thinking>

{
    "intent": "ORDERSTATUSID",
    "confidence": 1.0
}
```

コンタクトフローセッション属性に基づいて利用可能なインテントをフィルタリングする

Amazon Connect の問い合わせフローの一部としてソリューションを使用する場合、セッション属性を指定することで、正しい意図を識別する LLM の機能をさらに強化できます。 available_intents セクションに 「顧客の意見を聞く」 次のスクリーンショットに示すように、インテントのカンマ区切りリストを使用してブロックします。そうすることで、Lambda 関数には、これらの指定されたインテントのみが LLM へのプロンプトの一部として含まれるようになり、LLM が推論する必要があるインテントの数が減ります。もし available_intents session 属性が指定されていない場合、Amazon Lex ボットのすべてのインテントがデフォルトで使用されます。

Amazon Lex への Lambda 関数の応答

LLM が意図を決定した後、Lambda 関数は次のように応答します。 特定のフォーマット Amazon Lex が応答を処理するために必要とします。

一致するインテントが信頼度のしきい値を超えて見つかった場合は、ダイアログ アクション タイプを返します。 Delegate 選択したインテントを使用し、その後完成したインテントを Amazon Connect に返すように Amazon Lex に指示します。応答出力は次のとおりです。

{
    "sessionState": {
        "dialogAction": {
        "type": "Delegate"
        },
        "intent": {
        "name": intent,
        "state": "InProgress",
        }
    }
}

信頼レベルがしきい値を下回るか、意図が認識されなかった場合、ダイアログ アクション タイプ 閉じる Amazon Lex に、を閉じるように指示するために返されます。 FallbackIntent、制御を Amazon Connect に戻します。応答出力は次のとおりです。

{
    "sessionState": {
        "dialogAction": {
        "type": "Close"
        },
        "intent": {
        "name": intent,
        "state": "Fulfilled",
        }
    }
}

このサンプルの完全なソース コードは、次の場所で入手できます。 GitHubの.

前提条件

開始する前に、次の前提条件があることを確認してください。

ソリューションを実装する

ソリューションを実装するには、次の手順を実行します。

  1. リポジトリをクローンする
    git clone https://github.com/aws-samples/amazon-connect-with-amazon-lex-genai-capabilities
    cd amazon-connect-with-amazon-lex-genai-capabilities

  2. 次のコマンドを実行して環境を初期化し、 Amazon エラスティック コンテナ レジストリ Lambda 関数のイメージの (Amazon ECR) リポジトリ。作成する AWS リージョンと ECR リポジトリ名を指定します。
    bash ./scripts/build.sh region-name repository-name

  3. 更新する ParameterValue のフィールド scripts/parameters.json ファイル:
    • ParameterKey ("AmazonECRImageUri") – 前の手順で取得したリポジトリ URL を入力します。
    • ParameterKey ("AmazonConnectName") – 一意の名前を入力します。
    • ParameterKey ("AmazonLexBotName") – 一意の名前を入力します。
    • ParameterKey ("AmazonLexBotAliasName") – デフォルトは「prodversion」です。必要に応じて変更できます。
    • ParameterKey ("LoggingLevel") – デフォルトは「情報」です。必要に応じて変更できます。有効な値は DEBUG、WARN、ERROR です。
    • ParameterKey ("ModelID") – デフォルトは「anthropic.claude-instant-v1」です。別のモデルを使用する必要がある場合は、変更できます。
    • ParameterKey ("AmazonConnectName") – デフォルトは「0.75」です。信頼スコアを更新する必要がある場合は、変更できます。
  4. コマンドを実行して CloudFormation スタックを生成し、リソースをデプロイします。
    bash ./scripts/deploy.sh region cfn-stack-name

Amazon Connect で問い合わせフローを最初から構築したくない場合は、このリポジトリで提供されるサンプル フローをインポートできます。 filelocation: /contactflowsample/samplecontactflow.json.

  1. あなたにログインする AmazonConnectインスタンス。アカウントには、フローの編集権限を含むセキュリティ プロファイルを割り当てる必要があります。
  2. Amazon Connect コンソールのナビゲーションペインの ルーティング、選択する 問い合わせフロー.
  3. インポートしているフローと同じタイプの新しいフローを作成します。
  4. 選択する 保存とインポートの流れ.
  5. インポートするファイルを選択して選択します インポート.

フローが既存のフローにインポートされると、既存のフローの名前も更新されます。

  1. 解決済みまたは未解決の参照を確認し、必要に応じて更新します。
  2. インポートしたフローを保存するには、 Save。公開するには、選択します 保存して公開.
  3. 問い合わせフローをアップロードした後、次の構成を更新します。
    • 更新する GetCustomerInput 正しい Amazon Lex ボット名とバージョンのブロック。
    • [電話番号の管理] で、以前にインポートした問い合わせフローまたは IVR で番号を更新します。

構成を確認する

CloudFormation スタックで作成された Lambda 関数に、Amazon Lex からボットとインテント情報を取得する権限 (リストおよび読み取り権限) および適切な Amazon Bedrock 権限 (リストおよび読み取り権限) を持つ IAM ロールがあることを確認します。

Amazon Lex ボットで、設定されたエイリアスと言語について、Lambda 関数が正しく設定されていることを確認します。のために FallBackIntent、 確認して Fulfillmentis に設定 Active いつでも関数を実行できるようにする FallBackIntent トリガーされます。

この時点で、Amazon Lex ボットは自動的に Lambda 関数を実行し、ソリューションはシームレスに機能するはずです。

ソリューションをテストする

Amazon Lex のサンプルの意図、説明、発話設定を見て、タイプミス、文法の間違い、さらには別の言語を含むサンプル入力で LLM がどの程度うまく機能するかを見てみましょう。

次の図は、この例のスクリーンショットを示しています。左側には、インテント名、その説明、および 1 単語のサンプル発話が表示されます。 Amazon Lex で多くの設定を行わなくても、LLM は正しい意図を予測できます (右側)。このテストでは、正しいインテントからの単純なフルフィルメント メッセージが得られます。

クリーンアップ

リソースをクリーンアップするには、次のコマンドを実行して ECR リポジトリと CloudFormation スタックを削除します。

bash ./scripts/cleanup.sh region repository-name cfn-stack-name

まとめ

Amazon Bedrock によって提供される LLM で強化された Amazon Lex を使用することで、ボットの意図認識パフォーマンスを向上させることができます。これにより、多様な顧客にシームレスなセルフサービス エクスペリエンスが提供され、アクセントと独特の音声特性の間のギャップが埋められ、最終的に顧客満足度が向上します。

生成 AI についてさらに詳しく知りたい場合は、次の追加リソースを確認してください。

生成型 AI を活用したセルフサービス ソリューションを実験する方法の詳細については、次を参照してください。 Amazon Kendra および大規模言語モデルを備えた Amazon Lex を利用した QnABot on AWS ソリューションを使用して、セルフサービスの質問応答をデプロイします。.


著者について

ハムザ・ナディーム は、トロントを拠点とする AWS の Amazon Connect スペシャリスト ソリューション アーキテクトです。彼はカナダ全土の顧客と協力してコンタクト センターを最新化し、顧客エンゲージメント特有の課題やビジネス要件に対するソリューションを提供しています。余暇には、ハムザは旅行、サッカー、そして妻と一緒に新しいレシピに挑戦することを楽しんでいます。

パラグ・スリバスタヴァ アマゾン ウェブ サービス (AWS) のソリューション アーキテクトとして、企業顧客のクラウド導入と移行の成功を支援しています。専門的なキャリアの中で、彼は複雑なデジタル変革プロジェクトに幅広く携わってきました。彼はまた、住所の地理空間的側面を中心とした革新的なソリューションの構築にも熱心に取り組んでいます。

ロス、ああ カナダのトロントを拠点とする AWS のソリューションアーキテクトです。彼は、実際のビジネス成果につながる AI/ML および生成 AI ソリューションを使用して顧客のイノベーションを支援します。彼は、小売、金融サービス、テクノロジー、製薬などのさまざまな顧客と仕事をしてきました。余暇には、アウトドアを楽しんだり、家族と一緒に自然を楽しんだりすることが大好きです。

サンギータ・カマトカル アマゾン ウェブ サービス (AWS) のソリューション アーキテクトとして、お客様のクラウド導入と移行の成功を支援しています。彼女は顧客と協力して、顧客のビジネス上の問題に対処する、拡張性、柔軟性、回復力の高いクラウド アーキテクチャを構築しています。余暇には、音楽を聴いたり、映画を見たり、夏にはガーデニングを楽しんだりしています。

スポット画像

最新のインテリジェンス

スポット画像