ChatFrom's open-source engine
Updated
chatbot-engine, the Apache 2.0 service that writes ChatFrom's answers: what it does, running it yourself, and why it is open source.
What is chatbot-engine?
chatbot-engine is the open-source service that writes ChatFrom's answers. Every chatbot on chatfrom.io, in its website widget, its share page and its chat apps, is answered by it. It is published under the Apache 2.0 licence at github.com/rouzbeh-abadi/chatbot-engine.
It is the AI part of a chatbot: retrieval from a knowledge base, prompting a language model, streaming the answer, and the loop in which the model calls tools and reads their results. It is one stateless HTTP service, in a Docker container.
What does the engine do?
- Answers from your documents: documents are cut into passages and indexed; each question is answered with hybrid retrieval, which combines meaning-based search with keyword search, followed by an optional rerank.
- Calls tools over MCP: the model can call tools that run in your own backend, limited to the tools each request allows.
- Streams answers: with the sources, tokens, tool calls and cost of each answer.
- Any model: the model is chosen per request, through OpenRouter.
- Any language: a question in one language is answered from documents in another.
- Workflows: a request can carry a workflow, a graph of steps (retrieve, model, condition, tool, reply, hand-off), which the engine runs with LangGraph.
- Files in the conversation: it reads a PDF, text, Markdown or image a person sends mid-conversation.
It is written in Python with FastAPI and LangChain, stores vectors in Chroma, and is tested with RAGAS evaluations.
Can I run ChatFrom myself?
You can run the engine yourself: it is a Docker container with an HTTP API, and your own backend sends it the prompt, the model and the tools for each request. The dashboard, the website widget, the chat app channels, the connections and billing are ChatFrom's hosted product and are not open source.
Why use ChatFrom instead of running the engine?
The engine is the brain. ChatFrom is everything around it: the dashboard to manage knowledge and behaviour, the website widget and share link, WhatsApp, Telegram, Slack, Discord, Crisp and email, the Shopify, Stripe, Google Sheets, Cal.com and Calendly connections, workflows on a canvas, conversations, analytics and evaluations, with hosting in Frankfurt. Running the engine yourself means building all of that.
Why is the engine open source?
So anyone can read exactly how retrieval, tool calling and workflows work, rather than trust a black box. Most chatbot platforms keep that part closed.