Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341
  1. <div align="center">
  2. <a href="https://demo.ragflow.io/">
  3. <img src="web/src/assets/logo-with-text.png" width="520" alt="Logo ragflow">
  4. </a>
  5. </div>
  6. <p align="center">
  7. <a href="./README.md">English</a> |
  8. <a href="./README_zh.md">简体中文</a> |
  9. <a href="./README_ja.md">日本語</a> |
  10. <a href="./README_ko.md">한국어</a> |
  11. <a href="./README_id.md">Bahasa Indonesia</a>
  12. </p>
  13. <p align="center">
  14. <a href="https://x.com/intent/follow?screen_name=infiniflowai" target="_blank">
  15. <img src="https://img.shields.io/twitter/follow/infiniflow?logo=X&color=%20%23f5f5f5" alt="Ikuti di X (Twitter)">
  16. </a>
  17. <a href="https://demo.ragflow.io" target="_blank">
  18. <img alt="Lencana Daring" src="https://img.shields.io/badge/Online-Demo-4e6b99">
  19. </a>
  20. <a href="https://hub.docker.com/r/infiniflow/ragflow" target="_blank">
  21. <img src="https://img.shields.io/badge/docker_pull-ragflow:v0.14.0-brightgreen" alt="docker pull infiniflow/ragflow:v0.14.0">
  22. </a>
  23. <a href="https://github.com/infiniflow/ragflow/releases/latest">
  24. <img src="https://img.shields.io/github/v/release/infiniflow/ragflow?color=blue&label=Rilis%20Terbaru" alt="Rilis Terbaru">
  25. </a>
  26. <a href="https://github.com/infiniflow/ragflow/blob/main/LICENSE">
  27. <img height="21" src="https://img.shields.io/badge/Lisensi-Apache--2.0-ffffff?labelColor=d4eaf7&color=2e6cc4" alt="Lisensi">
  28. </a>
  29. </p>
  30. <h4 align="center">
  31. <a href="https://ragflow.io/docs/dev/">Dokumentasi</a> |
  32. <a href="https://github.com/infiniflow/ragflow/issues/162">Peta Jalan</a> |
  33. <a href="https://twitter.com/infiniflowai">Twitter</a> |
  34. <a href="https://discord.gg/4XxujFgUN7">Discord</a> |
  35. <a href="https://demo.ragflow.io">Demo</a>
  36. </h4>
  37. <details open>
  38. <summary></b>📕 Daftar Isi</b></summary>
  39. - 💡 [Apa Itu RAGFlow?](#-apa-itu-ragflow)
  40. - 🎮 [Demo](#-demo)
  41. - 📌 [Pembaruan Terbaru](#-pembaruan-terbaru)
  42. - 🌟 [Fitur Utama](#-fitur-utama)
  43. - 🔎 [Arsitektur Sistem](#-arsitektur-sistem)
  44. - 🎬 [Mulai](#-mulai)
  45. - 🔧 [Konfigurasi](#-konfigurasi)
  46. - 🔧 [Membangun Image Docker tanpa Model Embedding](#-membangun-image-docker-tanpa-model-embedding)
  47. - 🔧 [Membangun Image Docker dengan Model Embedding](#-membangun-image-docker-dengan-model-embedding)
  48. - 🔨 [Meluncurkan aplikasi dari Sumber untuk Pengembangan](#-meluncurkan-aplikasi-dari-sumber-untuk-pengembangan)
  49. - 📚 [Dokumentasi](#-dokumentasi)
  50. - 📜 [Peta Jalan](#-peta-jalan)
  51. - 🏄 [Komunitas](#-komunitas)
  52. - 🙌 [Kontribusi](#-kontribusi)
  53. </details>
  54. ## 💡 Apa Itu RAGFlow?
  55. [RAGFlow](https://ragflow.io/) adalah mesin RAG (Retrieval-Augmented Generation) open-source berbasis pemahaman dokumen yang mendalam. Platform ini menyediakan alur kerja RAG yang efisien untuk bisnis dengan berbagai skala, menggabungkan LLM (Large Language Models) untuk menyediakan kemampuan tanya-jawab yang benar dan didukung oleh referensi dari data terstruktur kompleks.
  56. ## 🎮 Demo
  57. Coba demo kami di [https://demo.ragflow.io](https://demo.ragflow.io).
  58. <div align="center" style="margin-top:20px;margin-bottom:20px;">
  59. <img src="https://github.com/infiniflow/ragflow/assets/7248/2f6baa3e-1092-4f11-866d-36f6a9d075e5" width="1200"/>
  60. <img src="https://github.com/user-attachments/assets/504bbbf1-c9f7-4d83-8cc5-e9cb63c26db6" width="1200"/>
  61. </div>
  62. ## 🔥 Pembaruan Terbaru
  63. - 22-11-2024 Peningkatan definisi dan penggunaan variabel di Agen.
  64. - 2024-11-01: Penambahan ekstraksi kata kunci dan pembuatan pertanyaan terkait untuk meningkatkan akurasi pengambilan.
  65. - 2024-09-13: Penambahan mode pencarian untuk Q&A basis pengetahuan.
  66. - 2024-08-22: Dukungan untuk teks ke pernyataan SQL melalui RAG.
  67. - 2024-08-02: Dukungan GraphRAG yang terinspirasi oleh [graphrag](https://github.com/microsoft/graphrag) dan mind map.
  68. ## 🎉 Tetap Terkini
  69. ⭐️ Star repositori kami untuk tetap mendapat informasi tentang fitur baru dan peningkatan menarik! 🌟
  70. <div align="center" style="margin-top:20px;margin-bottom:20px;">
  71. <img src="https://github.com/user-attachments/assets/18c9707e-b8aa-4caf-a154-037089c105ba" width="1200"/>
  72. </div>
  73. ## 🌟 Fitur Utama
  74. ### 🍭 **"Kualitas Masuk, Kualitas Keluar"**
  75. - Ekstraksi pengetahuan berbasis pemahaman dokumen mendalam dari data tidak terstruktur dengan format yang rumit.
  76. - Menemukan "jarum di tumpukan data" dengan token yang hampir tidak terbatas.
  77. ### 🍱 **Pemotongan Berbasis Template**
  78. - Cerdas dan dapat dijelaskan.
  79. - Banyak pilihan template yang tersedia.
  80. ### 🌱 **Referensi yang Didasarkan pada Data untuk Mengurangi Hallusinasi**
  81. - Visualisasi pemotongan teks memungkinkan intervensi manusia.
  82. - Tampilan cepat referensi kunci dan referensi yang dapat dilacak untuk mendukung jawaban yang didasarkan pada fakta.
  83. ### 🍔 **Kompatibilitas dengan Sumber Data Heterogen**
  84. - Mendukung Word, slide, excel, txt, gambar, salinan hasil scan, data terstruktur, halaman web, dan banyak lagi.
  85. ### 🛀 **Alur Kerja RAG yang Otomatis dan Mudah**
  86. - Orkestrasi RAG yang ramping untuk bisnis kecil dan besar.
  87. - LLM yang dapat dikonfigurasi serta model embedding.
  88. - Peringkat ulang berpasangan dengan beberapa pengambilan ulang.
  89. - API intuitif untuk integrasi yang mudah dengan bisnis.
  90. ## 🔎 Arsitektur Sistem
  91. <div align="center" style="margin-top:20px;margin-bottom:20px;">
  92. <img src="https://github.com/infiniflow/ragflow/assets/12318111/d6ac5664-c237-4200-a7c2-a4a00691b485" width="1000"/>
  93. </div>
  94. ## 🎬 Mulai
  95. ### 📝 Prasyarat
  96. - CPU >= 4 inti
  97. - RAM >= 16 GB
  98. - Disk >= 50 GB
  99. - Docker >= 24.0.0 & Docker Compose >= v2.26.1
  100. ### 🚀 Menjalankan Server
  101. 1. Pastikan `vm.max_map_count` >= 262144:
  102. > Untuk memeriksa nilai `vm.max_map_count`:
  103. >
  104. > ```bash
  105. > $ sysctl vm.max_map_count
  106. > ```
  107. >
  108. > Jika nilainya kurang dari 262144, setel ulang `vm.max_map_count` ke setidaknya 262144:
  109. >
  110. > ```bash
  111. > # Dalam contoh ini, kita atur menjadi 262144:
  112. > $ sudo sysctl -w vm.max_map_count=262144
  113. > ```
  114. >
  115. > Perubahan ini akan hilang setelah sistem direboot. Untuk membuat perubahan ini permanen, tambahkan atau perbarui nilai
  116. `vm.max_map_count` di **/etc/sysctl.conf**:
  117. >
  118. > ```bash
  119. > vm.max_map_count=262144
  120. > ```
  121. 2. Clone repositori:
  122. ```bash
  123. $ git clone https://github.com/infiniflow/ragflow.git
  124. ```
  125. 3. Bangun image Docker pre-built dan jalankan server:
  126. > Perintah di bawah ini akan mengunduh versi dev dari Docker image RAGFlow slim (`dev-slim`). Image RAGFlow slim
  127. tidak termasuk model embedding atau library Python dan berukuran sekitar 1GB.
  128. ```bash
  129. $ cd ragflow/docker
  130. $ docker compose -f docker-compose.yml up -d
  131. ```
  132. > - Untuk mengunduh versi tertentu dari image Docker RAGFlow slim, perbarui variabel `RAGFlow_IMAGE` di *
  133. *docker/.env** sesuai dengan versi yang diinginkan. Misalnya, `RAGFLOW_IMAGE=infiniflow/ragflow:v0.14.0-slim`.
  134. Setelah mengubah ini, jalankan ulang perintah di atas untuk memulai unduhan.
  135. > - Untuk mengunduh versi dev dari image Docker RAGFlow *termasuk* model embedding dan library Python, perbarui
  136. variabel `RAGFlow_IMAGE` di **docker/.env** menjadi `RAGFLOW_IMAGE=infiniflow/ragflow:dev`. Setelah mengubah ini,
  137. jalankan ulang perintah di atas untuk memulai unduhan.
  138. > - Untuk mengunduh versi tertentu dari image Docker RAGFlow *termasuk* model embedding dan library Python, perbarui
  139. variabel `RAGFlow_IMAGE` di **docker/.env** sesuai dengan versi yang diinginkan. Misalnya,
  140. `RAGFLOW_IMAGE=infiniflow/ragflow:v0.14.0`. Setelah mengubah ini, jalankan ulang perintah di atas untuk memulai unduhan.
  141. > **CATATAN:** Image Docker RAGFlow yang mencakup model embedding dan library Python berukuran sekitar 9GB
  142. dan mungkin memerlukan waktu lebih lama untuk dimuat.
  143. 4. Periksa status server setelah server aktif dan berjalan:
  144. ```bash
  145. $ docker logs -f ragflow-server
  146. ```
  147. _Output berikut menandakan bahwa sistem berhasil diluncurkan:_
  148. ```bash
  149. ____ ___ ______ ______ __
  150. / __ \ / | / ____// ____// /____ _ __
  151. / /_/ // /| | / / __ / /_ / // __ \| | /| / /
  152. / _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ /
  153. /_/ |_|/_/ |_|\____//_/ /_/ \____/ |__/|__/
  154. * Running on all addresses (0.0.0.0)
  155. * Running on http://127.0.0.1:9380
  156. * Running on http://x.x.x.x:9380
  157. INFO:werkzeug:Press CTRL+C to quit
  158. ```
  159. > Jika Anda melewatkan langkah ini dan langsung login ke RAGFlow, browser Anda mungkin menampilkan error `network anormal`
  160. karena RAGFlow mungkin belum sepenuhnya siap.
  161. 5. Buka browser web Anda, masukkan alamat IP server Anda, dan login ke RAGFlow.
  162. > Dengan pengaturan default, Anda hanya perlu memasukkan `http://IP_DEVICE_ANDA` (**tanpa** nomor port) karena
  163. port HTTP default `80` bisa dihilangkan saat menggunakan konfigurasi default.
  164. 6. Dalam [service_conf.yaml](./docker/service_conf.yaml), pilih LLM factory yang diinginkan di `user_default_llm` dan perbarui
  165. bidang `API_KEY` dengan kunci API yang sesuai.
  166. > Lihat [llm_api_key_setup](https://ragflow.io/docs/dev/llm_api_key_setup) untuk informasi lebih lanjut.
  167. _Sistem telah siap digunakan!_
  168. ## 🔧 Konfigurasi
  169. Untuk konfigurasi sistem, Anda perlu mengelola file-file berikut:
  170. - [.env](./docker/.env): Menyimpan pengaturan dasar sistem, seperti `SVR_HTTP_PORT`, `MYSQL_PASSWORD`, dan
  171. `MINIO_PASSWORD`.
  172. - [service_conf.yaml](./docker/service_conf.yaml): Mengonfigurasi aplikasi backend.
  173. - [docker-compose.yml](./docker/docker-compose.yml): Sistem ini bergantung pada [docker-compose.yml](./docker/docker-compose.yml) untuk memulai.
  174. Anda harus memastikan bahwa perubahan pada file [.env](./docker/.env) sesuai dengan yang ada di file [service_conf.yaml](./docker/service_conf.yaml).
  175. > File [./docker/README](./docker/README.md) menyediakan penjelasan detail tentang pengaturan lingkungan dan konfigurasi aplikasi,
  176. > dan Anda DIWAJIBKAN memastikan bahwa semua pengaturan lingkungan yang tercantum di
  177. > [./docker/README](./docker/README.md) selaras dengan konfigurasi yang sesuai di
  178. > [service_conf.yaml](./docker/service_conf.yaml).
  179. Untuk memperbarui port HTTP default (80), buka [docker-compose.yml](./docker/docker-compose.yml) dan ubah `80:80`
  180. menjadi `<YOUR_SERVING_PORT>:80`.
  181. Pembaruan konfigurasi ini memerlukan reboot semua kontainer agar efektif:
  182. > ```bash
  183. > $ docker compose -f docker/docker-compose.yml up -d
  184. > ```
  185. ## 🔧 Membangun Docker Image tanpa Model Embedding
  186. Image ini berukuran sekitar 1 GB dan bergantung pada aplikasi LLM eksternal dan embedding.
  187. ```bash
  188. git clone https://github.com/infiniflow/ragflow.git
  189. cd ragflow/
  190. pip3 install huggingface-hub nltk
  191. python3 download_deps.py
  192. docker build -f Dockerfile.slim -t infiniflow/ragflow:dev-slim .
  193. ```
  194. ## 🔧 Membangun Docker Image Termasuk Model Embedding
  195. Image ini berukuran sekitar 9 GB. Karena sudah termasuk model embedding, ia hanya bergantung pada aplikasi LLM eksternal.
  196. ```bash
  197. git clone https://github.com/infiniflow/ragflow.git
  198. cd ragflow/
  199. pip3 install huggingface-hub nltk
  200. python3 download_deps.py
  201. docker build -f Dockerfile -t infiniflow/ragflow:dev .
  202. ```
  203. ## 🔨 Menjalankan Aplikasi dari untuk Pengembangan
  204. 1. Instal Poetry, atau lewati langkah ini jika sudah terinstal:
  205. ```bash
  206. curl -sSL https://install.python-poetry.org | python3 -
  207. ```
  208. 2. Clone kode sumber dan instal dependensi Python:
  209. ```bash
  210. git clone https://github.com/infiniflow/ragflow.git
  211. cd ragflow/
  212. export POETRY_VIRTUALENVS_CREATE=true POETRY_VIRTUALENVS_IN_PROJECT=true
  213. ~/.local/bin/poetry install --sync --no-root # install modul python RAGFlow
  214. ```
  215. 3. Jalankan aplikasi yang diperlukan (MinIO, Elasticsearch, Redis, dan MySQL) menggunakan Docker Compose:
  216. ```bash
  217. docker compose -f docker/docker-compose-base.yml up -d
  218. ```
  219. Tambahkan baris berikut ke `/etc/hosts` untuk memetakan semua host yang ditentukan di **docker/service_conf.yaml** ke `127.0.0.1`:
  220. ```
  221. 127.0.0.1 es01 infinity mysql minio redis
  222. ```
  223. Di **docker/service_conf.yaml**, perbarui port mysql ke `5455` dan es ke `1200`, sesuai dengan yang ditentukan di **docker/.env**.
  224. 4. Jika Anda tidak dapat mengakses HuggingFace, atur variabel lingkungan `HF_ENDPOINT` untuk menggunakan situs mirror:
  225. ```bash
  226. export HF_ENDPOINT=https://hf-mirror.com
  227. ```
  228. 5. Jalankan aplikasi backend:
  229. ```bash
  230. source .venv/bin/activate
  231. export PYTHONPATH=$(pwd)
  232. bash docker/launch_backend_service.sh
  233. ```
  234. 6. Instal dependensi frontend:
  235. ```bash
  236. cd web
  237. npm install --force
  238. ```
  239. 7. Konfigurasikan frontend untuk memperbarui `proxy.target` di **.umirc.ts** menjadi `http://127.0.0.1:9380`:
  240. 8. Jalankan aplikasi frontend:
  241. ```bash
  242. npm run dev
  243. ```
  244. _Output berikut menandakan bahwa sistem berhasil diluncurkan:_
  245. ![](https://github.com/user-attachments/assets/0daf462c-a24d-4496-a66f-92533534e187)
  246. ## 📚 Dokumentasi
  247. - [Quickstart](https://ragflow.io/docs/dev/)
  248. - [Panduan Pengguna](https://ragflow.io/docs/dev/category/guides)
  249. - [Referensi](https://ragflow.io/docs/dev/category/references)
  250. - [FAQ](https://ragflow.io/docs/dev/faq)
  251. ## 📜 Roadmap
  252. Lihat [Roadmap RAGFlow 2024](https://github.com/infiniflow/ragflow/issues/162)
  253. ## 🏄 Komunitas
  254. - [Discord](https://discord.gg/4XxujFgUN7)
  255. - [Twitter](https://twitter.com/infiniflowai)
  256. - [GitHub Discussions](https://github.com/orgs/infiniflow/discussions)
  257. ## 🙌 Kontribusi
  258. RAGFlow berkembang melalui kolaborasi open-source. Dalam semangat ini, kami menerima kontribusi dari komunitas.
  259. Jika Anda ingin berpartisipasi, tinjau terlebih dahulu [Panduan Kontribusi](./CONTRIBUTING.md).