Customize slot values of amazon alexa skill intent per session or user - echo

I'm developing amazon alexa skill and I would like to customize values of Custom Slot Type for each user of my skill. I can't fill the list of values of my slot with all possible values because it will be too big and the quality of speach recognition will be very low. How can I specify the list of possible values for slot on per user/session basis?

Currently you can't. Although it does seem like some built in skills have the ability to do this such as music, so it would seem that it is technically possible using the platform, just not available to third party developers yet.

Related

Making callouts to webhooks from action skills

I am currently making a Watson Assistant in which I need to store data collected in a database. I am trying to do this by calling an endpoint I have created that will insert data into my database, however I do not know how I can use webhooks in my action skills.
The documentation has an overview of where and how webhooks are supported by Watson Assistant. Action skills only offer pre / post message hooks. When you compare an Action skill with a Dialog skill, Action skills are simpler to get started with, but Dialog skills offer all the features. What you are looking for is available for dialog nodes in Dialog skills.
Actions Skill is still quite new compared to Dialog Skill, and we have a lot of really exciting plans for Actions that will be coming out over time. The ability to call out to external systems is being totally revamped, at least compared to Dialog/webhooks, to be much easier to use and scale across your business. It's one of our top priorities for the future but will take some time to release. I can't give a date now but if you need this for your production assistant, as data_henrik said we recommend you use the Dialog skill

Recommending items with availability date in Amazon Personalize

Amazon Personalize builds a recommendation model taking into account users, items and events. However, items are assumed as available, and this might not be the case for certain scenarios.
If items need to reflect a time window like availability in time (from date, to date), then you should be able to offer only valid items according to that restriction.
For instance, this would be the case for live shows: you should only recommend live shows that will happen in the future, either based on similarity or community behaviour. Live shows that already happened are part of the training, but are not valid products to recommend.
How can you model this availability restriction in Amazon Personalize?
There are a variety of business requirements that you may need to handle, that are not built in to the core of Amazon Personalize, and this is one of those. For these business requirements you need to build the logic into your wrapper around Amazon Personalize.
Edit: Personalize now allows you to filter recommendations on item metadata which looks like it would be sufficient for this use case. See the writeup here: https://aws.amazon.com/blogs/machine-learning/enhancing-recommendation-filters-by-filtering-on-item-metadata-with-amazon-personalize/

How to detect more than one intent with IBM Watson Assistant?

Can the IBM Watson Conversation / Assistant service detect more than one intention in a single sentence?
Example of input:
play music and turn on the light
Intent 1 is #Turn_on
Intent 2 is #Play
==> the answer must be simultaneous for both intents: Music played and light turned on
If so, how can I do that?
Yes, Watson Assistant returns all detected intents with their associated confidence. See here for the API definition. In the response returned by Watson Assistant is n array of intents recognized in the user input, sorted in descending order of confidence.
The documents have an example on how to deal with multiple intents and their confidence. Be also aware of a setting alternate_intents to allow even more intents with lower confidence to be returned.
While #data_henrik is correct in how to get the other intents, it doesn't mean that the second question is related.
Take the following example graph, where we map the intents versus confidence that comes back:
Here you can clearly see that there are two intents in the persons question.
Now look at this one:
You can clearly see that there is only one intent.
So how do you solve this? There are a couple of ways.
You can check if the first and second intent fall within a certain percentage of each other. This is the easiest to detect, but tricker to code to select two different intents. It can get messy, and you will sometimes get false positives.
At the application layer you can do a K-Means on the intent result. K-Means will allow you to group intents by buckets, so you create two buckets (K=2), and if there is more than one in the first bucket, you have a compound question. I wrote about this and a sample on my site.
There is a new feature you can play with in Beta called "Disambiguation". This allows you to flag intent nodes with a question to ask to get it. Then if two questions are found it will say "Did you mean? ...." and the user can select.
IS this disambiguation feature available in non production environments, on Beta?

Using Static Maps in free Unity3D based game

we are creating a free game that like Pokemon Go, has their roads from their surroundings reflected in the game so you can move around on them.
We built the game using Unity3D and Google static maps API.
Our concern is their is a huge cost if we exceed downloads with a key.
Question:
Is there a free way to get unlimited maps or road details?
Is a key required since each user has their own IP? We noticed it seems to work fine without a key but we are not certain of any restrictions on this.
Would love some good advice and pointers!!
Thanks,
--Mike
Is a key required since each user has their own IP? We noticed it
seems to work fine without a key but we are not certain of any
restrictions on this.
Google Map will always work without a key but there are few limitations such as map resolution when using it without a key. The free version is made for ordinary users. There is also request limit per day without a key. So, once your player hit that threshold, they won't be able to make more requests.
You need a key(paid version) since this is used for commercial purposes.
You will likely violate the Google Maps Terms of Service if you use this for a commercial purposes without a key.
Is there a free way to get unlimited maps or road details?
No, there is no such thing as unlimited maps with Google Maps. You pay by how many request is made with your key. Another option you have is the OpenStreetMap which is free. I haven't used this and can't say how good it is.

What are general areas you would want to use XMPP?

I understand that XMPP is used in chat services, but it seems to be more generally useful than that. Can someone list some scenarios and examples where you would consider using XMPP, and the pros and cons of it versus other approaches?
I know that Dropbox uses it for its filesharing system in Android (possibly it does in other platforms too).
Cons: much more verbose than binary (more bandwidth).
Pros: a wide variety of already implemented client and servers. A wide range of already implemented reliability, scalability, security, presence, rpc, federation, custom components, mail, VoIP mechanisms... the list is very very long. Even if you need something different, and you know where to touch, you could extend it to your needs, inheriting all the already implemented features.
We had a project on collecting information eg. wind direction, temperature, stock and forex, etc. Every sensor is a Jabber 'user'.
This allows us to detect if a sensor
is online, offline or problematic.
Sensors also publish information to
a pubsub node to be distributed to
collectors.
Human users can also
interact with a particular sensor by
querying with the sensor. The sensor
returns human friendly formatted
data.
We use it for chatrooms, and for distributing sports results to users watching live events.
Google Buzz and Facebook talk is built on it.