我正在嘗試編寫一個「瑣事測驗」技能,就像其他許多已存在的技巧一樣,但我希望用戶能夠給出實際答案而不是「 a/b/c「或」1/2/3「。所以談話會是這樣的:強制響應來自特定的自定義插槽,重複執行
- 的Alexa:哪個星球是離太陽最近的水星或金星?
- 用戶:
Mercury
- 的Alexa:這是正確的!你有一點。哪家公司生產克爾維特,凱迪拉克或雪佛蘭?
- 用戶:
Chevrolet
- 的Alexa:這是正確的!你有兩點。喬治華盛頓的假牙是由什麼製成的?木頭還是象牙?
...等...
由於每個問題都有自己的一套答案的,我很高興創造每一個問題定製插槽類型,所以我有一個["Mercury", "Venus"]
插槽LIST_Q1_ANSWERS
和["Cadillac", "Chevrolet"]
的LIST_Q2_ANSWERS
插槽,這一切都很好。但是,我不知道如何告訴我的技能,答案應該只來自這個特定的自定義插槽。
我當然可以爲每個問題具體Intent
,所以我創建Q1Intent
,我開始一個對話,我Elicit
我Q1Intent
。然而,這並不奏效,因爲在我響應他們在需要的LIST_Q1_ANSWERS
槽分配,我不得不說,「正確的」,並也問下一個問題,這意味着我必須Elicit
的Q2Intent
......這是不允許的;我必須先結束對話框,然後再開始一個新對話框。 (所以談話會走到「哪個星球......?」「水星」「正確!你想要下一個問題嗎?」「是」「好吧,哪家公司...」,那就不行了)。我可能在這裏過分複雜的事情。也許有一種更簡單的方法來模擬我想要的語音界面。我當然可以在一個大的定製插槽中定義所有不同的答案,然後只有一個單一的AnswerIntent
,但是人們可以回答Chevrolet
來解決行星問題,這很愚蠢。 (我知道我必須處理任何問題的答案,而不僅僅是插槽中的答案,但我想偏向於從插槽中選擇答案的問題;這是插槽的用途。)
那麼,我該怎麼做呢?對話框不起作用,我不這麼認爲。
我沒跟着你。我接受你上面寫的內容,但不確定這個問題是如何解決基本問題的:你不能將alexa指向你期望的目標。所以,你仍然需要讓用戶在他們的迴應前加上一些能夠使Alexa匹配正確意圖的東西,或者擁有一個包含所有可能答案的位置。 – Tom
嗨,湯姆, 我不是建議試圖將Alexa引向意圖。我建議對每個可能的答案都有意向。如果多個問題具有相同的可能答案,則使用會話中傳遞的上下文信息來了解問題提出的問題。一個意圖可以從多個問題中調用。 –
這是有道理的,但我不認爲這是對這個問題的答案 - 除非我完全誤解了這個問題。 – Tom