UI RAG sumber terbuka yang bersih & dapat disesuaikan untuk mengobrol dengan dokumen Anda. Dibangun dengan mempertimbangkan pengguna akhir dan pengembang.
Demo Langsung | Instal Daring | Panduan Pengguna | Panduan Pengembang | Umpan Balik | Kontak
Proyek ini berfungsi sebagai RAG UI yang fungsional bagi pengguna akhir yang ingin melakukan QA pada dokumen mereka dan pengembang yang ingin membangun pipeline RAG mereka sendiri.
+------------------------------------------------- ---------------------------+| Pengguna akhir: Mereka yang menggunakan aplikasi yang dibuat dengan `kotaemon`. || (Anda menggunakan aplikasi seperti yang ada pada demo di atas) || +------------------------------------------------- ---------------+ || | Pengembang: Mereka yang membangun dengan `kotaemon`. | || | (Anda memiliki `import kotaemon` di suatu tempat di proyek Anda) | || | +------------------------------------------------- ---+ | || | | Kontributor: Mereka yang menjadikan `kotaemon` lebih baik. | | || | | (Anda membuat PR untuk repo ini) | | || | +------------------------------------------------- ---+ | || +------------------------------------------------- ------------------------------+ |+-------------------------------- ------------------------------+
UI Bersih & Minimalis : Antarmuka yang ramah pengguna untuk QA berbasis RAG.
Dukungan untuk Berbagai LLM : Kompatibel dengan penyedia API LLM (OpenAI, AzureOpenAI, Cohere, dll.) dan LLM lokal (melalui ollama
dan llama-cpp-python
).
Instalasi Mudah : Skrip sederhana untuk membantu Anda memulai dengan cepat.
Framework for RAG Pipelines : Alat untuk membuat pipeline QA dokumen berbasis RAG Anda sendiri.
UI yang Dapat Disesuaikan : Lihat pipeline RAG Anda beraksi dengan UI yang disediakan, dibuat dengan Gradio .
Tema Gradio : Jika Anda menggunakan Gradio untuk pengembangan, lihat tema kami di sini: kotaemon-gradio-theme.
Host UI web QA (RAG) dokumen Anda sendiri : Mendukung login multi-pengguna, mengatur file Anda dalam koleksi pribadi/publik, berkolaborasi dan berbagi obrolan favorit Anda dengan orang lain.
Atur model LLM & Penyematan Anda : Mendukung LLM lokal & penyedia API populer (OpenAI, Azure, Ollama, Groq).
Pipa RAG Hibrid : Pipa RAG default yang waras dengan pengambilan hibrid (teks lengkap & vektor) dan pemeringkatan ulang untuk memastikan kualitas pengambilan terbaik.
Dukungan QA multi-modal : Lakukan Jawaban Pertanyaan pada banyak dokumen dengan dukungan gambar dan tabel. Mendukung penguraian dokumen multi-modal (opsi yang dapat dipilih di UI).
Kutipan tingkat lanjut dengan pratinjau dokumen : Secara default, sistem akan memberikan kutipan terperinci untuk memastikan kebenaran jawaban LLM. Lihat kutipan Anda (termasuk skor yang relevan) langsung di penampil PDF dalam browser dengan sorotan. Peringatan ketika jalur pengambilan mengembalikan artikel yang relevan rendah.
Mendukung metode penalaran yang kompleks : Gunakan dekomposisi pertanyaan untuk menjawab pertanyaan kompleks/multi-hop Anda. Dukung penalaran berbasis agen dengan ReAct
, ReWOO
, dan agen lainnya.
Pengaturan UI yang dapat dikonfigurasi : Anda dapat menyesuaikan aspek terpenting dari proses pengambilan & pembuatan di UI (termasuk petunjuknya).
Dapat Diperluas : Dibangun di Gradio, Anda bebas menyesuaikan atau menambahkan elemen UI apa pun sesuka Anda. Selain itu, kami bertujuan untuk mendukung berbagai strategi untuk pengindeksan & pengambilan dokumen. Pipa pengindeksan GraphRAG
disediakan sebagai contoh.
Jika Anda bukan seorang pengembang dan hanya ingin menggunakan aplikasi ini, silakan lihat Panduan Pengguna kami yang mudah diikuti. Unduh file
.zip
dari rilis terbaru untuk mendapatkan semua fitur terbaru dan perbaikan bug.
Python >= 3.10
Docker: opsional, jika Anda menginstal dengan Docker
Tidak terstruktur jika Anda ingin memproses file selain dokumen .pdf
, .html
, .mhtml
, dan .xlsx
. Langkah-langkah instalasi berbeda-beda tergantung pada sistem operasi Anda. Silakan kunjungi tautan tersebut dan ikuti instruksi spesifik yang diberikan di sana.
Kami mendukung image Docker versi lite
& full
. Dengan full
, paket tambahan unstructured
akan diinstal juga, dapat mendukung jenis file tambahan ( .doc
, .docx
, ...) tetapi biayanya lebih besar pada ukuran gambar buruh pelabuhan. Bagi sebagian besar pengguna, gambar lite
seharusnya berfungsi dengan baik dalam banyak kasus.
Untuk menggunakan versi lite
.
menjalankan buruh pelabuhan -e GRADIO_SERVER_NAME=0.0.0.0 -e GRADIO_SERVER_PORT=7860 -p 7860:7860 -itu --rm ghcr.io/cinnamon/kotaemon:main-lite
Untuk menggunakan versi full
.
menjalankan buruh pelabuhan -e GRADIO_SERVER_NAME=0.0.0.0 -e GRADIO_SERVER_PORT=7860 -p 7860:7860 -itu --rm ghcr.io/cinnamon/kotaemon:main-full
Saat ini kami mendukung dan menguji dua platform: linux/amd64
dan linux/arm64
(untuk Mac yang lebih baru). Anda dapat menentukan platform dengan meneruskan --platform
di perintah docker run
. Misalnya:
# Untuk menjalankan buruh pelabuhan dengan platform linux/arm64docker dijalankan -e GRADIO_SERVER_NAME=0.0.0.0 -e GRADIO_SERVER_PORT=7860 -p 7860:7860 -itu --rm --platform linux/arm64 ghcr.io/cinnamon/kotaemon:main-lite
Setelah semuanya diatur dengan benar, Anda dapat membuka http://localhost:7860/
untuk mengakses WebUI.
Kami menggunakan GHCR untuk menyimpan gambar buruh pelabuhan, semua gambar dapat ditemukan di sini.
Kloning dan instal paket yang diperlukan pada lingkungan python baru.
# opsional (setup env)conda buat -n kotaemon python=3.10 conda aktifkan kotaemon# clone klon repogit ini https://github.com/Cinnamon/kotaemoncd kotaemon pip install -e "libs/kotaemon[semua]"pip install -e "libs/ktem"
Buat file .env
di root proyek ini. Gunakan .env.example
sebagai templat
File .env
ada untuk melayani kasus penggunaan ketika pengguna ingin melakukan pra-konfigurasi model sebelum memulai aplikasi (misalnya menerapkan aplikasi di hub HF). File tersebut hanya akan digunakan untuk mengisi db satu kali saat pertama kali dijalankan, file tersebut tidak akan lagi digunakan pada proses selanjutnya.
(Opsional) Untuk mengaktifkan penampil PDF_JS
dalam browser, unduh PDF_JS_DIST lalu ekstrak ke libs/ktem/ktem/assets/prebuilt
Mulai server web:
aplikasi python.py
Aplikasi akan diluncurkan secara otomatis di browser Anda.
Nama pengguna dan kata sandi default keduanya admin
. Anda dapat mengatur pengguna tambahan secara langsung melalui UI.
Periksa tab Resources
dan LLMs and Embeddings
dan pastikan bahwa nilai api_key
Anda disetel dengan benar dari file .env
Anda. Jika belum disetel, Anda dapat menyetelnya di sana.
Catatan
Pengindeksan resmi MS GraphRAG hanya berfungsi dengan OpenAI atau Ollama API. Kami menyarankan sebagian besar pengguna untuk menggunakan implementasi NanoGraphRAG untuk integrasi langsung dengan Kotaemon.
Instal nano-GraphRAG: pip install nano-graphrag
instalasi nano-graphrag
mungkin menimbulkan konflik versi, lihat masalah ini
Untuk memperbaikinya dengan cepat: pip uninstall hnswlib chroma-hnswlib && pip install chroma-hnswlib
Luncurkan Kotaemon dengan USE_NANO_GRAPHRAG=true
.
Atur model LLM & Penyematan default Anda di pengaturan Sumber Daya dan model tersebut akan dikenali secara otomatis dari NanoGraphRAG.
Instalasi Non-Docker : Jika Anda tidak menggunakan Docker, instal GraphRAG dengan perintah berikut:
pip instal graphrag masa depan
Menyiapkan API KEY : Untuk menggunakan fitur pengambilan GraphRAG, pastikan Anda menyetel variabel lingkungan GRAPHRAG_API_KEY
. Anda dapat melakukan ini secara langsung di lingkungan Anda atau dengan menambahkannya ke file .env
.
Menggunakan Model Lokal dan Pengaturan Kustom : Jika Anda ingin menggunakan GraphRAG dengan model lokal (seperti Ollama
) atau menyesuaikan LLM default dan konfigurasi lainnya, atur variabel lingkungan USE_CUSTOMIZED_GRAPHRAG_SETTING
ke true. Kemudian, sesuaikan pengaturan Anda di file settings.yaml.example
.
Lihat Penyiapan model lokal.
Secara default, semua data aplikasi disimpan di folder ./ktem_app_data
. Anda dapat membuat cadangan atau menyalin folder ini untuk mentransfer instalasi Anda ke mesin baru.
Untuk pengguna tingkat lanjut atau kasus penggunaan tertentu, Anda dapat menyesuaikan file berikut:
flowsettings.py
.env
flowsettings.py
File ini berisi konfigurasi aplikasi Anda. Anda dapat menggunakan contoh di sini sebagai titik awal.
# atur penyimpanan dokumen pilihan Anda (dengan kemampuan pencarian teks lengkap)KH_DOCSTORE=(Elasticsearch | LanceDB | SimpleFileDocumentStore)# atur penyimpanan vektor pilihan Anda (untuk pencarian berbasis vektor)KH_VECTORSTORE=(ChromaDB | LanceDB | InMemory | Qdrant)# Aktifkan / nonaktifkan multimodal QAKH_REASONINGS_USE_MULTIMODAL=True# Siapkan pipeline penalaran baru Anda atau ubah yang sudah ada.KH_REASONINGS = ["ktem.reasoning.simple.FullQAPipeline","ktem.reasoning.simple.FullDecomposeQAPipeline","ktem.reasoning.react.ReactAgentPipeline","ktem .reasoning.rewoo.RewooAgentPipeline", ]
.env
File ini menyediakan cara lain untuk mengonfigurasi model dan kredensial Anda.
Alternatifnya, Anda dapat mengonfigurasi model melalui file .env
dengan informasi yang diperlukan untuk terhubung ke LLM. File ini terletak di folder aplikasi. Jika Anda tidak melihatnya, Anda dapat membuatnya.
Saat ini, penyedia berikut didukung:
Menggunakan server yang kompatibel dengan ollama
OpenAI:
Menggunakan GGUF
dengan llama-cpp-python
Anda dapat mencari dan mengunduh LLM untuk dijalankan secara lokal dari Hugging Face Hub. Saat ini, format model berikut didukung:
Instal ollama dan mulai aplikasi.
Tarik model Anda, misalnya:
ollama tarik llama3.1:8b ollama menarik nomic-embed-text
Tetapkan nama model di UI web dan jadikan sebagai default:
GGUF
Anda sebaiknya memilih model yang ukurannya lebih kecil dari memori perangkat Anda dan menyisakan sekitar 2 GB. Misalnya, jika Anda memiliki total RAM 16 GB, dan di antaranya tersedia 12 GB, maka Anda sebaiknya memilih model yang menggunakan paling banyak RAM 10 GB. Model yang lebih besar cenderung menghasilkan pembangkitan yang lebih baik tetapi juga memerlukan waktu pemrosesan yang lebih lama.
Berikut beberapa rekomendasi dan ukurannya di memori:
Qwen1.5-1.8B-Chat-GGUF: sekitar 2 GB
Tambahkan model LlamaCpp baru dengan nama model yang disediakan di UI web.
OpenAI
Di file .env
, atur variabel OPENAI_API_KEY
dengan kunci API OpenAI Anda untuk mengaktifkan akses ke model OpenAI. Ada variabel lain yang dapat dimodifikasi, silakan mengeditnya agar sesuai dengan kasus Anda. Jika tidak, parameter default akan berfungsi untuk kebanyakan orang.
OPENAI_API_BASE=https://api.openai.com/v1 OPENAI_API_KEY=OPENAI_CHAT_MODEL=gpt-3.5-turbo OPENAI_EMBEDDINGS_MODEL=penyematan-teks-ada-002
Azure OpenAI
Untuk model OpenAI melalui platform Azure, Anda perlu menyediakan titik akhir Azure dan kunci API Anda. Anda mungkin juga perlu memberikan nama pengembangan untuk model obrolan dan model penyematan bergantung pada cara Anda menyiapkan pengembangan Azure.
AZURE_OPENAI_ENDPOINT= AZURE_OPENAI_API_KEY= OPENAI_API_VERSION=pratinjau 15-02-2024 AZURE_OPENAI_CHAT_DEPLOYMENT=gpt-35-turbo AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT=penyematan-teks-ada-002
Model Lokal
Periksa implementasi pipeline default di sini. Anda dapat melakukan penyesuaian cepat terhadap cara kerja alur QA default.
Tambahkan implementasi .py
baru di libs/ktem/ktem/reasoning/
dan kemudian sertakan dalam flowssettings
untuk mengaktifkannya di UI.
Periksa contoh implementasi di libs/ktem/ktem/index/file/graph
(instruksi lebih lanjut WIP).
Karena proyek kami sedang dikembangkan secara aktif, kami sangat menghargai masukan dan kontribusi Anda. Silakan lihat Panduan Berkontribusi kami untuk memulai. Terima kasih kepada semua kontributor kami!