Dialogflow make the bot more human - dialogflow-es

I am new to the dialogflow, I want to know if there is any method that I can make my bot feels more human when the user interact with it?
Many thanks.

Here is a good resource from Google. It talks about the Cooperation principle which helps you design helpful and straightforward prompts and responses for your users. It focuses heavily on principles that are used within day to day human interactions so you will get a bot that will respond according to the rules of human conversations. It is also closely related to dialogflow as it used actions on google as a platform.
If you want to know more about creating more human conversations I recommend you to look into human linguistic, but that is a whole new thing to learn and out of scope for StackOverflow.

Related

Best Chatbot Service for Website Integration for Research Purpose (2021)

I am a researcher and I do conduct research on conversational agents, chatbots, anthropomorphism and human-computer interaction.
For a series of online experiments I need to implement a functioning chat. I already conduct a few online experiments with a dummy chatbot to measure the mere presence of conversational user interfaces.
Now I am looking for a functioning chatbot so that my participants can interact with the chatbot. I was already looking into Dialogflow, BotFramework and various other services. However, I do have some requirements
The chatbot should be integrated into a website. The website already exists and is developed using plain HTML,PHP,JS.
The chatbot should be able to take data from the website (i.e. user_ID, treatment condition etc.) and should be able to adapt accordingly (language, design, features).
The website should be able to access the chatbot conversation and save it into a DB (I'm using a simple MySQL)
Any recommendations?
Currently I want to use DialogFlow and the Dialogflow Messanger, which however only has limited styling options (change of color etc.). Is there any saas for integrating the chatbot on the website?
Also keep in mind, in research, we unfortunately don't have much funding :D
Thanks
Dominik
Just going to answer my own question for now, still very much interested in your opinions.
So I have chose to use Google DialogFlow and the DialogFlow Messenger, which fulfill nearly all my requirements. Using JS on the website, I can access every interaction data (conversation) between the chatbot and the user. After collecting all data with JS i can continue with the experiment, take other data and then save everything in my MySQL database.
If you want to know more, feel free to contact me.

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.

Gupshup whatsapp bot estimated implementation time

Hello we are a small team looking to implement a Gupshup/Whatsapp bot.
We are wondering how long does it take for this kind of bot to setup and have in working order?
apologies if is not a technichal question, but we are not sure where else to ask.
You can ask Gupshup directly and they will be able to help better. From WhatsApp's perspective, once you create your account on Facebook Business Manager and add your WhatsApp number, it goes through an account review which typically takes around 2-3 days and once that is approved, you can start sending messages right away. However, some of these businesses like Gupshup have sandbox experiences at times that give you this experience within minutes without having to go through the entire flow.
There are two parts to the implementation. One is business registration with Whatsapp linked with vendor like Gupshup and the other is coding implementation.
These both can be achieved anywhere from one to two months depending on the use case.

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.

Can wit.ai, api.ai etc generate its own conversations by training or are every conversation static structured by stories the "bot" owner created?

Can wit.ai, api.ai etc. generate its own conversations by training or are every conversation static structured by stories the "bot" owner created ?
Im in the search for a botting tool that can generate conversations based on what it has learned, and the more conversations it has the better it gets to replying to users, where human-like hour long conversations could be a possibility.
I've looked at wit.ai, api.ai and others like it, but they seem to be based upon stories which typically ends up into some command-like stuff, like ordering a pizza. Though they can be made to remember who they speak to and other entity information.
Do i have to structure a hundred of stories or is it possible to just make a base and make it learn from there, and perhaps add more stories in the future based upon old conversations to make it smarter. ?
There are many parts to the answer.
On the one hand, there is Mitsuku, which probably comes closest to what you are aspiring to. From what I understand, Mitsuku has been built over a long time using plenty of hand coded rules - a bit like the hundreds of stories you are talking about. There isn't a Mitsuku-as-a-service that I know of, at least not yet.
On the other hand, there are bot building frameworks like api.ai, wit.ai and others which are using machine learning to effectively do two main things - intent mapping (what is the subject the user is talking about) and entity extraction (mentions of proper nouns). In combination, it can be quite helpful for task oriented chatbots but not sufficient for the kind of truly conversational chatbots you are trying to build.
I would also encourage you to check out the following YouTube video, specifically the segment where the presenter talks about generative vs retrieval based chatbots.
https://youtu.be/SvV57fuL_M0?t=202
Also, api.ai also has something called "prebuilt domains", which have knowledge about a few domains. There is a "small talk" domain included, but if you look under the hood, it basically expects the bot programmer to fill out a questionnaire which goes from 0% to 100% complete based on usual expected questions.
You also ask about using history to make your bot smarter. If you are prepared to go through the chat logs, bot building frameworks such as API.AI allow you to start with something narrow and go on to make a pretty interesting bot by doing training (hard to explain, take a look at their interface). But this also means a) you are willing to spend a good amount of time improving the bot and b) you can actually drive enough traffic to your bot to field a wide range of questions.
Its my view that there is quite a lot of hype as to what chatbots can do. I think they are quite useful, but they are hardly conversational in the way humans think of conversations.

Resources