GitHub

Kotaemon Project Description

What is the project about?

Kotaemon is an open-source, clean, and customizable Retrieval-Augmented Generation (RAG) UI designed for chatting with documents. It's built to be user-friendly for both end-users who want to perform question-answering on their documents and developers who want to build and customize their own RAG pipelines.

What problem does it solve?

It provides an easy-to-use interface for interacting with documents using natural language. It solves the problem of needing technical expertise to build and use RAG systems, making document-based question answering accessible to a wider audience. It also simplifies the development and customization of RAG pipelines for developers.

What are the features of the project?

  • Clean & Minimalistic UI: A user-friendly interface.
  • Support for Various LLMs: Works with LLM API providers (OpenAI, AzureOpenAI, Cohere, etc.) and local LLMs (via ollama and llama-cpp-python).
  • Easy Installation: Simple setup process.
  • Framework for RAG Pipelines: Provides tools for developers to build custom RAG pipelines.
  • Customizable UI: Built with Gradio, allowing for easy UI customization.
  • Multi-user login: Supports multiple users.
  • Document organization: Organize files in private/public collections.
  • Collaboration: Share chats with others.
  • LLM & Embedding model organization: Supports local LLMs and API providers.
  • Hybrid RAG pipeline: Combines full-text and vector search with re-ranking.
  • Multi-modal QA support: Handles documents with figures and tables.
  • Advanced citations: Provides detailed citations with in-browser PDF preview and highlights.
  • Complex reasoning methods: Supports question decomposition and agent-based reasoning (ReAct, ReWOO).
  • Configurable settings UI: Allows adjustment of retrieval and generation parameters.
  • Extensible: Built on Gradio for UI customization, and supports multiple indexing/retrieval strategies.
  • GraphRAG Support: Integrates with GraphRAG (including NanoGraphRAG and LightRAG) for knowledge graph-based retrieval.

What are the technologies used in the project?

  • Python: The core programming language.
  • Gradio: Used for building the web UI.
  • Docker: For containerized deployment (recommended).
  • LLM APIs: OpenAI, Azure OpenAI, Cohere, Groq.
  • Local LLM frameworks: ollama, llama-cpp-python.
  • Vectorstores: ChromaDB, LanceDB, InMemory, Milvus, Qdrant.
  • Document Stores: Elasticsearch, LanceDB, SimpleFileDocumentStore.
  • Multimodal Parsing Tools: Azure Document Intelligence, Adobe PDF Extract, Docling.
  • GraphRAG Libraries: GraphRAG, Nano-GraphRAG, LightRAG.
  • PDF_JS: For in-browser PDF viewing.

What are the benefits of the project?

  • Accessibility: Makes RAG technology accessible to non-technical users.
  • Customizability: Offers developers flexibility to build and tailor RAG pipelines.
  • Ease of Use: Provides a clean and intuitive user interface.
  • Extensibility: Designed to be easily extended and adapted to different use cases.
  • Open Source: Allows for community contributions and transparency.
  • Private/Local RAG: Supports running entirely locally with local models.

What are the use cases of the project?

  • Document Question Answering: Asking questions about the content of uploaded documents.
  • Research: Quickly finding information within research papers or other documents.
  • Customer Support: Building chatbots that can answer questions based on company documentation.
  • Education: Creating interactive learning tools based on educational materials.
  • Knowledge Management: Organizing and accessing information within an organization.
  • Development of RAG Applications: Serving as a foundation for building custom RAG-powered applications.
kotaemon screenshot