My Watson Assistant dialog has a webhook call to an IBM Cloud Functions action. After I change the code in the action function and "Try it out" again in Watson Assistant, it doesn't pick up the change. Is there some cache I need to clear, or something I need to restart each time I make a code change?
In Watson Assistant in the "Try it out" are links / buttons to clear everything or to manage context variables. There you can reset the "Try it out" bot.
In general, when you assign values to a variable the value is kept until you clear or delete it. Thus, if you do not set input variables to null to clear them they are reused without asking the user for input again.
Related
I'm having trouble submitting my Google Actions skill (this skill is Dialogflow based).
This is the message after submitting my skill.
Your Action leaves the mic open for a user command without a prompt, such as a greeting or an implicit or explicit question.
Note: Thank you for submitting your Assistant Action for review.
However, your Action has been rejected for the following:
1. Your Action violates our User Experience policy. Specifically, your Action listens for a user command by leaving the mic open without a prompt such as a greeting or an implicit or explicit question.
After the Action responds to "メニュー画面”, the mic remains open without a prompt back to the user.
For example,
User:メニュー画面
Action: *Mic is open* At this point, either prompt the user with further options or close the Action.
After reading the feedback, I understand that the phrase メニュー画面 causes the microphone issue.
I've tried to enter this phrase メニュー画面 in my Google Assistant application on iOS and my phone just opens the Setting menu without giving a defined response as I configured in Dialogflow intent.
I've tried to enter this phrase on Google actions web console in Phone mode and nothing happen and the request is empty
Empty response on Google actions
My expectation after entering this phrase: Google actions won't detect any intent that matches this phrase and the DefaultFallback intent will be triggered and Google will reply with some defined responses.
What can I do to resolve this issue? Thank you.
A cursory translation of "メニュー画面" seems to be "Menu screen".
When you're using Dialogflow, the "Default Fallback Intent" will catch any user utterance that does not match another intent. You should make sure this fallback tries to rescue the conversation by reprompting them or ending the conversation.
This means that in practice asking them a question or closing it.
Because once the Action is given this prompt, the surface will open the microphone and listen for the next user utterance. However, if the response is not a question, the user may not know to say something.
Reprompting the user can be a matter of good design or just as simple as adding something like "What do you want to do?" at the end of each response.
Alternatively, you can just mark the conversation as over. This will not reopen the microphone after its response.
How can I disable the input field of Watson assistant after giving closing statement?
Ex: If the bot shows thank you for using our services, then the Input field should be grayed out and should not let user to type, user has to restart the bot to chat.
There is a method in watson :instance.updateAssistantInputFieldVisibility(false) it disables the input field, so you can customize the way you want to use.
I see the following options for you to "disable" the chat in Watson Assistant.
You could respond with a pause.
Set an internal variable that from your point of view the dialog is done and should not be resumed again. React to any input by not answering.
Consider a special version of anything_else.
Build your own interface that can disable the input.
IMHO disabling input should not be done, it is against best practices. You want the user to interact. Reloading the web page with the chat typically reenables input anyway. So what is the use case...?
I couldn't figure out a problem with IBM Watson Assistant. I've chosen to use an Option type as response. That way, I can see a list on my chatbot where each item is clickable and has an associated value.
When a user clicks one of the options, the associated user input value is sent to the assistant. How can I give this value to a context variable? Is it possible?
Yes, that is possible for option responses and is the typical use case. I have demonstrated that in a simple chatbot I use in some of my talks.
I use different language code as options. Users can click on them and the result is saved in the variable langcode. Because users could have already specified what I would ask for, I check for it and save it.
The simple bot has more uses of options and the full skill is available in case you want to see all the details.
I am using IBM Watson Assistant to create a troubleshooting guide. I wish to put a disclaimer in the beginning and only if the user checks the checkbox saying he agrees to the statements in the disclaimer, they will be able to go further in the conversation.
I tried include the HTML checkbox code, but it doesn't seem to work. I don't want "options" which is present in the Assistant. i wish to have a checkbox.
Note that Watson Assistant typically is part of a solution and not a chatbot alone. What is your app that is used as user interface? You could let your app react to a context variable and display the checkbox. Not all user interfaces and integrations may support displaying a checkbox.
Another option is to ask the user to agree to the terms. If they answer "I agree" or "Yes", then the dialog moves forward.
We are working on project using Google Home.
Details:
We have built certain intents in Dialog Flow. It has certain follow-up questions to get the parameter values, as a multi-turn dialogue. When testing using Dialog Flow, test console, I am asking
Can you help in booking a table: It prompts back with right question (Where do you want to book a table) as configured in Dialog Flow
Where do you want to book a table : I answer - "Some Restaurant". It prompts back with right question (When do you want to book a table) as configured in Dialog Flow
When do you want to book a table: I answer: "Today" . It prompts back with right question (For how many guests) as configured in Dialog Flow.
For how many guests? - I answer: "4 people." It ends the conversation, as configured in Dialog Flow.
The above conversation works perfectly fine as expected.
When I test using the integration for Google Home (using simulator with action SDK) [See how it works in Google Assistant]
Invoke the app (by using the explicit invocation - Talk to [APP NAME]) - App gets invoked with the right greeting message as configured
After that when I ask the questions as mentioned - above - app leaves the conversation? Nothing is answered back.
Not sure why this issue is happening - anything I am missing in the configuration?
Walk through your intents and make sure the 'set this intent to end conversation' is not set to enabled in Dialogflow (and if you're using a webhook not ending there). Look down at the Responses section in DF.
Start with Welcome Default intent, and then check each intent, all follow-up prompts.
For personal gmail accounts, the Web&App activity, when turned on, it automatically gets enabled.
For gsuite accounts, even when the Web&App activity turned on, it needs to be enabled by the admin of that organization. Only after when it is enabled, the simulator will behave as expected.
I think Actions straight up doesn't work for some (all?) Gsuite accounts, regardless of what permissions you set. Google knows but doesn't care. I spent weeks in an Actions support conversation on this topic and they ultimately punted me to the Gsuite team, who couldn't help. See also:
Sorry, this action is not available in simulation
Actions on Google won't respond to explicit invocations