English | ็ฎไฝไธญๆ | ๆฅๆฌ่ช | ํ๊ตญ์ด | Bahasa Indonesia
Dokumentasi | Peta Jalan | Twitter | Discord | Demo
๐ Daftar Isi
- ๐ก Apa Itu RAGFlow?
- ๐ฎ Demo
- ๐ Pembaruan Terbaru
- ๐ Fitur Utama
- ๐ Arsitektur Sistem
- ๐ฌ Mulai
- ๐ง Konfigurasi
- ๐ง Membangun Image Docker tanpa Model Embedding
- ๐ง Membangun Image Docker dengan Model Embedding
- ๐จ Meluncurkan aplikasi dari Sumber untuk Pengembangan
- ๐ Dokumentasi
- ๐ Peta Jalan
- ๐ Komunitas
- ๐ Kontribusi
๐ก Apa Itu RAGFlow?
RAGFlow 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.
๐ฎ Demo
Coba demo kami di https://demo.ragflow.io.
๐ฅ Pembaruan Terbaru
- 2024-12-04 Mendukung skor pagerank ke basis pengetahuan.
- 2024-11-22 Peningkatan definisi dan penggunaan variabel di Agen.
- 2024-11-01: Penambahan ekstraksi kata kunci dan pembuatan pertanyaan terkait untuk meningkatkan akurasi pengambilan.
- 2024-08-22: Dukungan untuk teks ke pernyataan SQL melalui RAG.
- 2024-08-02: Dukungan GraphRAG yang terinspirasi oleh graphrag dan mind map.
๐ Tetap Terkini
โญ๏ธ Star repositori kami untuk tetap mendapat informasi tentang fitur baru dan peningkatan menarik! ๐
๐ Fitur Utama
๐ญ "Kualitas Masuk, Kualitas Keluar"
- Ekstraksi pengetahuan berbasis pemahaman dokumen mendalam dari data tidak terstruktur dengan format yang rumit.
- Menemukan "jarum di tumpukan data" dengan token yang hampir tidak terbatas.
๐ฑ Pemotongan Berbasis Template
- Cerdas dan dapat dijelaskan.
- Banyak pilihan template yang tersedia.
๐ฑ Referensi yang Didasarkan pada Data untuk Mengurangi Hallusinasi
- Visualisasi pemotongan teks memungkinkan intervensi manusia.
- Tampilan cepat referensi kunci dan referensi yang dapat dilacak untuk mendukung jawaban yang didasarkan pada fakta.
๐ Kompatibilitas dengan Sumber Data Heterogen
- Mendukung Word, slide, excel, txt, gambar, salinan hasil scan, data terstruktur, halaman web, dan banyak lagi.
๐ Alur Kerja RAG yang Otomatis dan Mudah
- Orkestrasi RAG yang ramping untuk bisnis kecil dan besar.
- LLM yang dapat dikonfigurasi serta model embedding.
- Peringkat ulang berpasangan dengan beberapa pengambilan ulang.
- API intuitif untuk integrasi yang mudah dengan bisnis.
๐ Arsitektur Sistem
๐ฌ Mulai
๐ Prasyarat
- CPU >= 4 inti
- RAM >= 16 GB
- Disk >= 50 GB
- Docker >= 24.0.0 & Docker Compose >= v2.26.1
๐ Menjalankan Server
Pastikan
vm.max_map_count
>= 262144:Untuk memeriksa nilai
vm.max_map_count
:$ sysctl vm.max_map_count
Jika nilainya kurang dari 262144, setel ulang
vm.max_map_count
ke setidaknya 262144:# Dalam contoh ini, kita atur menjadi 262144: $ sudo sysctl -w vm.max_map_count=262144
Perubahan ini akan hilang setelah sistem direboot. Untuk membuat perubahan ini permanen, tambahkan atau perbarui nilai
vm.max_map_count
di /etc/sysctl.conf:vm.max_map_count=262144
Clone repositori:
$ git clone https://github.com/infiniflow/ragflow.git
Bangun image Docker pre-built dan jalankan server:
Perintah di bawah ini mengunduh edisi v0.14.1-slim dari gambar Docker RAGFlow. Silakan merujuk ke tabel berikut untuk deskripsi berbagai edisi RAGFlow. Untuk mengunduh edisi RAGFlow yang berbeda dari v0.14.1-slim, perbarui variabel RAGFLOW_IMAGE di docker/.env sebelum menggunakan docker compose untuk memulai server. Misalnya, atur RAGFLOW_IMAGE=infiniflow/ragflow:v0.14.1 untuk edisi lengkap v0.14.1.
$ cd ragflow $ docker compose -f docker/docker-compose.yml up -d
RAGFlow image tag Image size (GB) Has embedding models? Stable? v0.14.1 โ9 :heavy_check_mark: Stable release v0.14.1-slim โ2 โ Stable release v0.15.0-dev1 โ9 :heavy_check_mark: Unstable beta release v0.15.0-dev1-slim โ2 โ Unstable beta release nightly โ9 :heavy_check_mark: Unstable nightly build nightly-slim โ2 โ Unstable nightly build Periksa status server setelah server aktif dan berjalan:
$ docker logs -f ragflow-server
Output berikut menandakan bahwa sistem berhasil diluncurkan:
____ ___ ______ ______ __ / __ \ / | / ____// ____// /____ _ __ / /_/ // /| | / / __ / /_ / // __ \| | /| / / / _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ / /_/ |_|/_/ |_|\____//_/ /_/ \____/ |__/|__/ * Running on all addresses (0.0.0.0) * Running on http://127.0.0.1:9380 * Running on http://x.x.x.x:9380 INFO:werkzeug:Press CTRL+C to quit
Jika Anda melewatkan langkah ini dan langsung login ke RAGFlow, browser Anda mungkin menampilkan error
network anormal
karena RAGFlow mungkin belum sepenuhnya siap.Buka browser web Anda, masukkan alamat IP server Anda, dan login ke RAGFlow.
Dengan pengaturan default, Anda hanya perlu memasukkan
http://IP_DEVICE_ANDA
(tanpa nomor port) karena port HTTP default80
bisa dihilangkan saat menggunakan konfigurasi default.Dalam service_conf.yaml.template, pilih LLM factory yang diinginkan di
user_default_llm
dan perbarui bidangAPI_KEY
dengan kunci API yang sesuai.Lihat llm_api_key_setup untuk informasi lebih lanjut.
Sistem telah siap digunakan!
๐ง Konfigurasi
Untuk konfigurasi sistem, Anda perlu mengelola file-file berikut:
- .env: Menyimpan pengaturan dasar sistem, seperti
SVR_HTTP_PORT
,MYSQL_PASSWORD
, danMINIO_PASSWORD
. - service_conf.yaml.template: Mengonfigurasi aplikasi backend.
- docker-compose.yml: Sistem ini bergantung pada docker-compose.yml untuk memulai.
Untuk memperbarui port HTTP default (80), buka docker-compose.yml dan ubah 80:80
menjadi <YOUR_SERVING_PORT>:80
.
Pembaruan konfigurasi ini memerlukan reboot semua kontainer agar efektif:
$ docker compose -f docker/docker-compose.yml up -d
๐ง Membangun Docker Image tanpa Model Embedding
Image ini berukuran sekitar 2 GB dan bergantung pada aplikasi LLM eksternal dan embedding.
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/
docker build --build-arg LIGHTEN=1 -f Dockerfile -t infiniflow/ragflow:nightly-slim .
๐ง Membangun Docker Image Termasuk Model Embedding
Image ini berukuran sekitar 9 GB. Karena sudah termasuk model embedding, ia hanya bergantung pada aplikasi LLM eksternal.
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/
docker build -f Dockerfile -t infiniflow/ragflow:nightly .
๐จ Menjalankan Aplikasi dari untuk Pengembangan
Instal Poetry, atau lewati langkah ini jika sudah terinstal:
pipx install poetry export POETRY_VIRTUALENVS_CREATE=true POETRY_VIRTUALENVS_IN_PROJECT=true
Clone kode sumber dan instal dependensi Python:
git clone https://github.com/infiniflow/ragflow.git cd ragflow/ ~/.local/bin/poetry install --sync --no-root # install modul python RAGFlow
Jalankan aplikasi yang diperlukan (MinIO, Elasticsearch, Redis, dan MySQL) menggunakan Docker Compose:
docker compose -f docker/docker-compose-base.yml up -d
Tambahkan baris berikut ke
/etc/hosts
untuk memetakan semua host yang ditentukan di conf/service_conf.yaml ke127.0.0.1
:127.0.0.1 es01 infinity mysql minio redis
Jika Anda tidak dapat mengakses HuggingFace, atur variabel lingkungan
HF_ENDPOINT
untuk menggunakan situs mirror:export HF_ENDPOINT=https://hf-mirror.com
Jalankan aplikasi backend:
source .venv/bin/activate export PYTHONPATH=$(pwd) bash docker/launch_backend_service.sh
Instal dependensi frontend:
cd web npm install --force
Jalankan aplikasi frontend:
npm run dev
Output berikut menandakan bahwa sistem berhasil diluncurkan:
๐ Dokumentasi
๐ Roadmap
Lihat Roadmap RAGFlow 2024
๐ Komunitas
๐ Kontribusi
RAGFlow berkembang melalui kolaborasi open-source. Dalam semangat ini, kami menerima kontribusi dari komunitas. Jika Anda ingin berpartisipasi, tinjau terlebih dahulu Panduan Kontribusi.