Cara Menggunakan RAGFlow: Panduan Praktikal untuk Membina Aplikasi RAG yang Boleh Dipercayai
Jika anda pernah cuba membina sistem penjanaan tambahan-pengambilan (RAG), anda mungkin telah menemui masalah klasik: halusinasi, pengambilan yang tidak menentu, saluran paip yang perlahan, dan prapemprosesan dokumen yang bersepah. RAGFlow bertindak sebagai alat aliran kerja hujung-ke-hujung yang membantu anda mengatur pengambilan dokumen, pengepungan, vektorisasi, pengambilan, dan penjanaan dengan lebih kawalan dan kebolehperhatian.
Panduan ini mengambil pendekatan yang praktikal & berorientasikan penyelesaian. Kami akan membimbing anda melalui persediaan yang bersih, menunjukkan cara menggunakan RAGFlow untuk dokumen sebenar, dan berkongsi corak yang benar-benar mengurangkan halusinasi dan meningkatkan kualiti jawapan.
Apakah RAGFlow dan mengapa menggunakannya?
RAGFlow ialah sistem untuk membina saluran paip Penjanaan Tambahan-Pengambilan. Dalam persediaan RAG yang tipikal, anda:
- Mengambil dokumen (PDF, halaman web, slaid, kod, dll.)
- Mengepung kandungan ke dalam unit yang boleh diambil
- Membenamkan ketulan ke dalam vektor untuk carian semantik
- Mengambil ketulan yang paling relevan pada masa soalan
- Menjana jawapan berasaskan menggunakan LLM
RAGFlow menambah lalai yang berpendirian, blok aliran kerja dan rel panduan supaya anda boleh berulang dengan lebih pantas dan menghantar aplikasi yang lebih dipercayai. Ia amat berguna jika anda mahu:
- Pengepungan dan metadata yang konsisten: Pengambilan yang lebih baik bermula dengan ketulan yang lebih baik.
- Pembenaman dan LLM boleh pasang: Tukar OpenAI, model tempatan atau titik akhir perusahaan.
- Penilaian dan rel panduan: Ukur kualiti pengambilan dan kurangkan halusinasi.
- Saluran paip boleh guna: Beralih daripada buku nota kepada pengeluaran dengan kurang penulisan semula.
Mula cepat: Dari sifar ke saluran paip RAGFlow yang berfungsi
Di bawah ialah aliran kerja hujung-ke-hujung yang minimum yang boleh anda sesuaikan. Walaupun persekitaran anda berbeza, urutan dan rel panduan boleh dipindahkan.
1) Sediakan persekitaran anda
- Cipta
.env dengan kunci anda:
OPENAI_API_KEY (atau pembekal LLM lain)
EMBEDDINGS_API_KEY (jika menggunakan pembekal yang berasingan)
VECTOR_DB_URL (cth., Pinecone, Weaviate, Qdrant, atau tempatan)
- Tetapkan direktori projek, cth.,
ragflow-project/ dengan folder:
data/processed/ (ketulan yang dibersihkan)
configs/ (YAML/JSON untuk tetapan saluran paip)
eval/ (set data dan laporan)
2) Ambil dokumen dengan metadata yang bersih
Metadata yang baik = pengambilan yang lebih baik. Normalkan tajuk, pengarang, tarikh dan sumber.
- Tukar PDF dan slaid kepada teks dengan penghurai yang teguh
- Kekalkan struktur: tajuk, senarai, blok kod dan jadual
- Lampirkan metadata pada setiap ketulan:
source, section, page, timestamp, version
Tip: Kekalkan doc_id dan chunk_id untuk menyokong petikan dan pengambilan semula.
3) Pilih strategi pengepungan yang sesuai dengan kandungan anda
Pengepungan sangat mempengaruhi kualiti dan latensi pengambilan.
- Untuk dokumen naratif: pengepungan semantik (pecah mengikut tajuk/perenggan)
- Untuk dokumen teknikal: gunakan pengepungan hibrid (semantik + tetingkap tetap)
- Untuk kod: ketulan mengikut fungsi/kelas dengan tetingkap gelongsor kecil
Tetapan yang disyorkan untuk bermula:
chunk_size: 600–1,000 token
chunk_overlap: 50–100 token
max_depth: hadkan bahagian bersarang kepada 2–3 tahap untuk mengelakkan pemecahan
4) Pilih pembenaman dan stor vektor
- Mulakan dengan model pembenaman tujuan umum yang kukuh (cth., text‑embedding‑3‑large atau model tempatan moden). Jika privasi adalah kunci, pertimbangkan pembenaman yang dihoskan sendiri.
- Gunakan DB vektor yang menyokong:
- Carian hibrid (padat + kata kunci)
- Penapis (kekangan metadata)
- Upsert kelompok dan metrik indeks
Tetapan indeks untuk diuji:
top_k = 5–10 untuk pengambilan awal
similarity_metric = cosine (atau dot untuk model tertentu)
- Dayakan kerelevanan marginal maks (MMR) untuk mengurangkan pertindihan
5) Pengaturan pengambilan
Laksanakan pengambil dua peringkat:
- Imbas kembali calon yang pantas
- Carian hibrid (BM25 + padat)
top_k yang besar (cth., 30–50)
- Penyusun semula pengekod silang atau pemarkahan berasaskan LLM
- Kurangkan kepada
top_k akhir (cth., 5–8)
Tambahkan penapis metadata: source:"handbook" AND section:"benefits" AND version:"v2" untuk mengehadkan jawapan kepada dokumen yang dipercayai.
6) Penjanaan berasaskan dengan struktur
Gesaan anda harus menguatkuasakan petikan dan penolakan apabila bukti lemah.
Contoh gesaan sistem:
Anda ialah pembantu yang berhati-hati. Jawab HANYA dengan maklumat yang disokong oleh konteks yang disediakan.
- Petik sumber sebaris sebagai [doc_id:chunk_id].
- Jika konteks tidak mencukupi, katakan "Maklumat tidak mencukupi dalam dokumen yang disediakan."
- Jangan mencipta fakta.
Templat gesaan pengguna:
Soalan: {query}
Konteks:
{top_chunks}
Arahan:
- Berikan jawapan ringkas dahulu, kemudian butiran.
- Sertakan petikan selepas setiap tuntutan faktual.
7) Tambahkan rel panduan untuk mengurangkan halusinasi
- Semakan kebolehjawapan: Sebelum penjanaan, tanya model kecil: “Adakah terdapat bukti langsung dalam ketulan yang diambil?” Jika tidak, kembalikan soalan penjelasan.
- Dasar Petik‑atau‑senyap: Sekat output yang tidak mempunyai petikan.
- Penapis Ketoksikan/PII untuk kandungan perusahaan.
8) Penilaian dan penambahbaikan berterusan
Cipta set eval/ dengan:
- 50–200 soalan pengguna sebenar
- Jawapan kebenaran dasar (atau rujukan yang dipercayai)
- Sumber yang dijangkakan (id doc) jika berkenaan
Ukur:
- Kadar hit pengambilan (adakah sumber emas muncul dalam top‑k?)
- Kesetiaan jawapan (pernyataan yang disokong petikan)
- Latensi (hujung-ke-hujung p95)
- Kos (setiap 100 pertanyaan)
Ulangi pada:
- Saiz dan pertindihan ketulan
- Penyusun semula lawan top‑k yang lebih tinggi
- Struktur dan kekangan gesaan
Saluran paip RAGFlow penuh: Contoh konfigurasi
Di bawah ialah konfigurasi konsep yang boleh anda sesuaikan dengan rantai alat anda. Gantikan nama pembekal seperti yang diperlukan.
project: product-handbook-rag
io:
input_path: data/raw/
output_index: product-handbook-index
parsing:
pdf:
strategy: auto
keep_layout: true
extract_tables: true
markdown:
preserve_headings: true
chunking:
method: semantic_hybrid
target_tokens: 800
overlap_tokens: 80
windowing: 2
metadata:
fields: [doc_id, title, section, page, version, source]
embeddings:
provider: openai
model: text-embedding-3-large
vectorstore:
type: qdrant
url: ${VECTOR_DB_URL}
similarity: cosine
retrieval:
hybrid: true
lexical_weight: 0.35
semantic_weight: 0.65
candidate_top_k: 40
rerank:
enabled: true
model: bge-reranker-large
final_top_k: 7
generation:
llm: gpt-4o
temperature: 0.2
cite_or_silence: true
guardrails:
answerability_check: true
pii_filter: true
toxicity_filter: moderate
monitoring:
log_traces: true
latency_budget_ms: 3500
cost_budget_per_100: 1.25
Cara menggunakan RAGFlow untuk pelbagai jenis kandungan
Manual dan buku panduan produk
- Utamakan pengepungan semantik dengan sempadan bahagian yang jelas
- Lampirkan versi dan tarikh kuat kuasa untuk mengelakkan jawapan yang lapuk
- Gunakan penapis yang ketat: sentiasa memerlukan
version = latest
Pangkalan pengetahuan dan Soalan Lazim
- Gunakan ketulan yang lebih kecil (400–600 token) untuk jawapan yang tepat
- Tingkatkan kumpulan calon dan bergantung pada penyusunan semula untuk mencari coretan yang tepat
- Jana pasangan S/J kanonik secara automatik untuk meningkatkan imbasan kembali melalui carian leksikal
Dokumen dan kod kejuruteraan
- Ketulan mengikut fungsi/modul dan sertakan graf import dalam metadata
- Dayakan pengambilan induk-anak: kembalikan fungsi + konteks rentetan doknya
- Gunakan penyusun semula sedar kod untuk mengutamakan simbol yang berkaitan
Perundangan dan pematuhan
- Memerlukan petikan peringkat perenggan
- Tambahkan logik penolakan untuk konteks yang tidak lengkap
- Kekalkan set emas sumber yang diluluskan pengawal selia dalam indeks yang berasingan
Corak gesaan yang benar-benar berkesan
- Jawab kemudian petik: Jawapan pendek di atas; petikan sebaris selepas setiap tuntutan
- Rangkaian pengambilan: Minta model meringkaskan setiap ketulan dahulu, kemudian mensintesis
- Tulis semula pertanyaan: Kembangkan pertanyaan pengguna dengan sinonim dan istilah domain sebelum pengambilan
- Gesaan kontras: “Terangkan mengapa pilihan A lebih baik daripada B berdasarkan konteks.” Ini memaksa penggunaan bukti
Contoh langkah tulis semula pertanyaan:
Asal: "apakah dasar bawa ke hadapan PTO kami?"
Tulis semula: "dasar bawa ke hadapan masa bercuti berbayar; pusingan ganti percutian; jam maksimum; versi dasar terkini"
Keterperhatian dan gelung maklum balas
- Log ketulan mana yang digunakan, skor mereka dan mana yang diabaikan
- Tangkap ibu jari ke atas/bawah dengan rasional yang pendek; suapkan kembali ke dalam penalaan pengambil
- Jalankan ujian regresi mingguan pada set eval anda sebelum menggunakan sebarang perubahan model
Lembaran contekan penalaan prestasi
- Jika jawapan berasa generik: tingkatkan
candidate_top_k dan tambahkan penyusun semula yang lebih kuat
- Jika jawapan terlepas butiran: kurangkan saiz ketulan; tingkatkan berat leksikal sedikit
- Jika petikan mengulangi ketulan yang sama: dayakan MMR dan tingkatkan kepelbagaian
- Jika latensi tinggi: cache pembenaman, prakira penulisan semula pertanyaan, gunakan penyusun semula yang lebih kecil
- Jika kos meningkat: gerakkan suhu penjanaan ke bawah, pendekkan gesaan, cuba LLM yang lebih kecil untuk hantaran pertama
Keperluan keselamatan dan tadbir urus
- Sulitkan vektor yang disimpan dan sembunyikan medan sensitif dalam metadata
- Gunakan kawalan akses setiap indeks; segmen mengikut pasukan atau sensitiviti data
- Kekalkan rekod salasilah data: URL sumber doc, jumlah semak dan cap waktu pengambilan
Petikan kajian kes: Daripada PDF yang bersepah kepada jawapan yang dipercayai
Pasukan sokongan mengambil 1,200 halaman PDF. Pengambilan awal tidak konsisten; ejen tidak mempercayai bot. Selepas bertukar kepada pengepungan semantik‑hibrid (800 token, 80 pertindihan), mendayakan penyusunan semula pengekod silang dan menguatkuasakan petik‑atau‑senyap, kadar hit top‑k meningkat daripada 62% kepada 89%, dan penggunaan ejen meningkat dua kali ganda. Kuncinya bukanlah LLM yang lebih besar—ia adalah ketulan yang lebih bersih dan pengambilan yang lebih ketat.
Tip alat: Ulangan pantas dengan bar sisi AI
Perlu diingatkan: jika anda bereksperimen dengan gesaan dan coretan pengambilan merentasi banyak dokumen, pembantu AI yang membolehkan anda bersembang melalui PDF, halaman web dan kod terus dari penyemak imbas boleh mempercepatkan ulangan. By the way, Sider.AI (https://sider.ai/) menawarkan bar sisi AI yang membolehkan anda menarik konteks dari halaman yang anda berada, meringkaskan dan memperhalusi gesaan dengan cepat. Ia berguna untuk membuat prototaip gesaan RAG dan menguji kualiti ketulan sebelum anda memformalkan saluran paip. Penyelesaian Masalah RAGFlow: Pembetulan Pantas
- “Model ini yakin tetapi salah.”
- Dayakan semakan kebolehjawapan; turunkan suhu; memerlukan petikan
- “Carian mengembalikan hampir‑pendua.”
- Hidupkan MMR; tambahkan penyusun semula; kurangkan pertindihan ketulan
- “Latensi meningkat pada puncak.”
- Pembenaman kelompok; cache penulisan semula pertanyaan; gunakan penjanaan penstriman
- “Dasar lama terus muncul.”
- Tapis pada
version = latest; usangkan atau batalkan dokumen yang lapuk
Langkah seterusnya: Jadikan RAGFlow anda boleh dipercayai dalam pengeluaran
- Mulakan dengan korpus kecil yang dipercayai; sempurnakan pengepungan dan penapis dahulu
- Tambahkan penyusun semula sebelum menaik taraf LLM
- Bina set eval 100‑soalan dan jejak kadar hit setiap minggu
- Sambungkan maklum balas pengguna untuk terus menala pengambilan
Perkara utama:
- Kualiti pengambilan mengalahkan saiz model untuk RAG
- Pengepungan, metadata dan penyusunan semula ialah tuas teras anda
- Rel panduan seperti petik‑atau‑senyap meningkatkan kepercayaan secara mendadak
- Melabur awal dalam keterperhatian dan penilaian
Dengan amalan ini, RAGFlow menjadi tulang belakang yang boleh dipercayai untuk jawapan berasaskan—sama ada anda menjana bot bantuan, juruterbang pembangun atau pembantu pengetahuan dalaman.
Soalan Lazim
S1: Apakah itu RAGFlow dan bagaimana saya menggunakannya untuk QA dokumen?
RAGFlow ialah rangka kerja untuk membina saluran paip penjanaan tambahan-pengambilan. Anda mengambil, mengepung, membenamkan, mengambil dan menjana jawapan dengan petikan untuk mengurangkan halusinasi dan meningkatkan ketepatan.
S2: Bagaimanakah saya harus mengepung dokumen dalam RAGFlow?
Gunakan pengepungan semantik atau hibrid dengan ketulan token 600–1,000 dan pertindihan token 50–100. Untuk kod, ketulan mengikut fungsi atau kelas dan sertakan konteks sekeliling.
S3: Pangkalan data vektor manakah yang berfungsi paling baik dengan RAGFlow?
Pilih stor yang menyokong carian hibrid, penapis metadata dan penyusunan semula—Qdrant, Weaviate, Pinecone atau pilihan tempatan adalah pilihan biasa.
S4: Bagaimanakah saya mencegah halusinasi dalam aplikasi RAGFlow?
Kuatkuasakan dasar petik‑atau‑senyap, tambahkan semakan kebolehjawapan sebelum penjanaan dan kekalkan gesaan yang ketat tentang menggunakan hanya konteks yang diambil.
S5: Metrik apakah yang perlu saya jejak untuk menilai RAGFlow?
Pantau kadar hit pengambilan, kesetiaan jawapan, latensi dan kos setiap 100 pertanyaan, dan kekalkan set penilaian yang kecil tetapi mewakili.