This is a bit of a silly question but I wasn't able to find anything in the documentation or a spot to change it in the Amazon Lex console.
In Lex V1, there was a tab in the editor called 'Error Handling' where you could clearly change the messages for the clarification prompt and hang-up phrase.
I started working with Lex V2 only recently so I'm thinking it's a setting I've missed. How do I change the fallback intent message in Lex V2?
The fallback message is defined by the fallback intent specified for your bot, which is always required to exist for any bot.
Even if you are building your Lex bot from scratch, there will be an intent of type AMAZON.FallbackIntent created for you with the default name of FallbackIntent.
To find the fallback intent for your bot - regardless of if it has been renamed from the default value - perform a search for AMAZON.FallbackIntent.
This will yield an intent:
You can then specify the 'fallback message' by:
Ensuring the Closing Response is set to active
Specifying a value in the Message field
Related
I created a custom Bot on AWS lex and Integrated it to WhatsApp using Lambda, the problem arises when im testing on WhatsApp ... It doesnt follow the conversation flow from the lex Bot instead it just repeats the intro message no matter what utterance/intent I use.
Also it doesnt allow me to use lex Fulfillment when i want add my Lambda function, Any help will be much appreciated guys, Documentation or anything !
Ive tried adding extra slots and SlotTypes in my intents, Ive Also set all my intents to $Latest.
I was wondering if anybody has ever experimented with this issue I'm having and could give me any input on the subject.
As it stands right now I'm trying to see if there is a way to grab a users input through the AWS Connect. I understand that there is already a "Get User Input" block in the GUI that is available for me to use, unfortunately it does not offer the fine grain control I am looking for with requests and responses from Lex.
Right now I am able to Post Content to Lex and get responses just fine, as well as output speech using Amazon Polly via my Lambda. This works great for things that do not require a user to have to give feedback for a question.
For example if a client asks
"What time is my appointment?"
and we give back
"Your appointment is for X at X time, would you like an email with
this confirmation?"
I want to be able to capture what the user says back within that same lambda.
So the interaction would go like so:
User asks a question.
Lambda POST's it to Lex and gets a response
Amazon Polly says the response - i.e: 'Would you like an email to confirm?'
Lambda then picks up if the user says yes or no - POST's info to Lex
Gets response and outputs voice through Polly.
If anybody has any information on this please let me know, thank you!
Why do you make so much complications to implement IVR system using Amazon Connect. I have done the complete IVR automated system to one of my biggest US banking client. Use the below procedure to achieve what you desire.
Build a complete interactive lex bot(So that you can avoid amazon poly & using lex post content api). It is advised to build each bot has only one intent in it.
In connect using "Get User Input" node map the lex bot which you have created earlier with the question to be asked "What time is my appointment?". Once this question has been played the complete control goes to lex and then you fulfilled your intent from lex side, you can come back to connect as like that.
Refer AWS contact center for the clear idea.
I was hoping to create an intent that only makes a statement to the user. I was thinking I could do this by having some utterances that trigger the intent with no slots, but with a "goodbye message". When I try to do that, when I save the intent, it deletes the goodbye message and reverts it to None. I also picked a "no-op" lambda function to call since it doesn't make sense for what I'm doing.
At this point, I'm not sure about how to do this, but it seems like the claudia-bot-builder has support for something like this, but I can't get it to deploy to my AWS account to see how it might do it.
Does anyone else here have an idea about how to have the bot just give information in response to an utterance instead of starting a dialog to retrieve information?
You can return simple messages to the user using only Amazon Lex Console without any Lambda Function selected.
Open your Lex Chat Bot in console.aws.amazon.com/lex/home....
1 Click the "Editor" Tab.
2 On the left, click on the Intent you want to return a message on.
3 On the right, scroll down to the "Fulfillment" section.
4 Click "Return parameters to client"
5 In "Response" section, type in the message(s) you want to respond with.
Note: Make sure the section "Lambda initialization and validation" is unchecked so that the intent goes directly to the "Fulfillment" response.
I have been doing a bit of experimentation with Amazon Lex but I can't get voice to work in the console at all.
I'm using the Flower bot demo with the associated Python Lambda function connected and working with text on Chrome browser running on a Mac (10.13.1).
I am able to log any text entered into the test bot on the console from the Lambda function along with the rest of the event.
By going to the monitoring tab of the bot in the console I can see utterances from previous days (seems to be a one day delay on utterances appearing wether missed or detected, no idea why…).
I made a bunch of attempts to use voice yesterday that appear in the utterance table as a single blank entry with a count of 13 now that it is the next day. I'm not sure if this means that audio isn't getting to Lex or if Lex can't understand me.
I'm a native English speaker with a generic American accent (very few people can identify where I'm from more specifically than the U.S.) and Siri has no trouble understanding me.
My suspicion is that something is either blocking or garbling the audio before it gets to Lex but I don't know how to find what Lex is hearing to check that.
Are there troubleshooting tools I haven't found yet? Is there a way to get a live feed of what is being fed to a bot under test? (All I see for the test bot is the inspect response section, nothing for inspecting the request.)
Regarding the one day delay in appearance of utterances, according to AWS documentation:
Utterance statistics are generated once a day, generally in the
evening. You can see the utterance that was not recognized, how many
times it was heard, and the last date and time that the utterance was
heard. It can take up to 24 hours for missed utterances to appear in
the console.
In addition to #sid8491's answer, you can get the message that Lex parsed from your speech in the response it returns. This is in the field data.inputTranscript when using the Node SDK.
CoffeeScript example:
AWS = require 'aws-sdk'
lexruntime = new AWS.LexRuntime
accessKeyId: awsLexAccessKey
secretAccessKey: awsLexSecretAccessKey
region: awsLexRegion
endpoint: "https://runtime.lex.us-east-1.amazonaws.com"
params =
botAlias: awsLexAlias
botName: awsLexBot
contentType: 'audio/x-l16; sample-rate=16000; channels=1'
inputStream: speechData
accept: 'audio/mpeg'
lexruntime.postContent params, (err, data) ->
if err?
log.error err
else
log.debug "Lex heard: #{data.inputTranscript}"
Go to Monitoring tab of your Bot in Amazon Lex console, click "Utterances", there you can find a list of "Missed" and "Detected" utterance. From the missed utterances table, you can add them to any intent.
I have a Integration Service that has 2 inbound fields (Login and Acao), both should be required, so I have created Business Object for each one, and at "Simple Type" section, I set the "Error Message" for these fields. When I ran the service by IBM BPM, and do not filled those field, the message is shown, but, if I call the service using SOAP UI, I just receive the error "Internal Server" and the message that I have set at "Error Message" is not showed.
I used "Error Intermediate Event" to catch the error and "Error end Event", but it still not work.
Whats is the best way to make a field required in a IBM BPM Service or how can I still throw an exception, but instead of "Internal Error" show specific message?
Kind regards
I'm not sure about your current IBM BPM version or edition and I'm assuming you are using only Process Designer.
I think it is not possible to throw an error the way you want. You may probably need to implement your Web Service (I'm assuming a WS is used to expose the IS) using IBM Integration Designer (IID), which is a little bit more complex but has a lot of flexibility.
In case that is not an option (only available in Advanced Edition), you can add an additional output variable to your current service to return (throw) the error:
Add a variable output as a String or any desired complex type
Use the regular End Event instead of your Error End Event
Include a script between the Error Intermediate Event and the End Event to map the error description to the new output variable