Intents with open ended/varialbe slot?


#1

I am trying to setup an intent that has some open ended slots. I’d like the contents of these slots passed through to my action just as they are.

An example is “What is the temperature in the office” where temperature and office are variable. So to keep from having to continually add and change my intent as I add more sensors and more rooms/locations to my setup I’d like those two bits of info just passed verbatim through to the action (that I will be writing and can interpret them as needed)

Another example would be “Add eggs to the shopping list” where eggs and shopping list (or maybe just shopping) would be variable. That way I can have lists that are maintained in a separate system (and be recognized by my action) and not have to adjust the intent every time.

The rest of the intent would though be well defined and recognizable.

I haven’t yet been able to find a way to do this easily. All signs point to having to maintain this information in multiple systems which I’d like to try and avoid.

Thanks.

chris.


#2

Did you had a look at injection ?
Not tested myself yet, but seems interesting as asr recognized only trained and sloted terms.

https://snips.gitbook.io/documentation/advanced-configuration/dynamic-vocabulary


#3

I just noticed that new feature after I had posted this question, and while it looks promising it only partially solves the issue.

I can use it for example to add all the rooms in my house (that I fetch from my home automation system at startup) or types of sensors, but it doesn’t help the issue of adding items to a shopping list.

Those items are going to be VERY free form. They are just going to be added to the list exactly as the ASR engine interprets them.

The same would apply in asking for example for a song to be played.

chris.


#4

Hi @pyjamasam,

What you are asking is something we are looking at, and will be supported over the year. In the meantime, I recommend providing an extensive list of potential items you’d add to your shopping list. You can throw large catalogs at Snips, we’re currently handling use cases with a few dozen thousand values.

You’re mentioning the use case of music. It’s an interesting one. A free text engine won’t do for artist names, for example. Even a large, cloud-based one. Google Speech, for example, is good at understanding names of artists with 100M streams, but if you look at artists with 1M total streams, the accuracy falls by over 40%. If you want a wide support of artist names, and in particular the artists you like, we feel injection is the solution, so you can adapt the engine to your tastes.