Announcement: The Alexa Skills Community Is Moving To Stack Overflow

For improved usability and experience, Alexa skills related forum support will be transitioned to Stack Overflow. Effective January 10, 2024, the Amazon Developer Forums will no longer be available. For continued Alexa skills support you can reach out to us on Stack Overflow or via Contact Us.


David Nguyen avatar image
David Nguyen asked

Dynamic entities not working consistently

I'm having an issue implementing dynamic entities in my skill. When I load the dynamic entities in my response, I can see the dynamic entities being loaded in the JSON response object, but it works sometimes but not all the time.

For example, I have an intent called "ResponseIntent" with an utterance of "tell me about {tag}" and that entity is called LIST_OF_TAGS. I load the dynamic entity with a value of "Mount Rainier" (which I can see it being loaded in the JSON response). However, when I say "tell me about Mount Rainier" it sometimes correctly goes to the ResponseIntent with the dynamic entity being matched in the JSON request, but other times, it will go to the AMAZON.FallbackIntent. In fact, I find that it goes to the AMAZON.FallbackIntent more times than it goes to the ResponseIntent.

Also, if I add Mount Rainier as a static entity, it works 100% of the time.

Any help would be appreciated. Thanks.

alexa skills kitdynamic entities
1 comment
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Pan@Amazon avatar image Pan@Amazon commented ·

Can you provide me with your Skill ID? How many values are you using to bias the slot value?

0 Likes 0 ·
Rokas avatar image
Rokas answered

Dynamic entities don't make alexa's understanding perfect. It's just one of the tools, that can help you to improve the recognition. By using dynamic entities you let alexa know, which slot values are expected from the user, so that she would know, which values to bias, when trying to match user speech with the value. Even at the docs it says, that alexa will bias the value from dynamic entities, rather than totally rely on it. For the best possible result, I would add that value you mentioned to the static slot values and when you expect user to say it, emit it in the dynamic entities, this way you'll be using full potential of dynamic entities.

10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

D. Young avatar image D. Young commented ·

Apologies for being blunt, but of course they don't make Alexa's understanding perfect. There are plenty of times where static slots don't work perfectly either. But dynamic slot values need to work as well as static ones and that does not seem to be the case. Our testing confirms what is shared above - recognition of dynamic entities doesn't work to a level at which it makes sense to use them.

If you give the user a menu of options based on dynamic entities, and when they say one of them the user gets a 'sorry, I don't know about that' sort of answer, it defeats the purpose.

Your suggestion, while appreciated, doesn't apply because the the whole reason for dynamic entities is to handle situations where you don't know the slot values to include at model build time.

1 Like 1 ·
Quang N avatar image Quang N commented ·

Hi Rokas,

I'm having the exact same issue as D. Young.

I asked about the ability to add custom slot values, hopefully dynamically as the data is specific for each client link below.

With the slot type being used to look up client names. Most clients do not have common English names. When adding their names to the custom slot type and speaking to Alexa it resolves 99% correct.

However with this there is a problem since to load all client names would blow the 1.5MB JSON interaction model file limit for sure.

I've tried the recent release of (Dynamic Slot Values) - March 2019. I'm having the same issue, where if I load the names and use it within the session. When speaking to Alexa the chance of it resolving to the correct name is pretty close to 0%.

Is there something we are doing wrong or does dynamic slot value not support this sort of stuff where it learns the words? Any advice is appreciated.

Thank you.


0 Likes 0 ·
Rokas avatar image Rokas Quang N commented ·

I don't know, maybe you have seen this one, but amazon recently added a blog post explaining, the best ways to handle dynamic entities. I think it could help you to shed some light. Blog post link: here.

1 Like 1 ·
Quang N avatar image Quang N Rokas commented ·

Hi Rokas,

* 2 comments since it exceeded character limit

Thread 1:

No I haven't seen that article, thanks for the link I've just read it.

In the blog example I noticed values used for the dynamic entity slot values were fairly common English words. It would definitely have no trouble interpreting that.

The test I've done here actually is very similar to the blog. Where I've attempted to load enough variations to my static language model slot type with examples of client names or surnames, enough for it to recognize the slot during interaction.

Obviously if I say any unique names that is in the static slot definition for example; "Arriba", "Cabrido" or "Garske". Alexa picks it up and translates it fine. I'm guessing during build it feeds those to some NLP engine and learns those.

However when I load the dynamic entities with unique client names during runtime with a value like "Aitken". When speaking to Alexa, it does not pick it up at all. Most of the time it's unable to resolve the slot and interprets the voice input as;

"I can" or "18" or "echo".

I've run this similar test when building the word "Aitken" directly into the static language model in the slot type and it picks up the word correctly 100% of the time. I even got a guy with an accent to speak and it picked it up.

Obviously I can't load all the names on the static language model since there's a JSON file limit. Also it wouldn't be feasible since there might be thousands of variations depending on our client data.

(Oh also seems dynamic slot types have a limit of 100 slot values, most of our client record exceeds this. So maybe it wasn't feasible solution for us to use in the first place). I can guess why the limit was placed, it could reduce interaction speed? As you may not want to pump thousands of records in for interaction request/responses).

1 Like 1 ·
Show more comments
Quang N avatar image
Quang N answered

Hey Guys,

I've posted a feature request (link below). Please vote to help it get implemented. Cheers.

10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.