Reputation: 23
I am trying to create a Google Action for Rocket Chat and username and channelname are important parameters to complete an intent. However when I try saying other than the listed entity values, Assistant does not recognise it.
I am using Dialogflow V2 for development and I have already added around to 30-40 entity values and training phrases but only ones that are listed in entity slot values list gets recognised while trying other ones just give a blank value in response. I have attached some photos of my intents and entities along with response for both listed and unlisted value below.
I tried using required setting in parameters with setting prompts if a value is not passed but it simply reprompts 3-4 times and then the assistant crashes.
Upvotes: 0
Views: 411
Reputation: 570
You may consider to use composite entities. You can create new entity which contains channelname entity and sys.any entity. For example, you can create an entity named "CreateChannel" and insert these entities create @sys.any:anyChannelName
and create @Channelname:Channelname
as value.(Don't forget to disabled "Define synonyms" button) Then you can use this entity as training phrase.
Now, you can get any value as parameter whether it is "channelname" entity or not and can be sure that user wants to create a channel.
For more information:
Upvotes: 0
Reputation: 11970
An entity type is intentionally a fixed enum. If you never created defined 'actions developers' as a channel name type, it is not going to be processed as an entity.
If you want to handle any channel name, you should replace your entity with the type @sys.any. This will allow you to capture any value and process it.
When using this, be prepared to do a lot of testing and create a lot of training phrases in order to ensure that you only capture the text that you want to capture and nothing surrounding it.
Upvotes: 1