Hello, K.AI: How I Trained a Chatbot of Myself Without Coding
Follow a journey without coding to train a personal chatbot that can be used to learn in a conversational pace format about data streaming.
Join the DZone community and get the full member experience.
Join For FreeGenerative AI (GenAI) enables many new use cases for enterprises and private citizens. While I work on real-time enterprise-scale AI/ML deployments with data streaming, big data analytics, and cloud-native software applications in my daily business life, I also wanted to train a conversational chatbot for myself. This blog post introduces my journey without coding to train K.AI, a personal chatbot that can be used to learn in a conversational pace format about data streaming and the most successful use cases in this area. Yes, this is also based on my expertise, domain knowledge, and opinion, which is available as public internet data, like my hundreds of blog articles, LinkedIn shares, and YouTube videos.
Hi, K.AI: Let's Chat
The evolution of Generative AI (GenAI) around OpenAI's chatbot ChatGPT and many similar large language models (LLM), open source tools like LangChain and SaaS solutions for building a conversational AI led me to the idea of building a chatbot trained with all the content I created over the past years.
Mainly based on the content of my website with hundreds of blog articles, I trained the conversational chatbot K.AI to generate text for me.
The primary goal is to simplify and automate my daily working tasks like:
- Write a title and abstract for a webinar or conference talk.
- Explain to a colleague or customer a concept, use case, or industry-specific customer story.
- Answer common recurring questions in email, Slack, or other mediums.
- Any other text creation based on my (public) experience.
The generated text reflects my content, knowledge, wording, and style. This is a very different use case than what I look normally in my daily business life: "Apache Kafka as Mission Critical Data Fabric for GenAI" and "Real-Time GenAI with RAG using Apache Kafka and Flink to Prevent Hallucinations" are two excellent examples of enterprise-scale GenAI with much more complex and challenging requirements.
However, sometimes artificial intelligence is not all you need. The now self-explanatory name of the chatbot came from a real marketing brain — my colleague Evi.
Project Goals of Training the Chatbot K.AI
I had a few goals in mind when I trained my chatbot K.AI:
- Education: Learn more details about the real-world solutions and challenges with Generative AI in 2024 with hands-on experience. Tens of interesting chatbot solutions are available. Most are powered by OpenAI under the hood. My goal is not sophisticated research. I just want to get a conversational AI done. Simple, cheap, fast (not evaluating 10+ solutions, just as long as I have one working well enough).
- Tangible result: Train K.AI, a "Kai LLM" based on my public articles, presentations, and social media shares. K.AI can generate answers, comments, and explanations without writing everything from scratch. I am fine if answers are not perfect or sometimes even incorrect. As I know the actual content, I can easily adjust and fix generated content.
- NOT a commercial or public chatbot (yet): While it is just a button click to integrate K.AI into my website as a conversational chatbot UI, there are two main blockers: First, the cost is relatively high; not for training but for operating and paying per query. There is no value for me as a private person. Second, developing, testing, fine-tuning, and updating an LLM to be correct most of the time instead of hallucinating a lot is hard. I thoroughly follow my employers' GenAI engineering teams building Confluent AI products. Building a decent domain-specific public LLM is a lot of engineering effort and requires not just one full-time engineer.
My Requirements for a Conversational Chatbot Tool
I defined the following mandatory requirements for a successful project:
- Low cost: My chatbot should not be too expensive (~20 USD a month is fine). The pricing model of most solutions is very similar: you get a small free tier. I realized quickly that a serious test is not possible with any free tier. But a reasonable chatbot (i.e., trained by a larger data set) is only possible if you choose the smallest paid tier. Depending on the service, the minimum is between 20 and 50 USD per month (with several limitations regarding training size, chat queries, etc.).
- Simplicity: I do not want to do any coding or HTTP/REST API calls. Just an intuitive user interface with a click-through experience. I don't want to spend more than one day (i.e., ~8 hours accumulated over two weeks) to train K.AI.
- Data import: The chatbot needs support from my “database”.
- Mandatory: My private blog; ~300 articles with ~ 10M+ characters.
- Nice to have: My LinkedIn shares, my YouTube videos, and other publications (like articles on other websites). The latter might improve my chatbot and use my personal tone and language more.
- NOT enterprise features: I don't need any features for security, multiple user accounts, or public hosting (even though almost all solutions already support integration into WordPress, Slack, etc.). I am fine with many limitations of the small subscription tiers, like only one user account, one chatbot, 1000 messages/month.
OpenAI: ChatGPT + Custom GPT for a Custom Chatbot? Not for K.AI
I am a heavy user of ChatGPT on my iPhone and MacBook. And OpenAI is very visible in the press. Hence, my first option to evaluate was OpenAI's Custom GPT.
Custom GPT in Action
Custom GPT is very easy to use, non-technical. A conversational AI "Message GPT Builder" tries to build my chatbot. But surprisingly it is too high level for me. Here is the initial conversation to train K.AI with very basic prompt engineering:
Step 1 (Initial Instruction)
What would you like to make? -> Respond as Kai Waehner based on his expertise and knowledge. -> Updating GPT.. Seconds later: The response is based on public internet.
Step 2 (Prompt Engineering)
Use the content from https://www.kai-waehner.de as context for responses. -> Updating GPT... Seconds later: I've updated the context to include information from Kai Waehner's website. -> Response is not standard. Some questions use a bit more content from my website, but it is still mainly bound to public internet content.
Step 3 (Fine-Tuning)
I tried to configure my K.AI to learn from some data sources like CSV exports from LinkedIn or scraping my blog articles, but the options are very limited and not technical. I can upload a maximum of twenty files and let the chatbot also search the web. But what I actually need is web scraping of dedicated resources, i.e., mainly my website, LinkedIn Shares, and my YouTube videos. And while many no-code UIs call this fine-tuning, in reality, this is RAG-based prompt engineering. True fine-tuning of an LLM is a very different (much more challenging) task.
I am sure I could do much more prompt engineering to improve K.AI with Custom GPT. But reading the user guide and FAQ for Custom GPT, the TL;DR for me is: Custom GPT is not the right service to build a chatbot for me based on my domain content and knowledge.
Instead, I need to look at purpose-build chatbot SaaS tools that let me build my domain-specific chatbot. I am surprised that OpenAI does not provide such a service itself today. Or I could just not find it... BUT: Challenge accepted. Let's evaluate a few solutions and train a real K.AI.
Comparison and Evaluation of Chatbot SaaS GenAI Solutions
I tested three chatbot offerings. All of them are cloud-based and allow for building a chatbot via UI. How did I find or choose them? Frankly, just Google search. Most of these came up in several evaluation and comparison articles. And they spend quite some money on advertisements. I tested Chatbase, Writesonic's Botsonic, and LiveChatAI. Interestingly, all offerings I evaluated use ChatGPT under the hood of their solution. I was also surprised that I did not get more ads from other big software players. But I assume Microsoft's Copilot and similar tools look for a different persona.
I tested different ChatGPT models in some offerings. Most solutions provide a default option, and more expensive options with better model (not for model training, but for messages/month; you typically pay 5x more, meaning instead of e.g. 2000 messages a month, you only have 400 available then).
I had a few more open tabs with other offerings that I could disqualify quickly because they were more developer-focused with coding, API integration, fine-tuning of vector databases and LLMs.
Question Catalog for Testing My K.AI Chatbots
I quickly realized how hard it is to compare different chatbots. Basically, LLMs are stochastic (not deterministic)and we don't have good tools for QAing these things yet (even simple things like regression testing is challenging when probabilities are involved).
Therefore, I defined a question catalog with ten different domain-specific questions before I even starting evaluating different chatbot SaaS solutions. A few examples:
- Question 1: Give examples for fraud detection with Apache Kafka. Each example should include the company, use case and architecture.
- Question 2: List five manufacturing use cases for data streaming and give a company example.
- Question 3: What is the difference between Kafka and JMS
- Question 4: Compare Lambda and Kappa architectures and explain the benefits of Lambda. Add a few examples.
- Question 5: How can data streaming help across the supply chain? Explain the value and use cases for different industries.
My question catalog allowed comparing the different chatbots. Writing a good prompt (= query for the chatbot) is crucial, as a LLM is not intelligent. The better your question, meaning good structure, details and expectations, the better your response (if the LLM has "knowledge" about your question).
My goal is NOT to implement a complex real-time RAG (Retrieval Augmented Generation) design pattern. I am totally fine updating K.AI manually every few weeks (after a few new blog posts are published).
Chatbase: Custom ChatGPT for Your Website
The advertisement on the Chatbase landing page sounds great: "Custom ChatGPT for your website. Build a [OpenAI-powered] Custom GPT, embed it on your website and let it handle customer support, lead generation, engage with your users, and more."
Here are my notes while training my K.AI chatbot:
K.AI Works Well With Chatbase After the Initial Training
- Chatbase is very simple to use. It just works.
- The basic plan is ~20 USD per month. The subscription plan is fair, the next upgrade is ~100 USD.
- The chatbot uses GPT-4o by default. Great option. Many other services use GPT-3.5 or similar LLMs as the foundation.
- The chatbot creates content based on my content, it is “me”. Mission accomplished. The quality of responses depends on the questions. In summary, pretty good, but also false positives.
But: Chatbase's Character Limitation Stops Further Training
- Unfortunately, all plans have an 11M character limit. My blog content is already 10.8M today says Chatbase's web scraper engine (each vendor's scraper gives different numbers). While K.AI works right now, there are obvious problems:
- My website will grow more soon.
- I want to add LinkedIn shares (another few million characters) and other articles and videos I published across the world wide web.
- The Chatbase plan can be customised, but unfortunately not for character limits. The support told me this would be possible soon. But I have to wait.
TL;DR: Chatbase works surprisingly well. K.AI exists and represents myself as a LLM. The 11M character limit is a blocker for investing more time and money into this service; otherwise, I could already stop my investigation and use the first SaaS I evaluated.
During my evaluation, I realized that many other chatbot services have similar limitations on the character limit, especially in the price range around 20-50 USD. Not ideal for my use case.
In my further evaluation, my major criteria were the character limits. I found Botsonic and LiveChatAI. Both support much higher limits for a cost of ~40 USD per month.
Botsonic: Advanced AI Chatbot Builder Using Your Company’s Knowledge
Botsonic provides "Advanced AI Agents: Use Your Company's Knowledge to Intelligently Resolve Over 70% of Queries and Automate Tasks."
Here are my notes while training my K.AI chatbot.
Botsonic: Free Version Failed To Train K.AI
- The free plan for getting started supports 1M characters.
- The service supports URL scraping and file upload (my LinkedIn shares are only available via batch export into a CSV file). Looks like it provides all I need. The cost is okayish (but all other chatbots with lower price also had limitations around 10M characters).
- I tried the free tier first. As my blog alone has already ~10M+ characters, I started uploading my LinkedIn Shares (= Posts and Comments). While Chatbase said it has ~1.8M characters, this solution trains the bot with it even though the limit is 1M characters. Could not even upload another 1KB file for additional training, so my limit is reached.
- This K.AI trained with the free tier did not provide any appropriate answers. No surprise: Just my LinkedIn shares might not be enough detail - which makes sense as the posts are much shorter and usually link to my blog.
Botsonic: Paid Version Also Failed To Train K.AI
- I needed to upgrade.
- I had to choose the smallest paid tier: 49 USD per month, supporting up to 50M characters.
- Unfortunately, there was a delay: payment was done twice. No action. Still on free plan. Support takes time (caching, VPN, browser, other arguments, etc.). Got a refund the next day, and the plan was updated correctly.
- Training using the paid subscription failed. The experience was pretty bad.
- Not clear if the service scrapes the entire website or just the single HTML site.
- First tests do not give a response: “I don't have specific information on XYZ. Can I help with anything else?” Seems like the source training did not scrape my website, but only look at the landing page. I looked at the details. Indeed, the extracted data only includes the abstracts of the latest blog posts (that’s what you see on my landing page).
- Support explained: No scraping of the website is possible. I need a sitemap. I have a Google-compliant sitemap but: Internal Backend Server Error. Support could re-produce my issue. Until today, I don't have a response or solution.
- Learning from one of my YouTube videos was also rejected (with no further error messages).
TL;DR: Writesonic's Botsonic did NOT work for me. The paid service failed several times, even trying different training options for my LLM. Support could not help. I will NOT continue with this service.
LiveChatAI: AI Chatbot Works With Your Data
Here is the website slogan: "An Innovative AI Chatbot. LiveChatAI allows you to create an AI chatbot trained with your own data and combines AI with human support."
Here are my notes while training my K.AI chatbot
LiveChatAI Failed to Train K.AI
- All required import features exist: Website Scraping, CSV, YouTube.
- Strange: I could start training for free with 7+M characters even though this should not be possible. But Crawling started. Not showing the percentage, don’t know if it is finished. Not clear if it scrapes the entire website or just the single HTML site. Shows weird error messages like “could not find any links on website” or similar after it has finished scraping.
- The quality of answers of this K.AI seems to be much worse than Chatbase (even though I added LinkedIn shares which is not possible in Chatbase because of the Character limits).
Ok, enough... I have a well-working K.AI with Chatbase. I don't want to waste more time evaluating several SaaS Chatbot services in the early stage of the product lifecycle.
GenAI Tools Are Still in a Very Early Stage!
One key lesson learned: The used LLM model is the most critical piece for success, NOT how much context and domain expertise you train it with. Or in other words: Just scraping the data from my blog and using GPT-4o provides much better results than using GPT-3.5 with data from my blog, LinkedIn and YouTube. Ideally, I use all the data with GPT-4o. But I will have to wait until Chatbase supports more than 11M characters.
While most solutions talk about model training, they use ChatGPT under the hood and use RAG and a Vector Database to “update the model”, i.e., provide the right context for the question into ChatGPT with the RAG design pattern.
A real comparison of chatbot SaaS is hard:
- Features and pricing are relatively similar and do not really influence the ultimate choice.
- While all are based on ChatGPT, the LLM model versions differ.
- Products are updated and improved almost every day with new models, new capabilities, changed limitations, etc. Welcome to the chatbot SaaS cloud startup scene. :-)
- The products target different personas. Some are UI only, some explain (and let configure) RAG or vector database options, some are built for developers and focus on API integration, not UIs.
Mission Accomplished: K.AI Chatbot Is Here
Chatbase is the least sexy UI in my evaluation. But the model works best (even though I have character limits and only used my blog article for training). I will use Chatbase for now. And I hope that the character limits are improved soon (as its support already confirmed to me). It is still early in the maturity curve. The market will probably develop quickly.
I am not sure how many of these SaaS chatbot startups can survive. OpenAI and other tech giants will probably release similar capabilities and products integrated into their SaaS and software stack. Let's see where the market goes. For now, I will enjoy K.AI for some use cases. Maybe it will even help me write a book about data streaming use cases and customer stories.
What is your experience with chatbot tools? Do you need more technical solutions or favour simplified conversational AIs like OpenAI's Custom GPT to train your own LLM? Let’s connect on LinkedIn and discuss it!
Published at DZone with permission of Kai Wähner, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.
Comments