Mengintip Kotaemon: UI RAG Open-Source untuk Chat dengan Dokumen Anda

Mengintip Kotaemon: UI RAG Open-Source untuk Chat dengan Dokumen Anda

By Reggi, 25 Jul 2026

Pernahkah Anda membayangkan bisa ngobrol langsung dengan semua dokumen Anda? Bertanya apapun, dan langsung mendapat jawaban yang relevan dari tumpukan file PDF, HTML, atau bahkan Excel yang Anda miliki? Perkenalkan Kotaemon: Open-source RAG UI, sebuah proyek yang dibuat untuk mewujudkan hal tersebut. Ini adalah antarmuka pengguna RAG (Retrieval Augmented Generation) yang bersih dan bisa disesuaikan, dirancang untuk berinteraksi dengan dokumen Anda, baik untuk pengguna biasa maupun pengembang.

Apa Itu Kotaemon?

Pada dasarnya, Kotaemon adalah UI RAG fungsional. Artinya, ia memungkinkan Anda melakukan Tanya Jawab (QA) langsung pada dokumen Anda. Namun, lebih dari itu, proyek ini juga menyediakan kerangka kerja bagi para pengembang yang ingin membangun pipeline RAG mereka sendiri.

Ada tiga jenis peran utama yang diakomodasi oleh Kotaemon:

  • Pengguna Akhir: Ini adalah Anda yang ingin memakai aplikasi seperti yang ada di demo, untuk bertanya ke dokumen.
  • Pengembang: Anda yang membangun sesuatu menggunakan kotaemon, mungkin dengan import kotaemon di proyek Anda.
  • Kontributor: Anda yang membantu membuat kotaemon lebih baik dengan mengirimkan pull request ke repositori proyek.

Fitur Utama untuk Pengguna Akhir

Bagi Anda yang hanya ingin langsung pakai, Kotaemon menawarkan beberapa keunggulan:

  • UI Bersih & Minimalis: Antarmuka yang ramah pengguna untuk QA berbasis RAG.
  • Dukungan Berbagai LLM: Kompatibel dengan penyedia API LLM populer seperti OpenAI, AzureOpenAI, Cohere, serta LLM lokal melalui Ollama dan llama-cpp-python.
  • Instalasi Mudah: Tersedia skrip sederhana untuk memulai dengan cepat.

Fitur Utama untuk Pengembang

Jika Anda seorang pengembang yang ingin lebih dalam bereksperimen, Kotaemon juga punya banyak tawaran:

  • Framework untuk Pipeline RAG: Alat untuk membangun pipeline QA dokumen berbasis RAG Anda sendiri.
  • UI yang Dapat Disesuaikan: Anda bisa melihat pipeline RAG Anda beraksi dengan UI yang sudah disediakan, dibangun menggunakan Gradio.
  • Tema Gradio: Jika Anda mengembangkan dengan Gradio, ada juga tema kotaemon-gradio-theme yang bisa Anda coba.

Daftar Fitur Unggulan Kotaemon

Selain fitur spesifik di atas, Kotaemon juga menyajikan beberapa kapabilitas inti yang patut Anda ketahui:

  • Host Web-UI QA Dokumen (RAG) Anda Sendiri: Mendukung multi-user login, mengatur file dalam koleksi pribadi atau publik, serta berkolaborasi dan berbagi chat favorit Anda.
  • Organisasi Model LLM & Embedding: Mendukung LLM lokal dan penyedia API populer seperti OpenAI, Azure, Ollama, dan Groq.
  • Pipeline RAG Hibrida: Menggunakan pipeline RAG default dengan retriever hibrida (pencarian teks penuh dan vektor) serta re-ranking untuk memastikan kualitas pengambilan yang terbaik.
  • Dukungan QA Multi-modal: Melakukan Tanya Jawab pada beberapa dokumen dengan dukungan angka dan tabel. Mendukung parsing dokumen multi-modal (opsi dapat dipilih di UI).
  • Citations Lanjutan dengan Pratinjau Dokumen: Sistem menyediakan citation detail untuk memastikan kebenaran jawaban LLM. Anda dapat melihat citation beserta skor relevansinya langsung di penampil PDF dalam browser dengan highlight. Ada juga peringatan jika pipeline retrieval mengembalikan artikel yang kurang relevan.
  • Dukungan Metode Penalaran Kompleks: Menggunakan dekomposisi pertanyaan untuk menjawab pertanyaan kompleks atau multi-hop. Mendukung penalaran berbasis agen dengan ReAct, ReWOO, dan agen lainnya.
  • UI Pengaturan yang Dapat Dikonfigurasi: Anda bisa mengatur sebagian besar aspek penting dari proses retrieval dan generation langsung di UI, termasuk prompt.
  • Ekstensibel: Dibangun di atas Gradio, Anda bebas menyesuaikan atau menambahkan elemen UI sesuka Anda. Kotaemon juga bertujuan untuk mendukung berbagai strategi untuk pengindeksan dan retrieval dokumen. Pipeline pengindeksan GraphRAG disediakan sebagai contoh.

Panduan Instalasi Singkat

Untuk pengguna yang bukan pengembang dan hanya ingin memakai aplikasi, Anda bisa melihat User Guide untuk langkah-langkah yang lebih mudah. Unduh file .zip dari rilis terbaru untuk mendapatkan semua fitur dan perbaikan bug.

Berikut adalah persyaratan sistem dasar untuk menjalankan Kotaemon:

Persyaratan SistemDetail
Python>= 3.10
DockerOpsional, jika Anda memilih instalasi via Docker.
UnstructuredOpsional, jika Anda ingin memproses file selain .pdf, .html, .mhtml, dan .xlsx (mis. .doc, .docx). Instalasi bervariasi per OS.

Dengan Docker (Direkomendasikan)

Kotaemon mendukung versi Docker lite dan full. Versi full akan menginstal paket tambahan unstructured untuk mendukung tipe file seperti .doc atau .docx, namun ukuran citra Docker akan lebih besar. Untuk sebagian besar pengguna, citra lite sudah cukup.

Untuk menggunakan versi full:

bash
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-full

Untuk versi full dengan Ollama terintegrasi (untuk RAG lokal atau privat):

bash
docker run \ <...> \ ghcr.io/cinnamon/kotaemon:main-ollama

Untuk versi lite:

bash
docker run \ <...> \ ghcr.io/cinnamon/kotaemon:main-lite

Anda dapat menentukan platform dengan --platform linux/arm64 jika diperlukan, misalnya untuk Mac terbaru. Setelah semua siap, kunjungi http://localhost:7860/ untuk mengakses WebUI.

Tanpa Docker

Jika Anda memilih untuk tidak menggunakan Docker, ikuti langkah-langkah ini:

  1. Clone repositori:
    bash
    git clone https://github.com/Cinnamon/kotaemon cd kotaemon
  2. Siapkan lingkungan (pilih salah satu opsi):
    • Opsi 1: Menggunakan uv (Direkomendasikan)
      bash
      uv sync --python 3.10 source .venv/bin/activate
    • Opsi 2: Menggunakan conda
      bash
      conda create -n kotaemon python=3.10 conda activate kotaemon pip install -e "libs/kotaemon[all]" pip install -e "libs/ktem"
  3. Buat file .env di root proyek. Anda bisa menggunakan .env.example sebagai templat. File ini hanya akan digunakan untuk mengisi database sekali pada saat pertama kali dijalankan.
  4. (Opsional) Untuk mengaktifkan penampil PDF_JS di browser, unduh PDF_JS_DIST lalu ekstrak ke libs/ktem/ktem/assets/prebuilt.
  5. Mulai server web:
    bash
    python app.py

Aplikasi akan otomatis terbuka di browser Anda. Nama pengguna dan kata sandi default keduanya adalah admin. Anda bisa mengatur pengguna tambahan langsung melalui UI. Pastikan juga api_key Anda di tab Resources dan LLMs and Embeddings sudah diatur dengan benar, atau atur di sana.

Integrasi dan Kustomisasi

Kotaemon sangat fleksibel dalam hal integrasi dengan berbagai teknologi RAG dan kustomisasi.

Setup GraphRAG

Perlu diingat, pengindeksan MS GraphRAG resmi hanya berfungsi dengan OpenAI atau Ollama API. Sebagian besar pengguna direkomendasikan untuk menggunakan implementasi NanoGraphRAG untuk integrasi yang lebih mudah.

  • Setup Nano GraphRAG:

    bash
    pip install nano-graphrag # Untuk memperbaiki konflik versi jika ada pip uninstall hnswlib chroma-hnswlib && pip install chroma-hnswlib

    Luncurkan Kotaemon dengan variabel lingkungan USE_NANO_GRAPHRAG=true. Atur model LLM & Embedding default Anda di pengaturan Resources, dan akan dikenali secara otomatis oleh NanoGraphRAG.

  • Setup LIGHTRAG:

    bash
    pip install git+https://github.com/HKUDS/LightRAG.git # Untuk memperbaiki konflik versi jika ada pip uninstall hnswlib chroma-hnswlib && pip install chroma-hnswlib

    Luncurkan Kotaemon dengan variabel lingkungan USE_LIGHTRAG=true. Atur model LLM & Embedding default Anda di pengaturan Resources, dan akan dikenali secara otomatis oleh LIGHTRAG.

  • Setup MS GraphRAG: Untuk instalasi non-Docker, instal GraphRAG dengan:

    bash
    pip install "graphrag<=0.3.6" future

    Atur variabel lingkungan GRAPHRAG_API_KEY (atau di file .env). Jika ingin menggunakan model lokal (seperti Ollama) atau kustomisasi pengaturan LLM, atur USE_CUSTOMIZED_GRAPHRAG_SETTING=true dan sesuaikan settings.yaml.example Anda.

Setup Model Lokal (untuk RAG lokal/privat)

Kotaemon mendukung penggunaan model LLM yang berjalan secara lokal di mesin Anda.

  • Menggunakan Ollama: Instal Ollama dan mulai aplikasinya. Tarik model yang Anda inginkan, misalnya:

    bash
    ollama pull llama3.1:8b ollama pull nomic-embed-text

    Kemudian, atur nama model di UI web dan jadikan sebagai default.

  • Menggunakan GGUF dengan llama-cpp-python: Anda dapat mencari dan mengunduh LLM dari Hugging Face Hub yang didukung format GGUF. Pilih model yang ukurannya lebih kecil dari memori perangkat Anda, sisakan sekitar 2 GB. Misalnya, jika Anda punya 16 GB RAM dan 12 GB tersedia, pilih model yang maksimal 10 GB. Model yang lebih besar cenderung memberikan generation yang lebih baik, namun memakan waktu pemrosesan lebih lama. Contoh model yang direkomendasikan adalah Qwen1.5-1.8B-Chat-GGUF, sekitar 2 GB. Tambahkan model LlamaCpp baru dengan nama model yang disediakan di UI web.

Setup Parsing Dokumen Multi-modal (OCR, table parsing, figure extraction)

Opsi-opsi ini tersedia dan dapat dipilih di Settings -> Retrieval Settings -> File loader:

  • Azure Document Intelligence (API)
  • Adobe PDF Extract (API)
  • Docling (lokal, open-source)
  • PaddleOCR (lokal, open-source)

Kustomisasi Aplikasi Anda

Secara default, semua data aplikasi disimpan di folder ./ktem_app_data. Anda bisa mencadangkan atau menyalin folder ini untuk memindahkan instalasi ke mesin baru. Untuk pengguna tingkat lanjut, Anda dapat menyesuaikan file flowsettings.py dan .env.

flowsettings.py: File ini berisi konfigurasi aplikasi Anda. Contoh tersedia. Beberapa pengaturan penting:

PengaturanDeskripsiOpsi yang Tersedia
KH_DOCSTOREMenyimpan dokumen pilihan Anda dengan kemampuan pencarian teks penuh.Elasticsearch, LanceDB, SimpleFileDocumentStore
KH_VECTORSTOREMenyimpan vectorstore pilihan Anda untuk pencarian berbasis vektor.ChromaDB, LanceDB, InMemory, Milvus, Qdrant
KH_REASONINGS_USE_MULTIMODALMengaktifkan/menonaktifkan QA multi-modal.True, False
KH_REASONINGSMenyiapkan pipeline penalaran baru atau memodifikasi yang sudah ada.Daftar pipeline seperti FullQAPipeline, ReactAgentPipeline, RewooAgentPipeline

.env: File ini menyediakan cara lain untuk mengonfigurasi model dan kredensial Anda. Anda bisa mengonfigurasi model LLM via file .env dengan informasi yang diperlukan untuk menghubungkan ke LLM. Jika Anda tidak melihatnya, Anda bisa membuatnya.

Contoh konfigurasi untuk penyedia yang didukung:

  • OpenAI:

    dotenv
    OPENAI_API_BASE=https://api.openai.com/v1 OPENAI_API_KEY=<your OpenAI API key here> OPENAI_CHAT_MODEL=gpt-3.5-turbo OPENAI_EMBEDDINGS_MODEL=text-embedding-ada-002
  • Azure OpenAI:

    dotenv
    AZURE_OPENAI_ENDPOINT= AZURE_OPENAI_API_KEY= OPENAI_API_VERSION=2024-02-15-preview AZURE_OPENAI_CHAT_DEPLOYMENT=gpt-35-turbo AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT=text-embedding-ada-002

Membangun Pipeline RAG Anda Sendiri

Kotaemon juga memungkinkan Anda memperluas kemampuannya dengan menambahkan pipeline RAG kustom.

  • Pipeline Penalaran Kustom: Anda bisa melihat implementasi pipeline default sebagai referensi. Buat penyesuaian cepat pada cara kerja pipeline QA default. Tambahkan implementasi .py baru di libs/ktem/ktem/reasoning/ dan masukkan ke flowssettings untuk mengaktifkannya di UI.

  • Pipeline Pengindeksan Kustom: Implementasi contoh dapat ditemukan di libs/ktem/ktem/index/file/graph.

Kotaemon hadir sebagai solusi serbaguna untuk berinteraksi dengan dokumen Anda, baik untuk penggunaan pribadi maupun pengembangan aplikasi RAG tingkat lanjut. Dengan fleksibilitas dan fitur yang ditawarkan, eksplorasi Anda dengan dokumen digital bisa jadi lebih produktif.

Referensi

https://github.com/Cinnamon/kotaemon


🔥 Sedang Ramai Dibaca