How to Build Your Own AI Chatbot for Free
Every business wants a chatbot, and every agency charges $5,000 to build one. Here's the thing: you can build a genuinely useful AI chatbot for zero dollars using free tools — and you can do it this weekend. I'm not talking about a glorified FAQ button. I'm talking about a chatbot that answers questions from your documents, your way.
This guide covers four paths, from "no code at all" to "full control with Python↗ Bright Coding Blog," so you can pick what matches your skills. The core concept you need to learn is called RAG — retrieval-augmented generation. It's what separates a real chatbot from a toy.
TL;DR: Key Takeaways
- RAG (retrieval-augmented generation) is the key idea: your documents get searched, and the results are fed to an LLM as context. That's how a chatbot "knows" your business.
- Four free paths: Botpress (visual, hosted free tier), Chainlit/Streamlit + Python (code), LangChain (frameworks), or a plain API chatbot (simplest).
- The full free stack: a local LLM (Ollama) + a vector store (ChromaDB) + Python = zero API costs.
- Expect ~90% answer quality on well-covered topics with a good prompt [VERIFY: varies with model, docs, and query types].
- The expensive part isn't the code — it's the knowledge base. Garbage documents in, garbage answers out.
First, the Mental Model: What's Actually Going On?
A plain LLM chatbot has no idea who you are or what your business does. It knows the internet, not your docs. RAG fixes this in three steps:
- Ingest. You split your documents into chunks and store them in a vector database (a database that searches by meaning, not keywords).
- Retrieve. When someone asks a question, the system finds the most relevant chunks — by embedding the question and finding the closest matches.
- Generate. The LLM answers using only the retrieved chunks as context.
That's it. You've built RAG. Everyone charging $5k for a "custom AI chatbot" is essentially selling this pattern wrapped in a nicer interface.
Choose Your Path
| Path | Coding needed | Hosting | Best for | Free tier |
|---|---|---|---|---|
| Botpress | None | Cloud (their servers) | Non-coders, quick deployment | Yes, generous free tier [VERIFY] |
| Chainlit + Python | Moderate | Your machine or free hosts | Hackers, tinkerers, prototypes | Fully free |
| LangChain + Ollama | Moderate–high | Local | Local/private chatbots | Fully free |
| Plain API chatbot | Minimal | Anywhere | Simplest MVP, script-style | API costs only |
My recommendation: if you can't code, use Botpress. If you can code (or want to learn), build the Chainlit + Ollama version — it's free forever and teaches you the pattern that powers every serious chatbot.
Path A: The No-Code Route (Botpress, ~1 Hour)
- Create a free Botpress account at botpress.com.
- Start a new bot and choose the "AI agent" template (or a blank one).
- Upload your documents (FAQ PDFs, website content, product docs) into the Knowledge Base tab.
- In the Nodes editor, add a Knowledge Base node as the default answer path. Set a fallback: "I'm not sure — here's how to contact us."
- Test in the chat preview, then publish. You get an embed script to put on your website.
The gotcha: Botpress's free tier has limits on messages and knowledge-base size [VERIFY: limits change — check the current pricing page]. For a small business FAQ, it's usually plenty.
Path B: The Free-Forever Code Route (Chainlit + Ollama)
This is my favorite — zero recurring cost, full ownership. You need Python installed.
Step 1: Install the pieces
pip install chainlit chromadb ollama
ollama pull llama3.2
Step 2: Write the chatbot (create app.py)
import chainlit as cl
from openai import OpenAI
import chromadb
client = OpenAI(base_url="http://localhost:11434/v1", api_key="x")
chroma = chromadb.Client()
collection = chroma.get_or_create_collection("docs")
@cl.on_chat_start
async def start():
await cl.Message(content="Ask me anything about our docs!").send()
@cl.on_message
async def main(message: cl.Message):
# 1. Retrieve relevant chunks by meaning
results = collection.query(
query_embeddings=[embed(message.content)],
n_results=4,
)
context = "\n\n".join(r for r in results["documents"][0])
# 2. Generate an answer grounded in those chunks
response = client.chat.completions.create(
model="llama3.2",
messages=[
{"role": "system", "content":
"Answer using ONLY the context provided. If the context "
"doesn't answer the question, say you don't know."},
{"role": "user", "content": f"Context:\n{context}\n\nQuestion: {message.content}"},
],
)
await cl.Message(content=response.choices[0].message.content).send()
Step 3: Load your documents (create load_docs.py)
import chromadb
chroma = chromadb.Client()
collection = chroma.get_or_create_collection("docs")
# Split your documents into chunks of ~500 words (this is the critical step)
chunks = split_documents("path/to/your/files") # see notes below
ids = [f"chunk-{i}" for i in range(len(chunks))]
collection.add(
documents=chunks,
ids=ids,
embeddings=[embed(c) for c in chunks], # vector embeddings
)
Run python load_docs.py once, then chainlit run app.py. Open the URL it prints. You have a chatbot. Free. On your machine.
What nobody tells you about the embed step: you don't strictly need a fancy embedding model. A local embedding model from Ollama (ollama pull nomic-embed-text) works fine for most knowledge bases. And chunk size matters more than anyone admits: chunks of 300–600 characters with ~50-character overlap work best for FAQ-style docs.
Step 4: The Secret Ingredient — Your Knowledge Base
I'll say it again because it's the most common failure point: the quality of your chatbot equals the quality of your documents.
- Chunk well. Don't stuff a 50-page manual into one vector. Split into sections.
- Clean first. Remove navigation text, boilerplate, and outdated sections before ingesting.
- Watch your gaps. If customers ask questions your docs don't cover, the bot will confidently hallucinate. Add a fallback to human contact for out-of-scope queries.
- Test with real questions. Ask it the top 20 questions your support team actually receives. You'll find holes fast.
Real-World Examples
- Course creator's FAQ bot. A coach loaded her syllabus, refund policy, and 30 most-asked questions into Botpress and embedded it on her landing page. Support emails dropped meaningfully [VERIFY: anecdotal].
- Internal HR bot. A small team loaded their employee handbook into a local Chainlit bot. New hires ask about PTO, expenses, and benefits — no HR middleman needed.
- Real-estate listing assistant. An agent indexed 200 property descriptions and hooked the bot to his website. Buyers ask "which units have a pool and allow pets?" and get honest, filtered answers.
- SaaS documentation copilot. A startup indexed their API docs. Users get grounded answers instead of the dev team repeating themselves on Discord.
- Personal knowledge bot. A researcher built a chatbot over 3 years of meeting notes and papers. "What did I decide about pricing in March?" — instant answer, entirely local.
The Honest Trade-Offs
Pros:
- Zero monthly cost with the local stack
- Total data privacy (nothing leaves your machine)
- Answers grounded in your docs, not generic AI knowledge
- You learn a marketable skill in the process
Cons:
- Small local models still hallucinate occasionally — always show sources or a "don't know" fallback
- Vector search can retrieve the wrong chunks (embedding quality matters)
- Document prep is real work, and it's on you
- Hosted paths (Botpress) cost money as you scale [VERIFY: pricing tiers]
Who this is for
- Small businesses with repetitive support questions
- Developers wanting a free, private chatbot
- Course creators and service providers
Who it's NOT for
- Anyone expecting a finished product with zero document prep (nope, that work is yours)
- Enterprise deployments needing SSO, auditing, and SLA guarantees (use commercial platforms)
FAQ
How is a chatbot free if I use an LLM? If you use a local model (Ollama), inference is free — just electricity. Cloud LLMs cost per token, so "free" usually means a free tier with limits. The code itself costs nothing.
What's the difference between RAG and fine-tuning a chatbot? RAG retrieves your docs at query time — no training, instant updates, no hallucination of your specific content. Fine-tuning reshapes the model's behavior and tone, but it's more expensive and doesn't add factual knowledge well. For most business chatbots, RAG wins.
Can I put this on my website? Yes. Botpress gives you an embed script. For the Chainlit version, you can host it on free tiers of services like Render or Railway [VERIFY: free tiers exist with limitations], or on your own VPS.
Which chatbot framework is best in 2026? Botpress for no-code. LangChain/LlamaIndex if you're building complex multi-step agents. Chainlit if you want a clean chat UI with minimal boilerplate. There's no single "best" — it depends on your skills and use case.
Conclusion: Ship Your Chatbot This Weekend
The pattern is simple: documents in, embeddings, retrieve, generate, fallback to human. Whether you choose the no-code Botpress route or the free Chainlit + Ollama stack, you can have a working chatbot in a weekend — and it'll cost you exactly zero dollars a month.
Try this: start with one narrow, well-documented topic (your FAQ). Build it, test it with 20 real questions, fix the gaps, then expand. Tell me in the comments what you built — and subscribe for the next guide: making your chatbot a full AI agent with tools and actions.
Outils recommandés
Explore on the BrightCoding network
Hand-picked resources from our other sites.
Best AI Chatbot Builders: Free vs Paid Compared
Everyone wants a chatbot. Almost nobody needs one — at least, not until they've answered the question "what is this bot actually for?" The chatbot builder...
AI Automation Workflows: The Ultimate Guide to Building Powerful Systems with Prompts and Visual Canvas
Discover how to revolutionize your productivity with AI automation workflows using prompts and visual canvas. This comprehensive guide covers everything from s...
Building AI Workflows Visually with Drag-and-Drop
A deep dive into Tersa, the open-source canvas that turns AI experimentation into Lego-like play. 1. The Problem: AI is Powerful, but the UX is Broken...
Continuez votre lecture
Commentaires 0
Aucun commentaire pour l'instant. Soyez le premier à réagir !