About ChatterBot
ChatterBot is an open source Python library for building conversational software that generates automated responses to user input. It uses a selection of machine learning methods to choose replies: when a user enters a statement, the library stores it along with the statement it answered, and over time it selects responses by finding the closest known statement and choosing from the replies associated with it. An untrained instance starts with no knowledge, and accuracy improves as it receives more input.
It is for Python developers who want a self hosted, trainable chatbot rather than a hosted service. The design is language independent, so a bot can be trained in any language, and since version 1.2.0 the library has added some language specific features, with spaCy integration, to improve response quality. Recent releases add semantic vector search using embeddings stored in a Redis vector database, a storage aware architecture that adapts to the chosen backend, and experimental support for large language models through Ollama and OpenAI. Documentation covers installation from PyPI, GitHub or source, training, and upgrading.
ChatterBot is free to use. It is released as open source on GitHub and PyPI, the current documented version is 1.2.15, and it supports Python 3.10 up to but not including 3.15. There is no paid plan or hosted offering; costs arise only if a developer connects a paid model provider.
The project began as part of the codebase for Salvius, a humanoid robot, before being released as a separate library. Its maintainers have published an LLM roadmap explaining how the dialogue flow changes when language models are used.