I'm trying to make a bill payment app using SiriKit's INPayBillIntent. I've set a custom bill organization type as below:
INVocabulary.shared().setVocabularyStrings(["Devon"], of: .paymentsOrganizationName)
The problem is with custom vocabulary -- I want to pay the bill in Siri by saying "Pay Devon" but Siri only recognizes the intent if I say "Pay Devon Bill" like saying "Pay Water Bill".
Can I change this?
Related
This seems like a fairly basic requirement, but how do you capture a simple "yes" or "no" chat response in AWS Connect?
I have created a simple "Confirm" Lex intent which accepts utterances of "yes", "y" and "yeah" but the intent still returns a positive outcome even if the user types "no".
This can easily be accomplished by created a bot with 2 intentions, one of "yes" and the other for "no".
Add sample utterances for the "yes" intent, for example:
Then do the same for the "no" intent, for example:
Then use the Get Customer Input block with your bot, adding both the "Yes" and "No" intents to the block, like this:
This sample contact flow produces this response, confirming that "no" is recognized, when tested with Amazon Connect chat.
i want to know is it possible for user to say
"balance in all cards" or "balance in home" or "balance in work"
how can user acheave this with one sentence
now user has to invoke siri siri with static phrase like "show my balance" then it askes for which card? then user ansers that to get the value
is it possible to do it with one sentense like:
"Balance of </Home/> card in cashAPP"
this way it introduce a whole new possible way of entering data with siri
imagine you could say :
"new expense in home category with 20 dollar"
is this possible
Unfortunately, this is not yet possible although the system shows promise for this feature.
is it possible in any NLU (e.g RASA, or Lex) to get attrbitued string of an entity?
Here is an example:
"please make sure to remind me about getting the project done"
let's say I'll put remind me as a REGEX - how can I extract the latter?
I'm talking about NLU perspective (and not naive string manipulation).
would like an output like
{
Intent:"remind_me"
Value:"about getting the project done"
}
Here's a description of how to do it in Lex.
From your example:
User: "please make sure to remind me about getting the project done"
This is the user input, also called an Utterance.
First you create an Intent. You can name it like you did: remind_me
Then you provide Lex with intent-utterances, or phrases that the user will say to trigger that intent. Perhaps, something like:
"remember this for me"
"make a reminder"
"can you remind me about something"
"please remind me"
Those would simply trigger the intent and you can then ask the user for the information to remember.
Any value that you want to store in Lex is called a Slot Value because it is held in a Slot, which is basically just Alexa and Lex's term for 'variable'.
You could name the Slot: reminder
If your intent is triggered, then you Elicit Slot and ask the user:
"Okay, what would you like me to remind you about?"
You "teach" Lex what to listen for by providing all the variations of utterances you think the user might say, and simply place the SlotName in curly braces {} inside the utterance at the point where they are likely to say the word or phrase you want to store in the Slot.
"remind me about {reminder}"
"please remember {reminder}"
"make sure to remind me {reminder}"
These can even be the intent-utterances so you capture the reminder value without needing to elicit it with a question.
Lex will then provide you with exactly what you are looking for and more, I'll simplify the JSON that Lex creates for you:
}
"currentIntent": {
"name": "remind-me",
"slots": {
"reminder": "about getting the project done"
}
},
"inputTranscript": "please make sure to remind me about getting the project done"
}
To view the full format see Lex Lambda Function Input Event and Response Format
Notice that Lex even provides the full user utterance in inputTranscript. That's great for doing your own parsing and validating.
I am developing a Siri extension handler for INTransferMoneyIntent. In this intent there is a param toAccount which Siri can parse out from your request and pass to your handler. It can successfully parse out any values for the toAccount param even if they are not registered in the app(through the global AppIntentVocabulary.plist or through INVocabulary). But it can only recognise the account name from the request if the request contains the word 'account' before or after the actual account name. Say: 'transfer $3 to Beer account'. Or 'Transfer $10 to account Beer' where 'Beer' is account name. And this is totally fine as this is exactly what this intent is supposed to be used for. But my customer wants that instead of the word 'account' the app could be able to recognise the account name by the keyword 'category'. Like in the phrase 'Spent $30 on Beer category'. Or even simply 'Spent $30 on Beer'.
I know that I could add custom vocabulary through AppIntentVocabulary.plist or through the INVocabulary class. But it seems to allow only setting the possible values for the intent attributes(in my case for the attribute INTransferMoneyIntent.toAccount.organizationName of INTransferMoneyIntent.toAccount.nickname) but not to provide a synonyms for the keyword itself that is used to recognise a param from the request phrase.
I am 99% sure that it is not possible to achieve that, but who knows.. Maybe there are some hidden options I have not discovered yet..
Any suggestions?
I confirm this is NOT possible.
Unfortunately you cannot use the AppIntentVocabulary.plist to define synonyms for the keywords that define the intent.
At least today with iOS 11.2
Ok so Im already an affiliate of amazon. I'm dynamically generating links based on results from their API. Im trying to put the customer in front of a permission to add an item to their cart. I have this structure as an example:
http://www.amazon.com/gp/aws/cart/add.html?AssociateTag=your-tag-here-20&ASIN.1=B003IXYJYO&Quantity.1=2&ASIN.2=B0002KR8J4&Quantity.2=1&ASIN.3=B0002ZP18E&Quantity.3=1&ASIN.4=B0002ZP3ZA&Quantity.4=2&ASIN.5=B004J2JG6O&Quantity.5=1
This works great as long as Im selling amazon-only products. What Im trying to do is put them in front of the lowest price for that product (items that are being sold on amazon by other people/dealers).
I already have the lowest prices etc etc. The problem is structuring the link to get them there. Do any of you know the parameters in the url that I would add or at least a list of parameters I could sift through to find what Im looking for?
Also, if theres a way to just put the item in their cart as apposed to taking them to a permission to add to cart...that would be that much better!
Thanks in advance!
Please refer to the documentation for forming an associate URL:
https://webservices.amazon.com/paapi5/documentation/add-to-cart-form.html
The "Add to Cart" form enables you to add any number of items to a customer's shopping cart and send the customer to the Amazon retail website for completing the purchase. Some parameters are optional, but you must specify quantity and at least one of the following parameters: ASIN or OfferListingId. AssociateTag is a must for attribution. You can either use this Online Amazon Add To Cart Link Generator To Easily Generate Add To Cart Link Without writing attributes by yourself or you can do this manually just like this:
"ASIN.1=[ASIN]&Quantity.1=1&ASIN.2=[Another ASIN]&Quantity.2=10"
Your final Link May Look Like This:
https://www.amazon.in/gp/aws/cart/add.html?AWSAccessKeyId=leNM%2FocHLQ%2ByqCuwtsgoza8buGoeRSlHuoDGRnlb&AssociateTag=ajaykumar9207-21&ASIN.1=B07CQ6Q52H&Quantity.1=1&ASIN.2=B07CQ6Q52H&Quantity.2=1&ASIN.3=B07CQ6Q52H&Quantity.3=1&ASIN.4=B07CQ6Q52H&Quantity.4=1&ASIN.5=B07CQ6Q52H&Quantity.5=1