Google DialogFlow unable to detect Intents - dialogflow-es

I am developing a voice chatbot using Dialogflow. I have integrated it with TeleGateway. It is unable to detect intent and keeps repeating its prompt. In test during development also it is not able to detect intent. I am following all steps given in documentation. I have also published the app in a dev environment.
Am I missing any step in its development/deployment.
--sanksh

One potential issue could be ML Classification Threshold. If it is too high it will be more difficult to detect intents. Also, make sure you include more than 10 similar training phrases for your intent. Finally, check the training phrases of prompt message maybe it has overlapping phrases with your intent.
You can debug and check the details either using Diagnostic Info or logs. If the above suggestions do not fix your problem, then you should provide more information.

Related

Is there a way in Google Assistant to ask for the available Training phrases?

I am learning about DialogFlow and its integration with Google Assistant but I think it's a bit hard to develop because the users don't know all the posible topics that the chatbot can talk about. I know that this is probably a bad design from my side but I assume that there should be a "help" command to offer suggestions of the available Training phrases that a user can invoke, right?
There is no automated help command to display all of the possible actions in the Dialogflow platform. However, it can be a good idea for you to build out some sort of 'Help' or 'What can you do' intent to give the user some sort of guidance.
Additionally, you can provide them with a few use cases in the Default Welcome Intent.
"Greetings. Do you want to (do X) or (do Y)?"
Visiting our voice design guidelines can provide you with additional advice on creating a good voice experience.
This is not a build-in feature for Google Assistant (or any other integration as far as I know). Having a clear roadmap of available features/intents is often a challenge when deciding your chatbot's design. Here are some tips that might help you in this:
Build a custom help intent
With a custom help intent you would be able to assist your users in any way you see fit, you explain to them what your action is or offer them some suggestions. Since it is a custom intent you can really do whatever you want. As you asked about sending available training you could use the Dialogflow API to show them which training phrases are available in your bot to give them an example.
Use suggestion chips
This is probably the easiest option, when you user asks for help you can give them a set of standard suggestions to guide your user back on track. Your users can click on them or say what is in them to continue to a different intent. (Users that talk to your action on device without a screen can't see these, so you have to design an alternative for those devices too)
Example phrases in action overview
When publishing an action, you get the option to add some example phrases to get the user informed about what you action is designed to do. These suggestions only show up on the action overview so they don't help your users while interacting with your action, but it is still nice to add to help new users get started quickly.

No response from Knowledge Base in Dialogflow

I want to make Frequently asked questions and answers bot in dialogflow. I have Q&A files, so I am used knowledge base in dialogflow .i have the 6-7 file i make documents in the knowledge base. but when i ask question bot not sending any response.
Image of knowledge base console
Knowledge Base Document QNA
dialogflow text response screen
In the response section you need to give $Knowledge.Answer[1].
If you can't get answer in your App knowledge connectors won't work with the production SDK for now, you have to use the Beta SDK/API and pass QueryParameters object for the knowledge connector when you use detect_intent function.
check the documentation
If you can't get answer in the portal you need to adjust KNOWLEDGE RESULTS PREFERENCE to be stronger and lower ML CLASSIFICATION THRESHOLD otherwise the default fallback intent gonna always answer. check the pictures below to see how to:
The error might just be because you didn't enable the knowledge base

Clarity required in creating LUIS and KB and linking them

I created 10KB for my 10 different process. Lets say, each KB has QNA pertaining to each processes. Now i need to create a LUIS which would identify the right intent of user and fetch an answer from right KB. Can you please clarify how this works from an architecture perspective and please help me with the steps as well.
There is a guide and sample project available here.
Basically you create a LUIS app and then you use the Dispatch tool to create a local file which scans all of your knowledge bases and extracts your questions to use as something that LUIS calls utterances, these utterances are then used to determine the user's LUIS intent in your case which knowledge base to use. Basically the dispatch app in LUIS acts as a router. One you have created the dispatch file locally then you need to push it up to your LUIS app (dispatch create command).
I would recommend downloading the sample app and running through the whole process to get a basic understanding of how everything fits together. Once you have published your LUIS app you will be able to test it within the LUIS portal by inputting example utterances and inspecting the reply to see the intent that was selected. The documentation for the Dispatch tool is available here, please note that when you update your knowledge bases (by adding new entries or alternative phrasing) after publishing your dispatch app initially you will have to refresh your dispatch model for these new questions/alternative phrase to have an utterance added in LUIS to that map to the correct LUIS intent - otherwise they will return the None intent.
NB. you could hack around the need to update the dispatcher by handling the case when you get a the "None" intent back and iterating through all of your knowledge bases to request an answer for the user's query and just return the answer with the higher score (have a collection that keeps the answer from each knowledge base) but I wouldn't recommend it as you miss out on the benefits of Active learning for LUIS and QnA Maker.

Add more small talk options into Dialogflow

I am utilising the small talk options within the chatbot that I currently use, however, I have noticed a couple of common questions which seem to be asked which fit into small talk, such as "What is your name?" and "What does you name mean?".
Is there any way in which I can add to the list of small talk questions? If not, how can I add these questions in with their responses? My issue is that I believe that you shall need a new intent for every question that gets asked? Any help would be appreciated.
Using a new intent for every question asked (or at least different versions of the same question with one answer) is the standard Dialogflow design and isn't really a problem.
The small talk functionality is just a big list of questions and answers in separate intents - you can see by looking at the pre built small talk agent through Prebuilt Agents -> Small Talk -> Import.
Therefore I would suggest to simply do it this way.
Initially, small-talk option had this issue which you specified here where users were not able to add more phrases to existing questions or add more questions.
To solve this issue, DialogFlow has introduced Small Talk Pre-built Agent.
There are approx 86 pre-built intents in the small-talk agent.
You can add/modify the phrases in those intents,
You can add/delete intents
You can modify the responses of these intents
To use small-talk agent, go to pre-built agents option in left menu, go to Small Talk agent, then import it.
Hope it helps.
I will suggest to use QnA maker service to achieve the functionality. Basically you have to create a QnA maker service and have to integrate to Bot. It will resolve your query. Please let us know if you need more information .
Regards,
Tharak

Difference between IBM Watson Conversation and Natural Language Understanding

I'm building an watson conversation service and I want to know different watson Conversation and Natural Language Understanding service.
I think Watson conversation service support Natural Language Understanding, such as intent, entity but Natural Language Understanding service also provide intent and entity.
If I just use intent and entity for conversation, do I need to bind Natural Language Understanding to conversation service or not?
Thank you.
Conversation service is separate from NLU. Conversation is about building a chatbot on your own domain. The intents/entities are only what you train it on, and the dialog is a feature only available in conversation, not NLU.
NLU is a pretrained service that returns various information back about text, but does not do anything with a response, and will give you back what it has been pretrained on. Out of the box, you can't change this. You can use a product like Watson Knowledge Studio to train a custom annotator, but NLU itself knows what it knows and thats it.
There is no need to combine these, but it is possible. Depending what problem youre trying to solve will help guide you in which you want to use. If you want to understand data about unstructured text, with no real training time required, NLU is right for you. If you want to develop a chatbot to help your users with some problem, Conversation is right for you.
If you want to build a chatbot about generic things, or if you require things like people's name, extracting locations around the world, etc, and respond accordingly, you could use NLU to extract the metadata, and then pass that to Conversation and in conjunction with your custom intents/entities/dialog have a more powerful conversation.
From the way I'm understanding the question, I pre-assume that you know that Watson conversation and Natural Language classifiers (NLC) are two different services provided by IBM Watson.
Watson conversation will basically help you build a chatbot or a bot (which has speech to text or vice-versa). This chatbot helps users in different ways. Let's say if a user asks a question to the chatbot, chatbot will answer accordingly (It depends on how you designed the dialogs/ or the responses) to the question asked.
Question 1: What's your name?
Answer 1: I'm Watson.
Instead, if the question was asked incorrectly.
Incorrect question : Wat is ur name?
Answer would still be: I'm Watson.
In order to build a chatbot using Watson conversation, you need to make sure that you have proper understanding of Intents, Entities, and most importantly Dialogs (Dialogs help you design the flow of the conversation). If you know these 3 parts then you are good to go with Watson conversation. There's no link between NLC and Watson conversation if you keep them isolated. *That being said, Watson conversation itself has an Natural language understanding where it could figure out User questions even if the questions are **incomplete, grammatically incorrect, mis-spelled words etc.*
In short, you need not bind anything (Natural language) to make the conversation start working. Just focus on those 3 (Intent, entities, & dialog) portions provided and you are good to go.

Resources