Kotaemon
Kotaemon is an open-source, customizable RAG (Retrieval-Augmented Generation) UI for chatting with your documents. It provides a clean interface for end users to perform question answering on their files, while also offering a framework for developers to build and customize their own RAG pipelines. Built with Gradio, it supports multiple LLM providers and local models.
✨ Key features
- Clean, minimalistic UI for RAG-based QA
- Supports OpenAI, Azure, Ollama, Groq, and local LLMs
- Hybrid retriever with full-text and vector search plus re-ranking
- Multi-modal QA with figures and tables support
- Advanced citations with in-browser PDF viewer and highlights
- Configurable settings UI for retrieval and generation
🎯 Use cases
- Host a private document QA web UI for teams
- Build custom RAG pipelines using the kotaemon framework
- Perform multi-hop question answering with agent-based reasoning
- Index and query documents with GraphRAG or LightRAG
- Deploy a local, private RAG system using Ollama
📦 Installation
🧰 Requirements: Python >= 3.10, Docker optional, and an API key for LLM providers (e.g., OpenAI) or local models via Ollama.
With Docker (recommended)
docker run \
-e GRADIO_SERVER_NAME=0.0.0.0 \
-e GRADIO_SERVER_PORT=7860 \
-v ./ktem_app_data:/app/ktem_app_data \
-p 7860:7860 -it --rm \
ghcr.io/cinnamon/kotaemon:main-lite
Then access http://localhost:7860/.
Without Docker
- Clone the repository:
git clone https://github.com/Cinnamon/kotaemon
cd kotaemon
- Setup the environment:
- Option 1: Using uv (recommended)
uv sync --python 3.10
source .venv/bin/activate
- Option 2: Using conda
conda create -n kotaemon python=3.10
conda activate kotaemon
pip install -e "libs/kotaemon[all]"
pip install -e "libs/ktem"
Create a
.envfile from.env.example.(Optional) Download PDF_JS_DIST and extract to
libs/ktem/ktem/assets/prebuilt.Start the web server:
python app.py
Default username and password are both admin.
🚀 Usage
After installation, run python app.py and open the browser. Log in with default credentials (admin/admin). Then go to the Resources tab to set your LLM API key and model. Upload documents and start chatting.
❓ FAQ
What are the system requirements?
Python >= 3.10 is required. Docker is optional for containerized installation. For processing non-PDF files, you may need to install Unstructured.
How do I configure the LLM?
You can set API keys and model names in the .env file or via the UI under the Resources tab. Supported providers include OpenAI, Azure, Ollama, and Groq.
Can I use local models?
Yes, you can use local models via Ollama or llama-cpp-python with GGUF files. See the local model setup documentation.
How do I enable GraphRAG?
For MS GraphRAG, install graphrag<=0.3.6 and set GRAPHRAG_API_KEY. For NanoGraphRAG, install nano-graphrag and launch with USE_NANO_GRAPHRAG=true. For LightRAG, install it and set USE_LIGHTRAG=true.
📊 Repository
🤖 Overview, features, install steps and FAQ were generated from the project's README on Sep 4, 2026. Always check the original source before running commands.