Dialogbotでの人間の音声を理解するチャットボット

Dialogflowサービスでの私の経験を共有し、あまり明らかでないことについて話をしたいと思います。

画像

Dialogflowは、さまざまなプラットフォーム言語のチャットボットをさまざまなデバイスで作成できるサービスです



このサービスは完全に無料で使用できますので、時間を無駄にせず仕事を始められます。



この記事では、ストア内のユーザーから注文を受け取る簡単なボットの作成方法を説明します。



ステップ0。タスク



ボットは、名前、都市、住所の3つのパラメーターで構成されるユーザーからの要求を受け入れる必要があります。 同時に、ユーザーがこれらのパラメーターのいずれかを以前に言及した場合-コンテキスト内でそれを覚えておいてください。



ステップ1.初期セットアップ



まず、新しいエージェントを登録して作成する必要があります。









エージェントを作成した後、「統合」タブに移動して、必要なプラットフォームを接続します。







この段階では、ボットはすでに実行されており、ユーザーと通信できます。 次に、フレーズを正しく理解するように彼に教える必要があります。



ステップ2.予定を作成する



宛先は、ユーザーからの特定のリクエストのハンドラーです。

[インテント]タブに移動します。 エージェントを作成すると、次の2つの標準宛先が作成されます。



  1. デフォルトのウェルカムインテント -ユーザーへの挨拶を開始(ウェルカム応答を送信)
  2. デフォルトのフォールバックインテント -他の宛先がどれも適切でない場合に起動されます。 ユーザーが理解できないというメッセージを送信します(「この最後のフレーズは私には明確ではありません」、「自分の考えを異なるように表現してみてください」など)。


さらに、以下を実装します。ユーザーがボットに挨拶するとき、彼は将来これを使用するために彼の名前と住所を尋ねます。



ユーザーの質問を挨拶に追加する



「デフォルトのウェルカムインテント」を開きます。 ここにはいくつかのセクションがあります。





「イベント」セクションに注意してください。1つのサービスイベント「WELCOME」がここに示されています。

割り当ては、ユーザーテキストへの反応として、またはイベントによって、2つの方法で起動できます。



この場合、「デフォルトのウェルカムインテント」の予約は、ユーザーからのテキストではなく、WELCOMEサービスイベントに応答します。 たとえば、Telegramの場合、これは/ startコマンドでボットを開始しています。 イベントの詳細



したがって、「応答」セクションを検討してください。 以下は、ユーザーへの応答として送信されるメッセージです。 各メッセージは複数の行で構成できます。 各行は個別のメッセージです。 これらのオプションのいずれかが回答に選択されます。 そして、それらが多いほど、ボットが繰り返される頻度は少なくなります。



ここに自分自身について話すように求めるメッセージを追加します。







応答



次に、後続のメッセージに応答する割り当てを作成します。

[インテント]タブで、カーソルを[デフォルトのウェルカムインテント]に移動し、[フォローアップインテントを追加]をクリックします。 ドロップダウンリストでは、いくつかの事前定義されたオプションが提供されます。 彼らは私たちに興味がない-私たちは「カスタム」を選択します



「ユーザーの声」セクションに進み、ユーザーからのメッセージオプションを追加します。



次に、これらのメッセージに必要なデータを示す必要があります。 これを行うには、テキストを選択し、ドロップダウンメニューでデータタイプを選択します。 Dialogflowには、特に名前と住所用の事前定義されたタイプがいくつかあります。 ただし、独自に作成できます。 詳細



「アクション」セクションに注意してください。 この宛先が収集するすべてのパラメーターは次のとおりです。 テキストメッセージにマークを付けたパラメーターは自動的にインポートされました。





必須パラメーターとしてユーザー名を示します。 パラメーター名を「given-name」から「name」に変更して、利便性を高めます。 そして、「プロンプト」の列に、「あなたの名前は何ですか?」という質問を示します。 現在、「名前」は必須パラメーターであるため、メッセージにこのパラメーターがない場合、「プロンプト」の質問の1つがユーザーに送信され、名前が取得されます。



最後に、Responseセクションでユーザーに応答を追加します。







コンテキストを操作する



各宛先はインバウンドコンテキストで動作し、 アウトバウンドコンテキスト作成できます。



宛先にインバウンドコンテキストがある場合、そのコンテキストが存在する場合にのみ宛先がトリガーされます。 宛先にアウトバウンドコンテキストがある場合、宛先が作成され、収集されたすべてのデータがそこに書き込まれます。



順番に考えてみましょう:



デフォルトのウェルカムインテント -受信コンテキストはありません。 したがって、割り当てはすべての要求に対して開始できます。 割り当てにより、新しい空のコンテキスト「DefaultWelcomeIntent-followup」が作成されます(自動的に追加されます)。



デフォルトのウェルカムインテント-カスタム -受信コンテキスト「DefaultWelcomeIntent-followup」があります(自動的に追加されます)。 この割り当ては、このコンテキストが存在する場合(ユーザーが迎えられた場合)にのみトリガーできます。 発信コンテキストはまだありません。



「デフォルトのウェルカムインテント-カスタム」の発信コンテキストを「UserData」という名前で追加します。 これで、ユーザーが挨拶の後に自己紹介をすると、ユーザーに関する情報が新しい「UserData」コンテキストに記録されます。



ユーザー注文



発信「UserData」コンテキストで新しい「Order」割り当てを作成します。 この割り当てはいつでも開始でき、「UserData」のコンテキストを変更できます。

注文テキストには、名前、市区町村、住所が必要です。



フレーズを追加してマークアップします。 すべてのパラメーターを複製しますが、今回はすべてを必須としてマークします。







既知のデータを使用する



私たちの目的は、「UserData」コンテキストがない場合と存在する場合の両方で機能します。 最初のケースでは、ボットはユーザーにすべての欠落データを尋ねます。 そして第二に、彼はすでに知られているものを使用する必要があります。



これを行うには:





これで、ユーザーが以前に自己紹介した場合(名前がUserDataコンテキストに格納されている場合)、注文時に名前が自動的に置き換えられます。 そうでない場合、ボットはユーザーに名前を尋ねます。



注文確認を含む応答を追加します。 答えでは、パラメーターを使用できます。 詳細







作業結果



ボットの結果は、以下のスクリーンショットに示されています。 Telegramで彼とチャットできます@sample_ShopBotまたはWeb Demo







しばらくすると、コンテキストがリセットされます。 最初の連絡後、ボットは名前と配送先住所を尋ねます。 そしてコンテキストを再度設定します。







おわりに



したがって、Dialogflowはユーザーに関する情報のコレクション、注文を受け取り、完成した結果のみをサービスに送信します。 サーバーへのWebHookの送信を構成しサーバーが応答して配信を実装します。 詳細



参照資料



Webデモ

チャットボット

ドキュメント



All Articles