Vì vậy, bạn muốn kết nối tất cả các đầu vào rác với một mục đích duy nhất. Bạn may mắn. Dưới đây là một số điều bạn nên biết trước khi tiếp tục.
Trong Node.js, trình xử lý không được xử lý được kích hoạt trong một MODE
nếu ý định trả về bởi dịch vụ thoại Alexa không có sẵn trong số MODE
.
Ví dụ MODE
sẽ là chế độ xác nhận. Trong số nhiều ý định có sẵn có và không có những ý định duy nhất được chấp nhận.
var ConfirmationHandlers = Alexa.CreateStateHandler(states.CONFIRMATIONMODE, {
'YesIntent': function() {
this.handler.state = states.CLOSINGCOSTSMODE;
message = ` So you will be buying this house. Great! `;
reprompt = `Please carry on with the other intents found in the house buyer skill. `;
this.emit(':ask', message, reprompt);
},
'NoIntent': function() {
this.handler.state = states.GENERALSEARCHMODE;
message = ` So you won't be buying this house. That's Ok, Continue searching for your dream house in the House buyer skill. !`;
reprompt = `Continue searching for your dream house in the House buyer skill.`;
this.emit(':ask', message, reprompt);
},
'Unhandled': function() {
console.log("UNHANDLED");
var reprompt = ` All other intents are disabled at this moment. Would you like to buy this house Yes or No? `;
this.emit(':ask', reprompt, reprompt);
}
});
Tuy nhiên, trước khi đến hàm lambda Dịch vụ thoại Alexa phải diễn giải lời nói của bạn và ánh xạ nó đến một trong các ý định có sẵn. Nếu lời nói của bạn là rác và không lập bản đồ cho bất kỳ mục đích cụ thể nào thì hiện tại nó đang được ánh xạ tới mục đích đầu tiên.
Giải pháp: Nếu bạn muốn thêm mục đích rác, đây là thứ cần được xử lý bởi lược đồ ý định chứ không phải do mục đích không được giải quyết. Để thêm mục đích dọn rác, bạn có thể làm theo hướng dẫn trong bài viết amazon này.
https://developer.amazon.com/blogs/post/Tx3IHSFQSUF3RQP/Why-a-Custom-Slot-is-the-Literal-Solution
Kịch bản 3: Tôi chỉ muốn tất cả mọi thứ. Sử dụng các loại vị trí tùy chỉnh cho ngữ pháp như được mô tả ở trên thường đáp ứng được mong muốn này và cho phép bạn cải thiện độ chính xác thông qua đào tạo NLP.Nếu bạn vẫn chỉ muốn mọi thứ, bạn có thể tạo một khe tùy chỉnh được gọi là một cái gì đó như "CatchAll" và mục đích và lời nói tương ứng: CatchAllIntent {CatchAll}. Nếu bạn sử dụng cùng một dữ liệu đào tạo mà bạn đã sử dụng cho LITERAL, bạn sẽ nhận được kết quả tương tự. Mọi người thường thấy rằng thêm dữ liệu huấn luyện cụ thể về kịch bản ít hơn cải thiện độ chính xác .
Nếu bạn vẫn chưa nhận được kết quả, cố gắng thiết lập các catchall giá trị khoảng hai mươi 2-8 từ cụm từ ngẫu nhiên (từ một từ ngẫu nhiên máy phát điện - được thực sự ngẫu nhiên). Khi người dùng nói điều gì đó mà khớp với những lời nói khác của bạn, những ý định đó vẫn sẽ được gửi đi. Khi nó không khớp với bất kỳ thứ gì, nó sẽ rơi vào khe CatchAll. Nếu bạn đi tuyến đường này, bạn sẽ mất độ chính xác bởi vì bạn không phải là tận dụng tối đa NLP của Alexa, do đó bạn sẽ cần thử nghiệm nhiều.
Bất kỳ đầu vào không được ánh xạ tới một trong những ý đồ cụ thể hơn của bạn, giống như YES
hoặc NO
, bản đồ sẽ rất có khả năng CatchAll
mục đích này.
Tôi không thể trả lời câu hỏi, nhưng tôi đã gặp sự khác biệt tương tự khi sử dụng giao diện người dùng thử nghiệm so với thiết bị thực tế. +1 để đặt câu hỏi. Tôi sẽ chỉ đạo bạn hướng tới diễn đàn Alexa Skills Kit Dev, nhưng có vẻ như bạn đã đăng câu hỏi ở đó. :-) – TimHayes
Tôi đang nghĩ đây là một tạo phẩm của giao diện thử nghiệm. Bạn đã thử kiểm tra điều này trên thiết bị của mình chưa? –
@ John bạn đã tìm ra giải pháp cho điều này chưa? – Dhawal