質問: 初めて質問させていただきます。 私は、Dialogflowで多言語対応のチャットボットを作ろうとしています。 * 使用するシステム:Dialogflow(1つのエージェント内で多言語対応しているため) * つなげたいアプリ:1FacebookMessenger 2LINE (LINEは未テスト) 先日、Dialogflowのエージェント内で英語を追加(デフォルト言語は日本語)し、2言語対応と設定してから、Facebook Messengerとつなげてみました。 結果は以下の通りです。 1. チャットボットは正常に動作した。 2. 日本語での質問にのみ反応し、英語で質問すると反応しない。 どうも、デフォルト言語のみの対応となってしまうようです。 何とかDialogflowで、日本語でも英語でも対応できるチャットボットを作成したいと考えています。 何か手掛かりになるようなアドバイスをお持ちであれば、ご教示いただけないでしょうか。 よろしくお願いいたします。
回答: Facebook Messengerにおいても、LINE Messaging APIにおいても、Webhook時に送信されるJSONの内容には、言語に関する情報は掲載されていません。 * * そのため、Dialogflow側では言語の判断はできずに、仕方なくデフォルトの言語が採用されている、という挙動かと思います。FacebookやLINEから言語情報が送信されない以上、Dialogflow以前に、多言語対応を行うことは難しいかと思います。 [追記: 2018/02/08] DialogflowのIntegrationsを使ってFacebook MessengerやLINEと統合してしまうとブラックボックスになって手が出せないので、例えばFacebook MessengerやLINEからのWebhookを一旦自作のプログラムで受け取り、内容を解析して話し相手が英語なのか日本語なのかを判断して、自作プログラムからDialogflowの`/query`APIを使って`lang`を明示的に指定してリクエストを送信し結果を得る、というやり方ができると思います。