Files
ragflow/README_id.md
T
xugangqiang 6a2ef7ec6b refactor(deps): rename ragflow_deps directory to deps (#21345)
## Summary

Rename the repository dependency-resource directory `ragflow_deps/` to
`deps/`, and update every hardcoded reference to that directory name so
the rename does not break resource loading at build/runtime.

This is not a purely cosmetic rename: the Go runtime hardcodes the
directory name as a resource search path (e.g.
`internal/common/model_assets.go` trimming the `deps/` prefix, and the
tokenizers joining `deps/` into candidate paths), and the Dockerfiles
copy assets into `/ragflow/deps`. Those literals must move together with
the directory, otherwise assets fail to resolve.

## Two intentional exceptions (kept unchanged)

The rename deliberately keeps two names that only *coincidentally*
contained the old string:

- The published image tag `infiniflow/ragflow_deps:latest` (used by
`Dockerfile`, `Dockerfile_base`, docs, and CI `image inspect` checks).
- The CI install path `/opt/ragflow_deps` inside the CI runner image
(`build.sh` `SYSTEM_DEPS_TOKENIZER`).

## Changes

- `git mv ragflow_deps deps`.
- `build.sh`: `CL100K_TABLE_RELPATH`, native asset zip path, and related
references updated to `deps/`.
- `tools/scripts/download_dev_deps.py`: `RAGFLOW_DEPS_DIR` points at
`deps/`.
- Go runtime resource search paths (`internal/common`,
`internal/tokenizer`) updated to the `deps/` layout.
- `Dockerfile` / `Dockerfile_base`: container asset path changed to
`/ragflow/deps`; kept tag `infiniflow/ragflow_deps:latest` unchanged.
- Docs / `AGENTS.md` / CI workflow paths updated to the new directory
name.

## Test plan

- Go unit tests in `internal/common` and `internal/tokenizer` updated to
the new `deps/` layout and pass via `bash build.sh --test`.
- Python download scripts import and build URLs correctly (`py_compile`
clean).
- Added `tools/scripts/test_dep_rename_invariants.py` as a regression
guard asserting the two intentional exceptions (`/opt/ragflow_deps` and
`infiniflow/ragflow_deps`) stay intact, so a future blanket rename
cannot silently regress them.

---

## Follow-up fix (commit 2f6857095d)

The original rename used a blanket `sed s/ragflow_deps/deps/g` and only
selectively reverted `build.sh`. That left two intentionally-kept names
rewritten, which this follow-up restores:

- CI install path `/opt/ragflow_deps` — `sep-tests.yml` had been changed
to read `/opt/deps`, breaking the offline cl100k table fallback (the
cached-image path pointed at a directory that never receives the file).
Restored to `/opt/ragflow_deps`.
- Published image tag `infiniflow/ragflow_deps` — left as bare
`infiniflow/deps` in `sep-tests.yml` comments/echo, `.dockerignore`, and
`Dockerfile` / `Dockerfile_base` error messages. Restored to
`infiniflow/ragflow_deps`.

The regression guard `tools/scripts/test_dep_rename_invariants.py` was
added to prevent recurrence.
2026-10-22 19:20:42 +08:00

14 KiB
Raw Blame History

README in English 简体中文版自述文件 繁體中文版自述文件 日本語のREADME 한국어 README en Français Bahasa Indonesia Português(Brasil) README in Arabic Türkçe README Русская версия README

Ikuti di X (Twitter) Lencana Daring RAGFlow Docker image downloads Rilis Terbaru Lisensi

Cloud | Dokumentasi | Peta Jalan | Discord

RAGFlow in the GitHub Octoverse
infiniflow%2Fragflow | Trendshift
📕 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.

🎮 Mulai

Coba layanan cloud kami di https://cloud.ragflow.io.

Chunking demonstration Agentic workflow demonstration

🔥 Pembaruan Terbaru

  • 2026-09-29 RAGFlow 1.0.0-rc1 dirilis.

  • 2026-09-10 Menambahkan ingest konten situs web melalui sitemap.

  • 2026-08-19 Memperkenalkan Knowledge Compilation untuk menghasilkan Wiki, Graph, Tree, PageIndex, Mind Map, Timeline, dan Skills pada tingkat dokumen dan dataset.

  • 2026-08-19 Memperkenalkan Agentic RAG dengan mode berpikir Low, Medium, High, dan Ultra.

  • 2026-07-02 Menambahkan ingest sumber data Google BigQuery dan sinkronisasi inkremental.

Lihat catatan rilis lengkap untuk pembaruan lainnya.

🎉 Tetap Terkini

⭐️ Star repositori kami untuk tetap mendapat informasi tentang fitur baru dan peningkatan menarik! 🌟

RAGFlow feature updates

🌟 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.

🧩 Kompilasi Pengetahuan (Knowledge Compilation)

  • Ubah konten pada tingkat dokumen dan dataset menjadi artefak terstruktur seperti Wiki, Graph, Tree, PageIndex, Mind Map, Timeline, dan Skills.
  • Atur model kompilasi serta aturan pemrosesan, lalu lihat, perbarui, atau buat ulang artefak pengetahuan.

🧠 Pengambilan Agentic (Agentic Retrieval)

  • Model menganalisis pertanyaan kompleks dan bila perlu memecahnya, mencari pengetahuan, serta memverifikasi bukti melalui beberapa tahap.
  • Mode Low, Medium, High, dan Ultra menyesuaikan kedalaman pencarian dan penalaran dengan kompleksitas pertanyaan.

🌱 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 dokumen Word, presentasi PowerPoint, spreadsheet Excel, file TXT, gambar, PDF, salinan hasil pemindaian, 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

RAGFlow system architecture

🏠 Deployment Lokal

Deployment lokal mendukung Docker dan menjalankan dari sumber. Docker cocok untuk evaluasi cepat, pengujian integrasi, dan produksi, sedangkan sumber ditujukan untuk pengembangan dan debugging RAGFlow. Docker tidak memerlukan compiler Go; sumber memerlukan versi Go dalam go.mod, serta Node.js dan npm untuk pengembangan frontend.

🐳 Deployment Docker

📝 Prasyarat Deployment Docker

  • Konfigurasi awal yang disarankan: 4 core CPU, RAM 16 GB, dan ruang disk kosong 50 GB.
  • Docker ≥ 24.0.0, Docker Compose ≥ v2.26.1.

🚀 Menjalankan Server

  1. Jika menggunakan Elasticsearch, atur vm.max_map_count minimal 262144. Langkah ini biasanya tidak diperlukan dengan Infinity:

    sysctl vm.max_map_count
    sudo sysctl -w vm.max_map_count=262144
    
  2. Clone repositori:

    git clone https://github.com/infiniflow/ragflow.git
    
  3. Masuk ke direktori Docker, checkout tag rilis, lalu jalankan layanan:

    cd ragflow/docker
    git checkout v1.0.0-rc2
    docker compose -f docker-compose.yml up -d
    

    RAGFlow 1.0 open source uses CPU inference for DeepDoc layout analysis, OCR, and table recognition.

  4. Periksa status dependensi dan kesiapan API:

    curl -f http://localhost/api/v1/system/healthz
    docker logs --tail 50 ragflow-cpu
    
  5. Buka http://IP_OF_YOUR_MACHINE di browser dan masuk. Dengan konfigurasi default, port HTTP 80 dapat dihilangkan.

  6. Tambahkan LLM, embedding, dan reranker pada halaman penyedia model, beserta nama model, alamat layanan, dan API key.

    llm_api_key_setup

Lihat panduan mulai cepat untuk detail selengkapnya.

⚙️ Konfigurasi dan Penyesuaian Docker

Docker menggunakan docker/.env dan docker/docker-compose.yml. Ikuti panduan konfigurasi Docker untuk image, port, kata sandi, mesin dokumen, dan sumber image model. Untuk dukungan platform dan build dari sumber, lihat panduan build image Go. macOS saat ini tidak didukung.

🔨 Menjalankan dari Sumber

📝 Prasyarat Build dari Sumber

  1. Clone repositori dan instal versi Go dalam go.mod, Clang 20, LLD 20, CMake ≥ 4.0, file pengembangan PCRE2, dan pustaka native yang diperlukan CGO.

    git clone https://github.com/infiniflow/ragflow.git
    cd ragflow
    
  2. Jalankan skrip pengunduh dependensi untuk menyiapkan pustaka native statis yang ditautkan oleh build Go (download_dev_deps.py) dan sumber daya model / tokenizer yang dimuat backend saat runtime (download_deps.py):

    uv run tools/scripts/download_dev_deps.py
    uv run deps/download_deps.py
    

    download_dev_deps.py mengunduh dan mengekstrak pdfium, pdf_oxide, office_oxide, dan onnxruntime ke ~/ragflow-native-libs; download_deps.py mengunduh kosakata cl100k, model DeepDoc, dan aset tokenizer embedding ke deps/. Keduanya adalah skrip Python; uv run memasang dependensi yang dideklarasikan secara otomatis (requests, plus huggingface-hub untuk unduhan model dan tokenizer). Lewati langkah ini jika Anda sudah menyiapkan sumber daya yang sama dengan cara lain. Saat dijalankan dari akar repositori, layanan Go secara otomatis menemukan internal/rag/res/deepdoc; untuk menjalankan dari direktori lain, tetapkan DEEPDOC_MODEL_DIR ke jalur absolutnya.

  3. Build layanan:

    ./build.sh --all
    
  4. Jalankan dependensi lokal dan pastikan host serta port di conf/service_conf.yaml dapat diakses:

    sudo sysctl -w vm.max_map_count=262144
    docker compose --env-file docker/.env -f docker/docker-compose-base.yml up -d --wait es01 mysql minio nats kvrocks
    
  5. Migrasikan database:

    ./bin/ragflow_server --migrate
    
  6. Jalankan empat layanan dalam empat terminal terpisah:

    Terminal 1: Admin pada port 9381.

    ./bin/ragflow_server --admin
    
    ./bin/ragflow_server --ingestor
    

    Terminal 3: Syncer.

    ./bin/ragflow_server --syncer
    

    Terminal 4: API pada port 9380.

    ./bin/ragflow_server --api
    
  7. Hanya untuk pengembangan frontend, instal Node.js dan npm, lalu periksa kesiapan API:

    cd web
    npm install
    curl -f http://127.0.0.1:9380/api/v1/system/healthz
    

Lihat Menjalankan Layanan dari Sumber untuk detailnya.

Catatan operasional: agar pengaturan Elasticsearch permanen, tambahkan vm.max_map_count=262144 ke /etc/sysctl.conf. Dengan MySQL default, entrypoint image Docker menjalankan migrasi sebelum memulai Admin, Syncer, Ingestor, dan API. DeepDoc open-source 1.0 memakai inferensi CPU untuk layout, OCR, dan tabel. Setelah konfigurasi Docker berubah, mulai ulang layanan dan ikuti panduan Docker untuk mempertahankan atau menghapus data. download_dev_deps.py menyiapkan pustaka native untuk build Go, dan download_deps.py menyiapkan model, aset tokenizer, serta tabel cl100k; keduanya dijalankan melalui uv run. --migrate menjalankan migrasi lalu keluar; --admin memulai layanan administrasi, --ingestor layanan ingestion, --syncer layanan sinkronisasi sumber data eksternal, dan --api layanan API untuk Web UI dan SDK. HTTP 200 berarti API siap.

📚 Dokumentasi

📜 Roadmap

Lihat Roadmap RAGFlow 2026

🏄 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.