0

Google アシスタントを使用してカスタム アクションを作成しようとしています。ユーザーによって定義されたカスタム ユーザー データがあり、ユーザーにこのデータについて質問してもらい、その名前を指定して知りたいデータを特定します。

例: ユーザーが「Fred について教えてください」と言った場合、アシスタントは「Fred is red」と返信します。

[
  {
    "name":"Fred",
    "info":"Fred is red"
  }
]

私が抱えている問題は、ユーザーが存在しない名前を指定したときに使用するトレーニング フレーズまたは再プロンプトを追加する方法です。

元:

ユーザーが「グレッグについて教えてください」と言うと、アシスタントは「「グレッグ」が見つかりませんでした。誰について知りたいですか?

[
  {
    "name":"Fred",
    "info":"Fred is red"
  }
]

「名前」パラメーターのみを含むトレーニング応答を追加しようとしましたが、ユーザーが「フレッドについて教えてください」と言った場合、「名前」パラメーターは「フレッド」ではなく「フレッドについて教えて」に設定されますこれは、私が設定した他のトレーニング応答を無視することを意味します。

私のオビ=ワン・ケノービになれる人はいますか?

編集: この同じプロジェクトに Alexa を使用し、Alexa に elicitSlot ディレクティブを送信しました。同様のものを実装できますか?

4

1 に答える 1

0

この場合、 elicitSlotディレクティブに相当するものはありません (少なくとも、私が通常使用する方法ではありません) が、目的を達成するためのいくつかのツールを提供します。

一般的なアプローチは、返信を送信するときに、返信で出力コンテキストも設定することです。コンテキストのパラメーターとして、保持したい情報を設定できます (要求している値と、既に収集した他の状態など)。

次に、このコンテキストを入力コンテキストとして設定したインテントを持つことができます。コンテキストがアクティブな場合にのみ、インテントが一致します。この Intent は@sys.any、またはこの場合に適切な他のエンティティ タイプに一致する可能性があります。

このアプローチの利点の 1 つは、ユーザーがより会話的に返信したり、今尋ねたプロンプトの質問から返信を遠ざけたりできることです。これにより、ユーザーはコンテキスト内で、または他の目的のために既に設定した他のインテントを通じて回答できます。

于 2019-02-07T01:55:41.313 に答える