Logo ragflow

Dokumentasi | Peta Jalan | Twitter | Discord | Demo

๐Ÿ“• Daftar Isi

๐Ÿ’ก Apa Itu RAGFlow?

RAGFlow adalah mesin RAG (Retrieval-Augmented Generation) open-source terkemuka yang mengintegrasikan teknologi RAG mutakhir dengan kemampuan Agent untuk menciptakan lapisan kontekstual superior bagi LLM. Menyediakan alur kerja RAG yang efisien dan dapat diadaptasi untuk perusahaan segala skala. Didukung oleh mesin konteks terkonvergensi dan template Agent yang telah dipra-bangun, RAGFlow memungkinkan pengembang mengubah data kompleks menjadi sistem AI kesetiaan-tinggi dan siap-produksi dengan efisiensi dan presisi yang luar biasa.

๐ŸŽฎ Demo

Coba demo kami di https://demo.ragflow.io.

๐Ÿ”ฅ Pembaruan Terbaru

๐ŸŽ‰ Tetap Terkini

โญ๏ธ Star repositori kami untuk tetap mendapat informasi tentang fitur baru dan peningkatan menarik! ๐ŸŒŸ

๐ŸŒŸ Fitur Utama

๐Ÿญ "Kualitas Masuk, Kualitas Keluar"

๐Ÿฑ Pemotongan Berbasis Template

๐ŸŒฑ Referensi yang Didasarkan pada Data untuk Mengurangi Hallusinasi

๐Ÿ” Kompatibilitas dengan Sumber Data Heterogen

๐Ÿ›€ Alur Kerja RAG yang Otomatis dan Mudah

๐Ÿ”Ž Arsitektur Sistem

๐ŸŽฌ Mulai

๐Ÿ“ Prasyarat

[!TIP]
Jika Anda belum menginstal Docker di komputer lokal Anda (Windows, Mac, atau Linux), lihat Install Docker Engine.

๐Ÿš€ Menjalankan Server

  1. 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
    
  2. Clone repositori:

    $ git clone https://github.com/infiniflow/ragflow.git
    
  3. Bangun image Docker pre-built dan jalankan server:

[!CAUTION]
Semua gambar Docker dibangun untuk platform x86. Saat ini, kami tidak menawarkan gambar Docker untuk ARM64.
Jika Anda menggunakan platform ARM64, silakan gunakan panduan ini untuk membangun gambar Docker yang kompatibel dengan sistem Anda.

Perintah di bawah ini mengunduh edisi v0.20.5-slim dari gambar Docker RAGFlow. Silakan merujuk ke tabel berikut untuk deskripsi berbagai edisi RAGFlow. Untuk mengunduh edisi RAGFlow yang berbeda dari v0.20.5-slim, perbarui variabel RAGFLOW_IMAGE di docker/.env sebelum menggunakan docker compose untuk memulai server. Misalnya, atur RAGFLOW_IMAGE=infiniflow/ragflow:v0.20.5 untuk edisi lengkap v0.20.5.

$ cd ragflow/docker
# Use CPU for embedding and DeepDoc tasks:
$ docker compose -f docker-compose.yml up -d

# To use GPU to accelerate embedding and DeepDoc tasks:
# docker compose -f docker-compose-gpu.yml up -d

RAGFlow image tag

Image size (GB)

Has embedding models?

Stable?

v0.20.5

โ‰ˆ9

:heavy_check_mark:

Stable release

v0.20.5-slim

โ‰ˆ2

โŒ

Stable release

nightly

โ‰ˆ9

:heavy_check_mark:

Unstable nightly build

nightly-slim

โ‰ˆ2

โŒ

Unstable nightly build

  1. 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)
    

    Jika Anda melewatkan langkah ini dan langsung login ke RAGFlow, browser Anda mungkin menampilkan error network anormal
    karena RAGFlow mungkin belum sepenuhnya siap.

  2. 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 default 80 bisa dihilangkan saat menggunakan konfigurasi default.

  3. Dalam service_conf.yaml.template, pilih LLM factory yang diinginkan di user_default_llm dan perbarui
    bidang API_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:

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-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 --platform linux/amd64 --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 --platform linux/amd64 -f Dockerfile -t infiniflow/ragflow:nightly .

๐Ÿ”จ Menjalankan Aplikasi dari untuk Pengembangan

  1. Instal uv dan pre-commit, atau lewati langkah ini jika sudah terinstal:

    pipx install uv pre-commit
    
  2. Clone kode sumber dan instal dependensi Python:

    git clone https://github.com/infiniflow/ragflow.git
    cd ragflow/
    uv sync --python 3.10 --all-extras # install RAGFlow dependent python modules
    uv run download_deps.py
    pre-commit install
    
  3. 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 ke 127.0.0.1:

    127.0.0.1       es01 infinity mysql minio redis sandbox-executor-manager
    
  4. Jika Anda tidak dapat mengakses HuggingFace, atur variabel lingkungan HF_ENDPOINT untuk menggunakan situs mirror:

    export HF_ENDPOINT=https://hf-mirror.com
    
  5. Jika sistem operasi Anda tidak memiliki jemalloc, instal sebagai berikut:

    # ubuntu
    sudo apt-get install libjemalloc-dev
    # centos
    sudo yum install jemalloc
    # mac
    sudo brew install jemalloc
    
  6. Jalankan aplikasi backend:

    source .venv/bin/activate
    export PYTHONPATH=$(pwd)
    bash docker/launch_backend_service.sh
    
  7. Instal dependensi frontend:

    cd web
    npm install
    
  8. Jalankan aplikasi frontend:

    npm run dev
    

    Output berikut menandakan bahwa sistem berhasil diluncurkan:

  9. Hentikan layanan front-end dan back-end RAGFlow setelah pengembangan selesai:

    pkill -f "ragflow_server.py|task_executor.py"
    

๐Ÿ“š Dokumentasi

๐Ÿ“œ Roadmap

Lihat Roadmap RAGFlow 2025

๐Ÿ„ 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.