Skip to content

Latest commit

 

History

History
340 lines (258 loc) · 13.2 KB

README_id.md

File metadata and controls

340 lines (258 loc) · 13.2 KB

English | 简体中文 | 日本語 | 한국어 | Bahasa Indonesia

Ikuti di X (Twitter) Lencana Daring docker pull infiniflow/ragflow:v0.14.1 Rilis Terbaru Lisensi

📕 Daftar Isi

💡 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

  • 22-11-2024 Peningkatan definisi dan penggunaan variabel di Agen.
  • 2024-11-01: Penambahan ekstraksi kata kunci dan pembuatan pertanyaan terkait untuk meningkatkan akurasi pengambilan.
  • 2024-09-13: Penambahan mode pencarian untuk Q&A basis pengetahuan.
  • 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

  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:

    Perintah di bawah ini akan mengunduh versi dev dari Docker image RAGFlow slim (dev-slim). Image RAGFlow slim tidak termasuk model embedding atau library Python dan berukuran sekitar 1GB.

    $ cd ragflow/docker
    $ docker compose -f docker-compose.yml up -d
    • Untuk mengunduh versi tertentu dari image Docker RAGFlow slim, perbarui variabel RAGFlow_IMAGE di * docker/.env* sesuai dengan versi yang diinginkan. Misalnya, RAGFLOW_IMAGE=infiniflow/ragflow:v0.14.1-slim. Setelah mengubah ini, jalankan ulang perintah di atas untuk memulai unduhan.
    • Untuk mengunduh versi dev dari image Docker RAGFlow termasuk model embedding dan library Python, perbarui variabel RAGFlow_IMAGE di docker/.env menjadi RAGFLOW_IMAGE=infiniflow/ragflow:dev. Setelah mengubah ini, jalankan ulang perintah di atas untuk memulai unduhan.
    • Untuk mengunduh versi tertentu dari image Docker RAGFlow termasuk model embedding dan library Python, perbarui variabel RAGFlow_IMAGE di docker/.env sesuai dengan versi yang diinginkan. Misalnya, RAGFLOW_IMAGE=infiniflow/ragflow:v0.14.1. Setelah mengubah ini, jalankan ulang perintah di atas untuk memulai unduhan.

    CATATAN: Image Docker RAGFlow yang mencakup model embedding dan library Python berukuran sekitar 9GB dan mungkin memerlukan waktu lebih lama untuk dimuat.

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

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

  6. Dalam service_conf.yaml, 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:

Anda harus memastikan bahwa perubahan pada file .env sesuai dengan yang ada di file service_conf.yaml.

File ./docker/README menyediakan penjelasan detail tentang pengaturan lingkungan dan konfigurasi aplikasi, dan Anda DIWAJIBKAN memastikan bahwa semua pengaturan lingkungan yang tercantum di ./docker/README selaras dengan konfigurasi yang sesuai di service_conf.yaml.

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 1 GB dan bergantung pada aplikasi LLM eksternal dan embedding.

git clone https://github.com/infiniflow/ragflow.git
cd ragflow/
pip3 install huggingface-hub nltk
python3 download_deps.py
docker build -f Dockerfile.slim -t infiniflow/ragflow:dev-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/
pip3 install huggingface-hub nltk
python3 download_deps.py
docker build -f Dockerfile -t infiniflow/ragflow:dev .

🔨 Menjalankan Aplikasi dari untuk Pengembangan

  1. Instal Poetry, atau lewati langkah ini jika sudah terinstal:

    curl -sSL https://install.python-poetry.org | python3 -
  2. Clone kode sumber dan instal dependensi Python:

    git clone https://github.com/infiniflow/ragflow.git
    cd ragflow/
    export POETRY_VIRTUALENVS_CREATE=true POETRY_VIRTUALENVS_IN_PROJECT=true
    ~/.local/bin/poetry install --sync --no-root # install modul python RAGFlow
  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 docker/service_conf.yaml ke 127.0.0.1:

    127.0.0.1       es01 infinity mysql minio redis
    

    Di docker/service_conf.yaml, perbarui port mysql ke 5455 dan es ke 1200, sesuai dengan yang ditentukan di docker/.env.

  4. Jika Anda tidak dapat mengakses HuggingFace, atur variabel lingkungan HF_ENDPOINT untuk menggunakan situs mirror:

    export HF_ENDPOINT=https://hf-mirror.com
  5. Jalankan aplikasi backend:

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

    cd web
    npm install --force
  7. 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.