2017-05-29 8 views
0

既に存在する他の多くのものと同様に、「トリビアクイズ」スキルを書きたいと思っていますが、実際の回答を " 「a/b/c」または「1/2/3」である。だから、会話は次のようになります:特定のカスタムスロットからの応答を繰り返し実行する

  • アレクサ:どの惑星は太陽に最も近い:水星や金星?
  • ユーザーMercury
  • アレクサ:それは正しいです!あなたは1つのポイントを持っています。どの会社がコルベット、キャデラック、またはシボレーを作っていますか?
  • ユーザーChevrolet
  • アレクサ:そうです!あなたには2つのポイントがあります。ジョージワシントンの間違った歯は何から作られましたか?木材や象牙?

...等...

各質問には回答の独自のセットを持っているので、私は質問ごとに1つのカスタムスロットタイプを作成することが幸せですので、私は["Mercury", "Venus"]LIST_Q1_ANSWERSスロットを持っていると思います["Cadillac", "Chevrolet"]LIST_Q2_ANSWERSスロットです。これはすべて問題ありません。しかし、私は答えがこの特定のカスタムスロットから来るべきであることを自分のスキルに伝える方法を知らない。私はもちろんのは、各質問のための特定のIntentを作成することができますので、私はQ1Intent作成

は、私がダイアログを開始し、私は私のQ1IntentElicit。しかし、これが原因で必要なLIST_Q1_ANSWERSスロットでの充填に私の応答で、うまくいかない、私が「正しい」とは私がElicitに持っていることを意味質問を、尋ねると言わなければなりませんQ2Intent ...それは許可されていません。最初にダイアログを終了してから、新しいダイアログを開始する必要があります。 (だから会話は "どの惑星..." "水星" "正しいですか?次の質問が欲しいですか" "はい" "いい会社です..."

私はここでは複雑すぎるかもしれない。おそらく、私が望む音声インターフェイスをモデル化する簡単な方法があります。私はもちろん、1つの大きなカスタムスロット内のすべての異なる答えを定義することができますし、ただ一つのAnswerIntentを持っていますが、人々はChevrolet惑星の質問に答えることができ、それは愚かです。 (スロットのものだけではなく、質問に対する回答に対処しなければならないことを知っていますが、スロットからの回答を選択するための質問にバイアスをかけたいと思います)。

だから、私はこれをどのようにしなければならないのですか?ダイアログはうまくいかないと思う。

答えて

1

これは非常に合理的な要求であるIMOですが、それでもAlexaでは不可能です。他のbot/AIプラットフォームでは、ユーザーのレスポンスをスキルインテントのサブセット(通常はちょうど1)と一致させるためのコンテキストを指定できます。ここで

は同じポイントで取得します人気のAlexaの機能要求である:

一時的にアプリケーションの状態に基づいて意図/発話を無効にすることを許可する
https://forums.developer.amazon.com/content/idea/40045/allow-temporarily-disabling-intentsutterances-base.html

-1

はい、私はあなたが行うことができると信じて正確に何を欲しいです。私は"Who's On First?" baseball skitのスキルで似たようなことをしました。

ありまたこれを達成するための他の多くの方法は、おそらくですが、私は次のようなアプローチを取った:

  1. は、各ユーザ応答のための意図を作成します。たとえば、上記の例では、「水銀」と「シボレー」がそれぞれ意図していると述べています。
  2. セッションオブジェクトに情報を転送します。データベースは使用できますが、この場合はセッションがうまく動作します。この情報により、インテントハンドラは質問された質問を識別できます。これは、すべての回答が一意である場合には必ずしも必要ではありませんが、複数の質問に同じ回答を付けることができます。たとえば、「水銀」という答えは、「名前をつけた惑星」と「液体金属の名前を付ける」の両方の質問に対する回答かもしれません。
  3. 正解よりも誤解の可能性が高くなる可能性があるため、誤った回答にはスロットを使用するのが理にかなっています。あるいは、不適切なインテントを誤った回答として処理し、セッションで渡された質問IDを使用して、どの質問が誤っているのかを特定することもできます。
  4. レスポンス文字列をプログラムでまとめることができます。答えが正しければ、「修正する、次の質問はあなたのスキルが示す次の質問の始めに」です。

今後の進め方が分かりましたら幸いです。 Alexaでは多くのことが可能です。時にはクリエイティブになる必要があります。

+0

私はあなたをフォローしていません。私はあなたが上で書いたものを受け入れますが、根本的な問題をどのように回避するかはわかりません:あなたはあなたが意図している意図に向かってアレクサを操ることはできません。だから、ユーザーには、Alexaが正しい意図と一致するようなものを返信するか、すべての可能な回答を持つスロットを用意する必要があります。 – Tom

+0

こんにちはトム、 私は意図に向かってアレクサを操縦しようとしていません。私はそれぞれの可能な答えの意図を持っていることを示唆しています。複数の質問に同じ回答がある場合は、セッションで渡されたコンテキスト情報を使用して、どの質問が尋ねられたかを知ることができます。複数の質問から単一のインテントを呼び出すことができます。 –

+1

それは理にかなっていますが、私はそれが質問を完全に誤解していない限り、質問に対する答えだとは思わないのです。 – Tom

関連する問題