既に存在する他の多くのものと同様に、「トリビアクイズ」スキルを書きたいと思っていますが、実際の回答を " 「a/b/c」または「1/2/3」である。だから、会話は次のようになります:特定のカスタムスロットからの応答を繰り返し実行する
- アレクサ:どの惑星は太陽に最も近い:水星や金星?
- ユーザー:
Mercury
- アレクサ:それは正しいです!あなたは1つのポイントを持っています。どの会社がコルベット、キャデラック、またはシボレーを作っていますか?
- ユーザー:
Chevrolet
- アレクサ:そうです!あなたには2つのポイントがあります。ジョージワシントンの間違った歯は何から作られましたか?木材や象牙?
...等...
各質問には回答の独自のセットを持っているので、私は質問ごとに1つのカスタムスロットタイプを作成することが幸せですので、私は["Mercury", "Venus"]
のLIST_Q1_ANSWERS
スロットを持っていると思います["Cadillac", "Chevrolet"]
のLIST_Q2_ANSWERS
スロットです。これはすべて問題ありません。しかし、私は答えがこの特定のカスタムスロットから来るべきであることを自分のスキルに伝える方法を知らない。私はもちろんのは、各質問のための特定のIntent
を作成することができますので、私はQ1Intent
作成
は、私がダイアログを開始し、私は私のQ1Intent
をElicit
。しかし、これが原因で必要なLIST_Q1_ANSWERS
スロットでの充填に私の応答で、うまくいかない、私が「正しい」ともは私がElicit
に持っていることを意味次質問を、尋ねると言わなければなりませんQ2Intent
...それは許可されていません。最初にダイアログを終了してから、新しいダイアログを開始する必要があります。 (だから会話は "どの惑星..." "水星" "正しいですか?次の質問が欲しいですか" "はい" "いい会社です..."
私はここでは複雑すぎるかもしれない。おそらく、私が望む音声インターフェイスをモデル化する簡単な方法があります。私はもちろん、1つの大きなカスタムスロット内のすべての異なる答えを定義することができますし、ただ一つのAnswerIntent
を持っていますが、人々はChevrolet
惑星の質問に答えることができ、それは愚かです。 (スロットのものだけではなく、質問に対する回答に対処しなければならないことを知っていますが、スロットからの回答を選択するための質問にバイアスをかけたいと思います)。
だから、私はこれをどのようにしなければならないのですか?ダイアログはうまくいかないと思う。
私はあなたをフォローしていません。私はあなたが上で書いたものを受け入れますが、根本的な問題をどのように回避するかはわかりません:あなたはあなたが意図している意図に向かってアレクサを操ることはできません。だから、ユーザーには、Alexaが正しい意図と一致するようなものを返信するか、すべての可能な回答を持つスロットを用意する必要があります。 – Tom
こんにちはトム、 私は意図に向かってアレクサを操縦しようとしていません。私はそれぞれの可能な答えの意図を持っていることを示唆しています。複数の質問に同じ回答がある場合は、セッションで渡されたコンテキスト情報を使用して、どの質問が尋ねられたかを知ることができます。複数の質問から単一のインテントを呼び出すことができます。 –
それは理にかなっていますが、私はそれが質問を完全に誤解していない限り、質問に対する答えだとは思わないのです。 – Tom