General Introduction
Kotaemon is an open source document Q&A tool designed to provide end-users and developers with search-enhanced generation (RAG)-based Q&A capabilities. Developed by Cinnamon, the project supports a variety of LLM API providers (e.g., OpenAI, AzureOpenAI, Cohere, etc.) as well as native LLMs. Kotaemon provides a clean and customizable user interface for document quizzing and for building RAG Pipeline.
Function List
- Support for multiple user logins, organizing files in private/public collections
- Support for native LLM and popular API providers
- Supplied with mixed RAG tubes to ensure optimum retrieval quality
- Support for multimodal Q&A and handling of documents containing charts and tables
- Provides easy-to-install scripts with no environment setup required
Functional Features
- Host your own Documentation Quiz (RAG) web user interface. Support multiple user logins, organize files by private/public collections, collaborate with others and share your favorite chats.
- Organize your LLM and embedded models.. Support for native LLM and popular API providers (OpenAI, Azure, Ollama, Groq).
- Mixed RAG pipes. Provides a reasonable default RAG pipeline combined with a hybrid (full text and vector) searcher + reordering to ensure optimal search quality.
- Multimodal Q&A support. Q&A for multiple documents, with support for graphs and tables. Support for multimodal document parsing (an option available in the user interface).
- Advanced citations with document preview. The system provides detailed references by default to ensure that LLM answers are correct. It can be found directly in thePDF ViewerView citations (including relevance scores) in and highlight them. Warns when the search pipeline returns low relevance articles.
- Support for complex reasoning methods. Use question decomposition to answer complex/multi-hop questions. Supports agent-based reasoning using ReAct, ReWOO and other agents.
- Configurable setup user interface. You can adjust most of the important aspects of the retrieval and generation process (including prompts) in the user interface.
- scalability. Built on Gradio, you are free to customize/add any UI elements you like. In addition, we aim to support multiple document indexing and retrieval strategies.
GraphRAG
The index pipeline is provided as an example.
Using Help
Installation process for regular users
Download:surname CongNew Releasesdownloadingkotaemon-app.zip
Documentation.
Installation:
- Unzip the downloaded file.
- go into
scripts
folder and launch the installation program that matches your operating system:- Windows.
run_windows.bat
. Simply double-click the file. - macOS.
run_macos.sh
- Right-click on your file and select "Open with another application".
- Enable "All Applications" and select "Terminal".
- Note: If you want to always use the terminal to open the file, please check "Always open with this application".
- From now on, double-click on your file and it should work just fine.
- Linux.
run_linux.sh
. Please use thebash run_linux.sh
Run the script.
- Windows.
- Once the installation is complete, the installer will ask whether to start the user interface of ktem, please answer to continue.
- If the launch is successful, the application will automatically open in your browser.
Developer Installation Process
Docker deployment (recommended)
docker run \ -e GRADIO_SERVER_NAME=0.0.0.0 \ -e GRADIO_SERVER_PORT=7860 \ -p 7860:7860 -it --rm \ taprosoft/kotaemon:v1.0
Go to http://localhost:7860/ to access the web interface.
Source code deployment
Clone and install the required packages in your new Python environment.
# optional (setup env) conda create -n kotaemon python=3.10 conda activate kotaemon # clone this repo git clone https://github.com/Cinnamon/kotaemon cd kotaemon pip install -e "libs/kotaemon[all]" pip install -e "libs/ktem"
View and edit your environment variables (API keys, endpoints) in the .env
Center.
(Optional) To enable the PDF_JS viewer in your browser, download the PDF_JS_DIST and extracts it to the libs/ktem/ktem/assets/prebuilt
Starting the Web Server
python app.py
The default username/password is: admin / admin. You can set other users directly on the UI.
Guidelines for use
- Login and Document Management::
- Users can access the platform through a multi-user login system to organize and manage their document collections.
- Supports categorizing files into private or public collections for easy collaboration and sharing.
- Q&A function::
- Users can upload documents and perform Q&A operations in the interface.
- Multi-modal Q&A support and the ability to handle document content containing charts and tables.
- RAG Pipe Customization::
- Developers can customize and view the RAG pipeline using the provided UI.
- Supporting native LLM and popular API providers, users can choose the right model according to their needs.
- hybrid search::
- The system provides a hybrid search pipeline that combines full-text search and vector search to ensure optimal search quality.
- Support reordering function to improve the relevance of search results.
- multimodal support::
- The platform supports multimodal Q&A and is able to handle documents containing charts and tables for a more comprehensive Q&A experience.
Advanced Features
- model management::
- Users can organize and manage their own LLMs and embedded models.
- Supporting native models and popular API providers, users can choose the right model according to their needs.
- Collaboration and sharing::
- Users can share their favorite chats with others for easy collaboration and communication.
- Multi-user login support allows users to collaborate and share on the platform.
- Feedback and contributions::
- The project is under active development and we welcome user feedback, issue reporting and PR submissions.