So you want to build your own open source chatbot
hacks.mozilla.org
hacks.mozilla.org
Having a talking FAQ page is, in my opinion, trying to compensate for lacking UX practices, and chances are that if the business didn't include the information I am seeking for in their website, they won't include it in the chatbot.
That said, I think that chatbots could assist customers in getting in contact with the right representative, but trying to have chatbots as a wall between getting human help is imho an anti-pattern
Let's say you've got 200 pages of documentation on a product that needs to be well organized. You can spend weeks tracking how users interact with the page and working out a perfect layout of categories and subcategories, or you can fine tune an LLM on it and have it answer any query with both a direct problem-tailored answer and the actual pages of the doc where it sourced the answers from.
That way even if you don't even know what exact keywords to search for it should be able to give you an instant solution for almost anything even if the answer is a combination of like 8 different subpages in different categories that would've taken you an hour to find manually.
And some FAQs are so opaque and/or lengthy that even just a talking FAQ is very useful.
You and I both, but it sure does seem that the majority of their calls/interactions are not this way. So many people can't search/discover content on their own.
For instance with Stripe. With the reference you don’t have a complete example of how to integrate it into express.js.
Using a vector search library & open ai or other llms you could make a very complete dev support tool.
For both docs and chatbots, quality is just a question of how much the company is willing to invest.
We use a chat bot because we simply do not have the support staff to answer your questions.
So you get the bot --it's either that or nothing.
But what we do do, is monitor the bot logs. If a function is missing from the product or website, we add it so that future users can fully self-service.
It's important to note, users are free to cancel their account at any time and/or get a refund.
Also, in a few years when done right I actually suspect people will start expecting and preferring bots to reading docs. I’m still pissed when I get connected to a bot but I think they’ll soon get good enough.
There's no reason to not have a chat bot at this point, other than cost.
Surely if there is truly a bug or an unexpected system behavior (double billed, etc) you would have someone work with the customer? This is one of the biggest pain points for using Google products.
They have infinite patience and will explain anything in great detail.
The one I am using for support does not hallucinate, will link the appropriate docs in the answer and tells the user if they cant answer a question and will escalate to human support.
IMO this is the future and I think its a huge improvement over the status quo.
Its not free but well worth it IMO.
for businesses selling chatbots to other businesses.
You're a bad user
Termination authorized
Bots may be annoying but they can also save the company tons in custer support costs. I’m for it if the UX is good and I can quickly contact an agent if the bot can’t answer my question. This is assuming the bot won’t hallucinate and just tell me random fake facts.
What you want is to be understood and treated like you’re a human with unique needs. You need someone or something to look up your account data, listen, and to act based on your situation. The current tools were never built for this.
The next generation of these CX tools will deliver this. Here are ways that they will be dramatically better for customers and companies: - They will learn from successful interactions in the past and mirror those outcomes - Handle customer interactions based on company policies such as escalating bugs - They will surface new insights for the company - Won’t hallucinate
When you watch any CX agent do their job you’ll witness them utilizing 4-5 SaaS applications to get a simple answer for a customer. The hurdle to adopt Generative AI in a company will require that companies care to build read/write APIs for these tools to utilize.
Similarly Amazon’s chat bot has helped me straighten out a few messed up deliveries.
This isn’t to say that it wouldn’t have been easier to have a point and click UI where I could just select all this on my own, but the way they had it set up wasn’t bad.
Here’s the kicker: when I recently had an Amazon delivery problem I started with the chat bot but then relatively seamlessly transitioned to talking to a human. The human was very quickly able to pick up on the situation and fix it.
That said, and wow I feel like a shill for saying this, I've taken to asking the new GPT4-driven Bing random questions instead of web searching and damn if it's not doing a scarily good job. I'd do this before (ever since I got access) and it started out very interesting and then got rapidly very mediocre, but since the upgrade... it's like being able to talk to The Internet except it's friendly.
I automatically call certain companies rather than try to use their website because get this their website sucks. If I encounter any automated chat support, I will stop using the website and call a person.
I went from 10 years ago doing everything online myself, to now calling by default calling almost every company, because companies and their websites now universally suck. Because they’ve made the foolish mistake of thinking people are all the same and don’t respond to incentives. Some companies are better, I will give my business to them when I have a choice.
You sound like someone who has never worked in frontline support.
An LLM is basically perfect to answer these. It would be nice if there was improvements to detection that the bot can not directly answer the question.
The solution here is to increase the 0.01% by helping them, not try to destroy them.
[0] https://web.archive.org/web/20201109003408/https://www.nosup...
Sure, there are cases where a chat bot could replace a human or a well-written FAQ. But this navel-gazing overlooks the main reason support is so dreadful: because it’s designed to be.
Just take “call to cancel” as an example, and compare that to signing up or upselling which is technically more difficult problems. The point is to add friction for anything perceived as a short-term cost or loss. They know that a lot of people will give up or defer anything with friction. It’s the paradigm of nudging, or dark patterns. Look at eg the cookie banners, and how “reject all” is buried in most cases. Nudging allows a company to be compliant with the law, but evade the effect of it in aggregate, at the cost of your time and attention.
Chat bots is just another layer in the support maze.
Working at SaaS companies I've seen countless "somewhat fluid" exchanges of information between customer -> support -> product -> developer -> support -> customer -> support -> dev, etc. The different modes of communication and long round trip times make things slow, bug reports take minimum of hours, up to weeks to absorb and resolve.
This is just one case but there are boxes drawn everywhere. Every level of intelligent organization within the society, including it's artifacts, has assumptions baked in. Now that the unit economics of applying `intelligence()` is being shifted by orders of magnitude, there's all sorts of stuff that's ripe for recrafting.
Disclaimer: Don't give HelperBot launch authority to offensive weapons etc. You know, make decisions consistent with a world line where the continuation of the civilization is pretty darn likely. Unless of course your project is to replace the current civilization, ... I don't know. Just don't do what Donny Don't does.
They are already quite common and frustrating, but at least they realize it doesn't even understand the question half the time so there is a human escape hatch.
"Computer says no" is here.
Edit: so I'm not just negative and off topic, the article looks pretty good, kudos to the author. The engineering is cool, I just don't like the practical usage.
Google just had a net income for the quarter of $18B. Why do we accept the tepid to non-existent support of these companies? How much support does $1B cover?
'Cheap' support is typically terrible to the point of being worse than a chatbot, generally due to the terrible pay and conditions. As support engineers get good they generally move to higher paying jobs leaving a dead sea effect at the lower pay scales.
And when it's undercooked I want the confirmed(tm) human to soothe me.
We have been trialing this with our support team for awhile and a lot of higher execs were ready to sign off and dump rather large sums on some models, but eventually we were able to convince them to delay; the bots are just too prone to convincing but wrong answers, and our buy-in from clients is way too polarized: either they uncritically believe the bot or they are overly skeptical of the bot.
the tech is very cool, but I don't think that the technology or humans are at a place yet where it's ready for full on use outside of very controlled situations. I could see it being very useful as an addition to search fields or to maybe monitor the user's search inputs/actions and based on what the user is looking up, show some context-aware prompts.
What I'd really like to see is a bot that is extremely skeptical and shows the user its skepticism in an unambiguous manner; classify the data and make an internal flag where if the bot's skepticism is above a certain threshold, it finds knowledge holders it's aware of to work through the bot's skepticism and never act on the information until the bot has lowered the skepticism value after checking.
right now my experience with the bots I've played with is that they either just shut down the conversation without advancing it or giving the user paths for research forward, or the bot confidently just pumps out any answer it makes that fits as a response for the given query, and I think we need the bots to show skepticism and explain to the user what this skepticism means. (i.e., the user should be alerted that the bot isn't confident on an answer, why the bot isn't confident, alternatives that the bot understands to be equally relevant or worth consideration.
it can still be polite, but the bots need to share when they're out of their league and work to correct it; I think people will actually appreciate it, and the bots are well suited to this position because they have no emotional stake in the game, so users can get as upset as they want that they don't have immediate disagreement, the bot won't change its position just because the user is upset.
“Sorry judge, my whole plead was nonsense and I quoted law articles that didn’t even exist, but that’s just because I used ChatGPT” — actual lawyer who wasn’t even disbarred.
Without human you just get a powerless regurgitation of FAQ and links that can't help in situations they didn't anticipate.
In support calls the confused user rarely has all the information they need to present to the person solving/finalizing the transaction and a bot can help reduce the human time needed.
So you know what the fastest way is sometimes? Shooting off a support ticket so I don't have to be the one spending my time searching for the answer.
I don't know if there's a perfect solution to all of that but IMO there's certainly an issue if I have to google for information for the business site that I'm on. Chatbot, universal search, better UX, a source of truth, something... What I do know is 20 different subdomains with 20 different UXs and 20 different searches isn't good for the business or the user.
It depends on the size is the org in question, but at some point docs existing and being indexed is still not enough to find them. On the extreme side of that, AWS has docs for pretty much everything - yet I often fail to find the right page, simply because there's too much content and there's lots of pages talking about related things but not answering my question.
Sometimes it's missing docs, sometimes it's lack of searching, sometimes the most viable path to the answer is through support. (Amazon has TAMs for that purpose)
Totally agree and I feel for any any support staff, small or large, as it is unfair. I guess my point is insanely large, highly profitable organizations probably have a UX problem along with a much larger greed problem. No one should be stuck chatbotting or having non-existent support if they are a paying customer with Google.
To be honest, I've had some good experience with some of them.
Amazon's comes to mind. I've been a customer for a long time, and I was shipped a faulty computer peripheral recently.
I briefly explained what the issue was to the chatbot and got an immediate response that a new order had been placed, that I should just keep what they originally sent me, there was no charge and it would be sent out priority.
And that was it. It arrived the next day and it worked fine.
Granted, it knew I was a long-time customer who has already spent a lot of money with them, but this was about as painless an experience as I can imagine. It sure beat clicking through multiple web pages of dialog options.
And same goes for OSS libraries.
FWIW the announcement reads very boring to me but I guess I was expecting something else. Likely won't be super useful in a small-medium size company.
[1] https://stackoverflow.blog/2023/07/27/announcing-overflowai/
Even for things like support case generation for customers would be good... the customer interacts with the AI generating the ticket and gets the simple things like what you're running on and a more drilled down issue of the problem.
I get so many "I have problem, help" tickets with no information at all.
Nitpick, and clearly off topic, but right now I don't love "the web".
It's increasingly controlled by a handful of companies. They dictate what content is made visible (meta, google) or what email goes to the spam filter (ms, google).
Right now I don't love the web, far from it. It's a constant struggle to be heard even by the people who chose to follow your activity.
Essentially, most of my communication happens in real life or in private chats. (Also, have I said how messenger for business is terrible and unreliable?)
To me, something needs to happen to the web as it is today. I don't know what, I don't know how, but I certainly welcome change.
(If you're feeling technical, you could set up an ActivityPub bridge, to let people follow you from social media too. If you're using Wordpress: https://wordpress.org/plugins/activitypub/)
We had a chatbot at work that actually was great. For me it felt a lot better than searching Confluence and it could also answer questions from dynamic data like how many vacation days I had left or how many hours I was ahead or behind with my hours.
Thanks to some smart use of technology behind the scenes IIRC I could ask it in normal language and most of the time it would understand.
I can't remember exactly, but I know it was a couple of years or more ago so pre ChatGPT / Bard and all that.
Search is meant to help humans find what they need to find. If your search function doesn't (and Confluence's sure as hell doesn't) then it's bad. And arguably, plain mislabeled because it's not performing searches. At best, it's grepping.
It’s difficult to infer importance based on a couple of thousand documents at most.
9 out of 10 the website doesn't want to give their phone number easily or cancel your subscription. Unless you want customers to perform those actions that you are hiding in the first place, what's the Chatbot for again?
Note: I worked in the chatbot frenzy and had to let several clients there wasn't much we could do unless they were willing to actually help customers.
A user should be able to talk with a business over SMS (or similar) chat or phone call over a single identity.
Web and Mobile apps are just the 2nd/3rd leyer utilities to support the primary mode of communication.
Business couldn't do this earlier because the language understanding accuracy wasn't sufficient. The large language models (LLMs) solved that limitation.
The small reduction bots can bring about in human agent interactions, through the experience gimmickry is cherry on the top. The % deflection is getting a bit bigger with the better large language models (LLMs).
The irritating chatbot widget that sits on the bottom right corner is a stop gap until the provisioning of a single phone number and communicaton over that is streamlined.
Last but not least, the title is misleading. He is not building an open source chatbot. He is just saying build chatbots using open source libraries only (instead of closed source/commercial tool) to foster community and faster AI progress.
How is setting up a server inside Google's infrastructure "private and fully under Mozilla's control" ?
explaining how to self-host on bare metal is not really within scope for an article on how to build a chatbot, and trying to pretend a VPS on google cloud is insecure is just silly.
ISO 27001: An internationally recognized standard for information security management systems (ISMS). GCP's compliance with this standard demonstrates its commitment to information security.
ISO 27017: Specific to cloud security, this certification focuses on the controls specific to cloud service providers.
ISO 27018: This standard is related to the protection of personally identifiable information (PII) in public clouds.
SOC 2: GCP's SOC 2 report can provide assurance about the controls they have in place related to security, availability, processing integrity, confidentiality, and privacy.
HIPAA: If you're dealing with healthcare information, you'll want to ensure that GCP is compliant with the Health Insurance Portability and Accountability Act (HIPAA).
GDPR: For operations in Europe or with European citizens' data, compliance with the General Data Protection Regulation (GDPR) is crucial.
FedRAMP: For U.S. government customers, GCP's Federal Risk and Authorization Management Program (FedRAMP) compliance might be essential.
PCI DSS: If you're handling credit card information, Payment Card Industry Data Security Standard (PCI DSS) compliance is crucial.
Ensure that the services you plan to use within GCP are covered by the relevant certifications for your industry or use case. These certifications are typically available on the Google Cloud website and can also be provided by Google's sales or support team if you need official documentation.
Big challenge with this set up is doing the semantic similarity search at scale. Pinecone has some good docs on their data structures for scaling large vector databases
What are some of the things that make this tough or different? I was under the impression that your still running web apis that load a compiled asset(the model). It doesn't seem much different in that way
> we were able to accomplish most of our needs with a relatively small volume of Python code that we wrote ourselves
Every single time someone posts a trip report building something on LLMs I love to ctrl+f to the part where they tried and abandoned langchain.
Don't.
If you can't help yourself, at the very least put in a bypass code word. https://xkcd.com/806/
“Here are ten reasons why I don't build my own chatbot, and why you shouldn't either.”
This is a crazy point of view