Amazon Q in Connectセルフサービスで多言語対応チャットボットを作ってみた

こんにちは!筋肉痛と戦う女、岩間です。

Amazon Connect Advent Calendar 2025 14日目の記事です。

今回は、Q in Connectセルフサービスで多言語対応チャットボットを構築する方法をご紹介します。

 

はじめに

日本語と英語、両方対応できるチャットボットを Q in Connectセルフサービスで実現しようとしたところ、 思わぬ壁にぶつかりました。
本記事では、その解決策を紹介します。

Q in Connectセルフサービスって何?という方はこちら

 

課題:1つのAIエージェントでは多言語対応が難しい?

Q in Connectセルフサービスでは、SELF_SERVICEタイプのAIエージェントに対して1つのプロンプトしか紐付けできないようでした。

そのため、多言語対応を実現するためにまずは1つのプロンプト内で以下のような工夫を試みました。

  • 「ユーザーが日本語で話す場合は日本語で、英語で話す場合は英語で丁寧に回答してください」と指示
  • 日本語と英語それぞれのプロンプトを1つにまとめて記述

 

しかし、英語でチャットしたところプロンプトの手順(TOOLS)を正しく守らず、ナレッジベースの回答も日本語で返ってくるという問題が発生し、どうやら1つのAIエージェントのみを用いて多言語対応のチャットボットを構築することは難しそう、ということがわかりました…

 

1つのAIエージェントが難しいなら、複数エージェント作ればいいのでは!?とも思い、
Amazon Connectのフロー、Connect Assistantブロック等での設定を試みましたが、一見、複数エージェントの設定ができないようにみえます。

解決策:UpdateSession APIでAIエージェントを切り替える

調査を進める中で、UpdateSession APIを発見しました。

各言語毎に対応するAI エージェントを作成したうえで、このAPIを使えばセッション毎に使用するAIエージェントを上書きできます。

つまり1つのフローで複数のAIエージェントが使えます!

 

前提条件

  • Amazon Connect Q in Connectセルフサービスのセットアップ済み
  • 日本語用・英語用のAIエージェントをそれぞれ作成済み

 

実装手順

全体のフロー構成

ポイントとなるのは赤枠で囲っているブロックとその順番です。

 

1. 顧客の入力を取得(言語選択)

ここでは言語選択用のLexボットをセットし、プロンプトを設定しています。
チャット開始時にユーザーに言語の選択を促すためのブロックです。

 

Lexボットの設定は以下の画像の通りです。
Japanese、Englishのインテントを作成し、それぞれのサンプル発話に「日本語」「Japanese」、「英語」「English」を設定しました。

 

2. コンタクト属性の設定(言語保存)

言語選択のLexボットでは、ユーザーの選択に応じて「Japanese」または「English」インテントに振り分けられます。
このインテント名をコンタクト属性 lang に保存しておき、後続の処理で言語判定に使用します。

 

3. コンタクト属性の確認(言語判定)

lang の値が「Japanese」か「English」かで分岐します。

 

4. コンタクト属性の設定(挨拶文保存)

言語ごとに最初の挨拶文を firstMessage に保存します。

日本語

英語

 

5. AIエージェントの作成(Connect assistant)

デフォルトで使用するAIエージェントを設定します。

 

6. Lambda関数の呼び出し

UpdateSession APIを実行するLambdaを呼び出します。

パラメータにQのSessionArnを渡します。

パラメータ
sessionId $.Wisdom.SessionArn

 

7. 顧客の入力を取得(AIエージェント用)

AIエージェント用のLexをセットし、保存していた挨拶文を動的に設定します。

 

注意ポイント

Qのセッション作成ブロックの後に、AIエージェント用のLex(顧客の入力取得)ブロックを配置するようにしましょう。
順番が逆だと以下のエラーが発生します。

 

Lambda実装(CDK)

今回はCDKでLambdaをデプロイしてみました。

Lambda定義

typescript

 

Lambdaコード

 

動作確認

Connectのテストチャット画面で確認してみます。

日本語を選択した場合

 

英語を選択した場合

言語に応じて適切なAIエージェントに切り替わり、それぞれの言語で正しく応答できていることが確認できました。

まとめ

Q in Connectセルフサービスで多言語対応チャットボットを構築する方法をご紹介しました。

  • 1つのAIエージェントで多言語対応は難しい
  • 言語ごとにAIエージェントを作成し、UpdateSession APIで切り替える
  • Lexで言語選択 → Lambda でAIエージェント切り替え → 選択された言語で応答

この方法を応用すれば、2言語以上の多言語対応や、用途別のAIエージェント切り替えなども実現できます。

この記事が参考になれば幸いです!

この記事が気に入ったら
いいね ! しよう

Twitter で

【採用情報】一緒に働く仲間を募集しています

採用情報
ページトップへ