48 comments

[ 2.7 ms ] story [ 24.2 ms ] thread
"Here we learned how to create a simple chatbot. And it works okayish."

Not knocking the author's work, but I feel like you can say "it works okayish" for pretty much every chatbot ever created.

I said it okayish because this post is for learning purpose and not any advanced stuff. :)

In my view, it all depends on what one creates. I agree that some of today's chatbots may not be the best but that's okay. Maybe we will be able to do better.

Totally - and again def not knocking your work. My point is more about chatbots just in general - I've never seen an example of one in the wild, in any context, that wasn't underwhelming.
So you're saying chatbots aren't as difficult to make as you think?
Precisely. I thought they were too difficult. They are not if the use case is viable and you can solve it programmatically. The Hard thing is to guide the flow of the user and really designing the flow.
Making a chatbot that’s useful is more impossible than you think.
I do agree it is hard. As per usefulness, Customer service industry can use it in a pretty good way. Also i think they are fun :)
What would you gain over a well organized FAQ page?
QWe can always switch to a customer service executive if we sense something going bad. Or the Chatbot not able to get the intent it has been trained for.
How does this beat a simple form of FAQ with a floating action button to get some help?
Its not only FAQ based bots that we intend to remove. It won't serve many purposes. Customers call banks to know about their balances. Or retail Customer care to know the status of order. Once I saw a chatbot use case where chatbot recommended dresses if we talk to it in a natural way. For example: "I have to go to a Christmas party today " and it handled this...

We are only limited by our thinking on how to create them.

Customers who call banks to know a balance hit an automated system. The kind that end up calling instead of checking online/ an app AND end up needing an operator don’t use chatbots

Same with your retail example.

And a million others.

And take your second example, with dresses.

What kind of events does it understand? There has to be a limited number of event types it knows, it’s awful that there are infinite types of events, the bot understands practically none of them compared to infinity, and you have to guess how to frame your query to fit in its bag, instead of having a list with a search box for event types.

(comment deleted)
This. Making a chatbot isn't difficult. Making a competent one that users can comfortably interact with is extremely difficult.
> pip install chatterbot

well yes but

I understand what you are saying here ;)
Not used it yet but: https://botman.io
Really Sorry, but PHP is so old school
Have you looked at PHP7? It’s quite an improvement over the old PHP
Not yet. Maybe I will take a look.
soon PHP8 with JIT...

It's come a long way since PHP5.

Sample applications are rarely difficult to make. I built a bot as an experiment for my team (https://m.me/PigeonCorps) and we've run into a lot of issues that fall outside of intent classification and response. The most complex issues related to non-trivial chatbots (or atypical chatbots) in my experience have been:

  - session management
  - horizontal scaling
  - dealing with platform changes
  - dealing with platform downtime/bugs
  - hierarchical data presentation
  - matching intents within hierarchical/nested flows
I agree, however, that most chatbots we see are not incredibly complicated, however, I think the typical points that are emphasized in these types of articles (intent classification) are not the hard parts.
Agree. But most of the functional chatbots we see on websites are using intent classification only.

In my view, this is mainly because we haven't yet reached the stage where we can create intelligent chatbots. So we make do with rule-based. Sort of Chat based IVR services.

We might be able to do better in the future that's the plan.

I've recently built a barebones chatbot. I took a different approach than most, given that I elected not to do any NLP. This is excusable based on the requirements for the bot — it's going to be part of an interactive theater piece, and its purpose will be to convey specific plot information.

My bot operates off of keyword matching only. There's a web interface to edit "exchanges," which act like a directed graph from message to message.

My chatbot struggles when things are not phrased in the right way (for instance, it has trouble with negatives, as in "I am not well today"). The exchanges that we're designing for the theater piece have to be carefully worded to try to avoid encountering problems like these.

Overall, I think my chatbot is a good tool for its specific application.

I totally agree. Command based bots might be the way to go for simple applications. Banks might do very well with command based bots. They know most of the questions being asked by the customer, why not automate the process.

For developers, this could be fun too. One idea is to run a chatbot script on all the servers and every time I have to run system commands I can do it straight from telegram.

Why is this better than a form?

Geico did something similar. Instead of auto filling one form, you get to have 15 parts.

It’s very simple to me as a user: if your chatbot is simple enough to be easy to implement, it should be a form.

If it’s hard to implement with NLP and what not odds are discoverability will suck, complex operations will fail, and your bot will drive general unhappiness in the world.

Off-topic here but I actually am annoyed by the capital letter 't' from "Think"
haha. Why? I Am not good at grammar.
Question to HN. How do you feel about chatbots?

Every time I encounter one, I backtrack and search for a phone number or email or twitter or anything else. To me, chat bots are an opaque interface on top of a flowchart with no discoverability. Might as well just give me the damn flowchart.

I feel like chatbots are an innovation in the field of cost reduction for businesses, but a huge step back in terms of customer experience. What are your opinions?

Yep, basically. We had a few chatbot products for some pretty popular media brands, they noted little to no engagement. Alexa, on the other hand, seems to get engaged a lot, even though in theory it suffers from the same problem.
I agree. They do reduce customer experience.

Most of the websites that employ these are using it in some form of an IVR Anyways when I end up calling such sites I get stuck with IVR.

And I like it better to type than pressing numbers on the phone and listening to that automated and slow voice.

Thats a massive selection bias!

I've used chatbots multiple times. Its just that they are flow specific.

Did I say I'm speaking for all applications using chatbots? No, I related a specific experience/product/company. Of course it's biased!

Chatbots can be useful, but this just wasn't the case for our audience (which is very mainstream oriented)

I referred particularly to the success of Alexa: people that buy Alexa choose to use it.

I agree with the lukewarm results of chatbots in most applications.

If I were Global Dictator of UX, I'd mandate that every chatbot accept an "eject" or "escape" command. This would take the user to a plain old HTML form with the information already filled out to the extent that was provided within the chat.
I really enjoyed https://woebot.io/ for a few months. I was really surprised at its depth when I kept on discovering new flows after weeks of interacting with it daily.

But that kind of chatbot is surely an exception. And Andrew Ng is the chairman of WoeBot, so I expected it to be good quality.

It seems good. Will check up on it
The big difference here is that the bot is the product. (An interesting one at that!)

What I find utterly annoying is a chatbot popping on some software webpage, reducing my field of view and interrupting my progress toward the documentation/download/career/whatever section. In this case I find it an overly hyped widget that I absolutely do not need.

(comment deleted)
There are specific use cases for which chatbots are great. Lemonade insurance is great application of a chatbot.

What could have been a traditional application form has been made significantly better by a contextual chatbot. It's also definitely better than talking on the phone.

I guess the meta learning is, if the answers are discrete values and the follow up questions are contextual, chatbots can be great.

Most Chatbots I know are just an interactive search for a website/documentation. If it works, good, saves the trip to google; if not, I can still ask the bot for other ways to communicate. Why bother with a human when when it just costs more time?
To me, chatbots are the next incarnation of IVRs. Their only purpose is to widen the gap between you and an actual human in a support context.

And I wish people would stop saying their bots have AIs. I've had more meaningful conversations with a dog than a bot. :)

The hard part is not making (launching) the bot, but maintaining it and making sure it stays usable and useful. A very important piece that is missing from many open-source chatbot frameworks is some sort of web-based administration tool.

You need a tool that is capable of the following:

- Collecting analytics about each session, so that you can notice user problems early.

- Providing an interface for improving your training dataset using new data from actual user interactions.

- Evaluating the model after each update (simple accuracy metrics are not good enough; it is possible to maintain good accuracy and have one of your core flows messed up after re-training).

Even when you have an admin tool capable of these, you need one or more people (depending on the size of the bot) to review historical sessions and curate newly generated training data almost daily.

I thought chatbots were "the cool thing" in 2016/2017, and are out of favor again now.
Hi, Joel here, I'm founder of a conversational platform here in Brazil (Ubots). In fact launching a bot should not be a technically complex task. On the other hand there are several disciplines where the complexity resides, such as dialog management, dialog state tracking, analytics (decision support), and mainly designing conversations which actually solve people problems in a simple manner, given that the big picture can become increasingly complex over time (if you want some control over it). There are also less supervised approaches where you normally need less / none intervention, but the more unsupervised it is, the less control you have.
But is bing the first search engine you've ever chat to???