Agent Training in DialogFlow - dialogflow-es

I have written and submitted an app via DialogFlow for Google Home which is now live. If I make use of the training facility in DialogFlow (https://dialogflow.com/docs/training-analytics/training) and match un-matched user questions to existing intents, do I need to resubmit my app to google for the training to take effect? Unfortunately the documentation is not clear on this point.

I contacted DialogFlow re the question and they confirmed that that app does need to be resubmitted to google if you use their training function as this alters the language model.

Related

Dialogflow - Twitter Knowledge Base Not Matched

While trying to use knowledge base Beta feature for Frequently Used Questions, I faced the below issue:
From Dialogflow console, the knowledge base seems to be working fine (matches with user request for every question found in the knowledge document)
From Twitter Direct Message, the knowledge base is not being matched with the user's request and Dialogflow is returning the Fallback Intent. To note, that:
Dialogflow - Twitter integration was done based on the latest release (https://github.com/GoogleCloudPlatform/dialogflow-integrations/tree/master/twitter#readme)
The rest of the intents are being matched normally
The knowledge base in enabled (all detect intent requests should find automated responses using this knowledge base as per Google Documentation)
Any help is much appreciated.

Why Dialogflow doesn't work as expected for **alpha/beta** testers?

I am working on dialogflow and actions on Google for Google assistant integration. I have been working on it from last few months, I created dialogflow agent made required changes and setting in actions on Google as well. I used to test each and every day after implementing new features to my app (using Webhook) and found everything well before submitting to apha/beta approval. After completing my work with the app, I just submitted it for alpha/beta approval to Google and they approved it. At this point I just sent the opt in link(provided by actions on Google for alpha users for testing purpose) to the alpha testers. But unfortunately nothing is working as expected. After analyzing I found that all the parameters are always empty in the webhook request sent from dialogflow and intent didn't match as expected. But for me (developer or owner) it works fine, I mean to say alpha/beta versions are not working. The parameters should have the values of matched entity synonyms that have been added/loaded to dialogflow dynamically via dialogflow V2 APIs. It is working fine with owner account or developer account, But not with alpha/beta release.
While checking via postman if the entities gets loaded to dialogflow or not i found entities were loaded successfully to dialogflow with the same dialoflow V2 api, But due some reasons webhook request always sends empty strings for parameters.
Can any one have any idea why is this happening, And what is the solution for this issue?
Thanks in advance.
I have faced the same issue. And I found that my google actions are in deploying state and I have tried to test it with an opt-in link. But After a few hours, it is deployed properly and my custom google actions worked fine. And you also need to do alpha testing enabled in your mobile from an opt-in link.

How to clear the session between two consecutive intents?

We are using bot trees master which uses bot graph dialog for loading graph based dialogs dynamically. We have created a scenario to load multiple intents(whose intents scores are nearly matching). Now the problem I am facing is when I request for single intent , I am getting the bot response and able to enter into next intent but when I request for multiple intents bot is giving the response and when I request for another intent , bot is giving the same response of multiple intents. When bot is entering into multiple intent handler it is not clearing the session and not coming out of that handler. I have tried using session.endConversation().
To understand about bot graph dialog:
https://www.microsoft.com/developerblog/2016/11/11/extending-microsofts-bot-framework-with-graph-baseddialogs-/
Can somebody help on this. Thank you
the builder.IntentDialog() used in this project is no longer considered a best practice. Additionally, further support is not expected. Instead, you will want to use bot.Dialog() to create your dialog flows with a .triggerAction(). The trigger matches on phrases which you can set a score to. Unfortunately, it means you will need to recreate the bot-trees project to fit this new model.
You can find information on managing conversations here, including creating triggers.
If you need a more robust system, you can integrate LUIS into your project. Information regarding recognizing intents with LUIS can be found here.

Dialogflow: reference to output context in intent (ie what's this NodeJS Client Library for?)

In my NodeJS Dialogflow fulfillment, I want to reference an output context parameter from an intent from 2 requests ago within the session.
The queryResult of the latest request doesn't have that data. And the samples only seem to process WebhookRequest and WebhookResponse (
reference: https://dialogflow.com/docs/reference/api-v2/rest/v2beta1/WebhookResponse )
If I can access https://dialogflow.com/docs/reference/api-v2/rest/v2beta1/projects.agent.sessions.contexts/get I may be able to do it. But I don't quite understand if that implies mixing https://github.com/dialogflow/fulfillment-webhook-nodejs/blob/master/functions/index.js with this Client Library:
https://github.com/googleapis/nodejs-language .
In other words, it's not clear to me what the purpose of https://github.com/googleapis/nodejs-language is. Is nodejs-language intended to substitute actions-on-google fulfillments (in the format of https://github.com/dialogflow/fulfillment-webhook-nodejs/blob/master/functions/index.js ) ?
There is a lot going on here, and it isn't quite clear why you think things fit together the way you do.
The nodejs-language library is used to access Google's Natural Language API that runs as part of the Google Cloud Machine Learning API family. This is a completely separate product from the Google Assistant, Actions on Google, and Dialogflow systems. It is meant as an API for people who are looking for a pre-trained AI that can do things like sentiment and syntax analysis. It is not meant as a substitute for any part of the AoG or Dialogflow platform.
As long as the context set two requests ago was set with a lifetime more than 2, and wasn't cleared in between, then it still should be valid and sent to your fulfillment webhook. Since it sounds like you're using Dialogflow V2, you should be able to get all the currently valid contexts as part of the request that is sent to your fulfillment webhook by looking at the queryResult.contexts object in the request body.
If you're using the fulfillment-webhook-nodejs library that you referenced in your post, this should be available to you in the inputContexts variable.

How to train api.ai/dialogflow chatbot dynamically?

I am trying to generate some "quick reply templates" i.e possible reply according to previous messages in a chat thread using Api.ai/Dialogflow.
I have trained api.ai agent to some extent to generate replies only for some selected queries. Now, I want to enhance it to generate replies for more queries but training an agent manually for a large number of queries is not practically possible. Is there any way to train the api.ai chatbot dynamically by analysing the previous chat thread, i already have stored in db or using the data of ongoing chats.
Users are some sellers so i assume they will talk regarding there product only, so questions will be somewhat similar in every chat thread.
Looks like there is now the ability to train via the API: https://dialogflow.com/docs/training, along with uploading text files with training lists.
You can add more Training Phrases using the POST and PUT API methods for the /intents endpoint.
Any changes made via the API to alter the agent's behavior, initiate the training in the same way when you save an intent. This trains the agent with the changes delievered through the API.
There currently isn't a API for training.
If you have a log of the queries for your agent (via the API or your webhook), you could "train" your agent by using those log to determine the most common unanswered queries by looking at how many queries match the default fallback intent and create new intents and responses for those queries using Dialogflow's API: https://dialogflow.com/docs/reference/agent/intents#post_intents

Resources