Ako používať RAGFlow: Praktický sprievodca tvorbou spoľahlivých RAG aplikácií
Ak ste sa pokúšali vytvoriť systém na generovanie rozšírené o vyhľadávanie (RAG), pravdepodobne ste narazili na klasické problémy: halucinácie, nestabilné vyhľadávanie, pomalé spracovanie a neprehľadné predbežné spracovanie dokumentov. RAGFlow vstupuje ako komplexný nástroj pre pracovné postupy, ktorý vám pomôže riadiť príjem dokumentov, delenie na časti, vektorizáciu, vyhľadávanie a generovanie s väčšou kontrolou a dohľadom.
Táto príručka pristupuje prakticky a orientuje sa na riešenia. Prejdeme si čisté nastavenie, ukážeme vám, ako používať RAGFlow pre skutočné dokumenty, a podelíme sa o vzorce, ktoré skutočne znižujú halucinácie a zlepšujú kvalitu odpovedí.
Čo je RAGFlow a prečo ho používať?
RAGFlow je systém na vytváranie pre generovanie rozšírené o vyhľadávanie. V typickom nastavení RAG:
- Príjem dokumentov (PDF, webové stránky, prezentácie, kód atď.)
- Rozdelenie obsahu na vyhľadateľné jednotky
- Vloženie častí do vektorov pre sémantické vyhľadávanie
- Vyhľadanie top‑k relevantných častí v čase otázky
- Generovanie odôvodnenej odpovede pomocou LLM
RAGFlow pridáva predvolené nastavenia, bloky pracovného postupu a ochranné mechanizmy, aby ste mohli rýchlejšie iterovať a dodávať spoľahlivejšie aplikácie. Je to obzvlášť užitočné, ak chcete:
- Konzistentné delenie na časti a metadáta: Lepšie vyhľadávanie začína lepšími časťami.
- Pripojiteľné vkladanie a LLM: Vymeňte OpenAI, lokálne modely alebo podnikové koncové body.
- Hodnotenia a ochranné mechanizmy: Merajte kvalitu vyhľadávania a znižujte halucinácie.
- Nasadzovateľné <i>pipeline</i>: Presuňte sa z do produkcie s menším počtom prepisovaní.
Rýchly štart: Od nuly k funkčnému RAGFlow
Nižšie je uvedený minimálny, komplexný pracovný postup, ktorý si môžete prispôsobiť. Aj keď sa vaše prostredie líši, postupnosť a ochranné mechanizmy sú prenosné.
1) Pripravte si prostredie
- Vytvorte
.env s vašimi kľúčmi:
OPENAI_API_KEY (alebo iný poskytovateľ LLM)
EMBEDDINGS_API_KEY (ak používate samostatného poskytovateľa)
VECTOR_DB_URL (napr. Pinecone, Weaviate, Qdrant alebo lokálne)
- Nastavte adresár projektu, napr.
ragflow-project/ s priečinkami:
data/raw/ (zdrojové súbory)
data/processed/ (vyčistené časti)
configs/ (YAML/JSON pre nastavenia )
eval/ (dátové sady a správy)
2) Príjem dokumentov s čistými metadátami
Dobré metadáta = lepšie vyhľadávanie. Normalizujte názvy, autorov, dátumy a zdroje.
- Konvertujte PDF a prezentácie na text pomocou robustného analyzátora
- Zachovajte štruktúru: nadpisy, zoznamy, bloky kódu a tabuľky
- Pripojte metadáta ku každej časti:
source, section, page, timestamp, version
Tip: Udržujte si doc_id a chunk_id na podporu citácií a opakovaného príjmu.
3) Vyberte stratégiu delenia na časti, ktorá vyhovuje vášmu obsahu
Delenie na časti silne ovplyvňuje kvalitu vyhľadávania a latenciu.
- Pre dokumenty: sémantické delenie na časti (rozdelenie podľa nadpisov/odsekov)
- Pre technické dokumenty: použite hybridné delenie na časti (sémantické + pevné okno)
- Pre kód: rozdeľte podľa funkcie/triedy s malým posuvným oknom
Odporúčané nastavenia na začiatok:
max_depth: obmedzte vnorené sekcie na 2–3 úrovne, aby ste predišli fragmentácii
4) Vyberte vkladanie a vektorové úložisko
- Začnite so silným modelom na vkladanie na všeobecné účely (napr. text‑embedding‑3‑large alebo moderný lokálny model). Ak je kľúčové súkromie, zvážte vlastné hostované vkladanie.
- Použite vektorovú DB, ktorá podporuje:
- Hybridné vyhľadávanie (husté + kľúčové slovo)
- Filtre (obmedzenia metadát)
- Dávkové vkladanie a indexové metriky
Nastavenia indexu na testovanie:
top_k = 5–10 pre počiatočné vyhľadávanie
similarity_metric = cosine (alebo pre určité modely)
- Povoľte maximálnu marginálnu relevanciu (MMR) na zníženie redundancie
5) Organizácia vyhľadávania
Implementujte dvojfázové vyhľadávanie:
- Rýchle vyvolanie kandidáta
- Hybridné vyhľadávanie (BM25 + husté)
- Veľké
top_k (napr. 30–50)
- alebo bodovanie založené na LLM
- Znížte na konečné
top_k (napr. 5–8)
Pridajte filtre metadát: source:"handbook" AND section:"benefits" AND version:"v2" na obmedzenie odpovedí na dôveryhodné dokumenty.
6) Odôvodnené generovanie so štruktúrou
Vaša výzva by mala vynucovať citácie a odmietnutie, keď sú dôkazy slabé.
Príklad systémovej výzvy:
Ste opatrný asistent. Odpovedajte IBA informáciami podloženými poskytnutým kontextom.
- Citujte zdroje priamo ako [doc_id:chunk_id].
- Ak kontext nie je dostatočný, povedzte: „V poskytnutých dokumentoch nie je dostatok informácií.“
- Nevymýšľajte si fakty.
Šablóna výzvy pre používateľa:
Otázka: {query}
Kontext:
{top_chunks}
Inštrukcie:
- Najprv poskytnite stručnú odpoveď, potom podrobnosti.
- Uveďte citácie za každým faktickým tvrdením.
7) Pridajte ochranné mechanizmy na zníženie halucinácií
- Kontrola odpovedateľnosti: Pred generovaním sa opýtajte malého modelu: „Existujú v získaných častiach priame dôkazy?“ Ak nie, vráťte objasňujúcu otázku.
- Pravidlo citovať alebo mlčať: Blokujte výstupy, ktoré nemajú citácie.
- Filtre toxicity/PII pre podnikový obsah.
8) Hodnotenie a neustále zlepšovanie
Vytvorte eval/ sadu s:
- 50–200 skutočných otázok od používateľov
- Správne odpovede (alebo dôveryhodné referencie)
- Očakávané zdroje (ID dokumentov), ak je to možné
Merajte:
- Miera úspešnosti vyhľadávania (zobrazuje sa zlatý zdroj v top‑k?)
- Vernost odpovede (tvrdenia podložené citáciami)
Iterujte na:
- Veľkosť časti a prekrývanie
- Výber modelu na vkladanie
- Štruktúra a obmedzenia výzvy
Kompletný RAGFlow : Príklad konfigurácie
Nižšie je uvedená koncepčná konfigurácia, ktorú si môžete prispôsobiť pre svoj reťazec nástrojov. V prípade potreby nahraďte názvy poskytovateľov.
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
Ako používať RAGFlow pre rôzne typy obsahu
Používateľské príručky a manuály k produktom
- Uprednostňujte sémantické delenie na časti s jasnými hranicami sekcií
- Pripojte verziu a dátum účinnosti, aby ste predišli zastaraným odpovediam
- Používajte prísne filtre: vždy vyžadujte
version = latest
Znalostné bázy a FAQ
- Používajte menšie časti (400–600 ) pre presné odpovede
- Zvýšte množstvo kandidátov a spoľahnite sa na prehodnotenie, aby ste našli presný úryvok
- Automaticky generujte kanonické páry otázok a odpovedí na zvýšenie vyvolania prostredníctvom lexikálneho vyhľadávania
Technické dokumenty a kód
- Rozdeľte podľa funkcie/modulu a zahrňte grafy importu do metadát
- Povoľte vyhľadávanie : vráťte funkciu + jej kontext
- Použite na uprednostnenie relevantných symbolov
Právne predpisy a súlad
- Vyžadujte citácie na úrovni odseku
- Pridajte logiku odmietnutia pre neúplný kontext
- Udržiavajte zlatú sadu zdrojov schválených regulátorom v samostatnom indexe
Vzory výziev, ktoré skutočne fungujú
- Odpovedzte a potom citujte: Krátka odpoveď hore; citácie priamo za každým tvrdením
- Reťazenie vyhľadávania: Požiadajte model, aby najprv zhrnul každú časť, a potom syntetizoval
- Prepísanie dotazu: Rozšírte dotazy používateľa o synonymá a doménové termíny pred vyhľadávaním
- Kontrastné výzvy: „Vysvetlite, prečo je možnosť A lepšia ako B na základe kontextu.“ Toto vynucuje použitie dôkazov
Príklad kroku prepísania dotazu:
Originál: "aká je naša politika prenosu PTO?"
Prepísané: "platené voľno politika prenosu; prenos dovolenky; maximálny počet hodín; najnovšia verzia politiky"
Dohľad a spätná väzba
- Zaznamenávajte, ktoré časti boli použité, ich skóre a ktoré boli ignorované
- Zachyťte hodnotenia so stručným zdôvodnením; vráťte to späť do vyladenia vyhľadávania
- Spúšťajte týždenné regresné testy na svojej sade pred nasadením akejkoľvek zmeny modelu
na ladenie výkonu
- Ak sa odpovede zdajú byť všeobecné: zvýšte
candidate_top_k a pridajte silnejší
- Ak v odpovediach chýbajú podrobnosti: znížte veľkosť časti; mierne zvýšte lexikálnu váhu
- Ak sa citácie opakujú v rovnakej časti: povoľte MMR a zvýšte rozmanitosť
- Ak je latencia vysoká: ukladajte vkladanie do , predpočítajte prepísanie dotazu, použite menší
- Ak náklady prudko stúpnu: znížte teplotu generovania, skráťte výzvy, skúste menší LLM pre prvý prechod
Základy bezpečnosti a riadenia
- Šifrujte uložené vektory a redigujte citlivé polia v metadátach
- Používajte riadenie prístupu pre každý index; segmentujte podľa tímu alebo citlivosti údajov
- Udržiavajte záznam o pôvode údajov: URL zdroja dokumentu, kontrolný súčet a časová pečiatka príjmu
Momentka prípadovej štúdie: Od neprehľadných PDF k dôveryhodným odpovediam
Tím podpory prijal 1 200 strán PDF. Počiatočné vyhľadávanie bolo nekonzistentné; agenti nedôverovali botovi. Po prechode na sémanticko-hybridné delenie na časti (800 , 80 prekrývanie), povolení prehodnotenia a vynútení pravidla citovať alebo mlčať, miera úspešnosti top‑k sa zvýšila zo 62 % na 89 % a adopcia agentmi sa zdvojnásobila. Kľúčom nebol väčší LLM – boli to čistejšie časti a prísnejšie vyhľadávanie.
Tip pre nástroje: Rýchla iterácia s bočným panelom AI
Stojí za zmienku: ak experimentujete s výzvami a úryvkami vyhľadávania v mnohých dokumentoch, asistent AI, ktorý vám umožní chatovať cez PDF, webové stránky a kód priamo z prehliadača, môže urýchliť iteráciu. Mimochodom, Sider.AI (https://sider.ai/) ponúka bočný panel AI, ktorý vám umožní stiahnuť si kontext zo stránky, na ktorej sa nachádzate, zhrnúť a rýchlo vylepšiť výzvy. Je to užitočné na prototypovanie RAG výziev a testovanie kvality častí predtým, ako formalizujete . Riešenie problémov s RAGFlow: Rýchle opravy
- „Model je si istý, ale nesprávny.“
- Povoľte kontrolu odpovedateľnosti; znížte teplotu; vyžadujte citácie
- „Vyhľadávanie vracia takmer duplikáty.“
- Zapnite MMR; pridajte ; znížte prekrývanie častí
- „Latencia prudko stúpa v špičke.“
- Dávkové vkladanie; ukladajte prepísanie dotazu do ; použite generovanie
- „Stále sa zobrazujú staré pravidlá.“
- Filtrujte na
version = latest; znehodnoťte alebo zrušte zastarané dokumenty
Ďalšie kroky: Urobte svoj RAGFlow spoľahlivým v produkcii
- Začnite s malým, dôveryhodným korpusom; najprv zdokonalte delenie na časti a filtre
- Pridajte pred inováciou LLM
- Zostavte sadu hodnotenia so 100 otázkami a sledujte mieru úspešnosti týždenne
- Zapojte spätnú väzbu od používateľov na neustále ladenie vyhľadávania
Kľúčové poznatky:
- Kvalita vyhľadávania prekonáva veľkosť modelu pre RAG
- Delenie na časti, metadáta a prehodnotenie sú vaše hlavné páky
- Ochranné mechanizmy, ako napríklad citovať alebo mlčať, dramaticky zvyšujú dôveru
- Investujte skoro do dohľadu a hodnotenia
S týmito postupmi sa RAGFlow stáva spoľahlivým základom pre odôvodnené odpovede – či už poháňate pomocného bota, vývojárskeho kopilota alebo interného znalostného asistenta.
FAQ
Q1:Čo je RAGFlow a ako ho môžem použiť pre QA dokumentov?
RAGFlow je rámec na vytváranie pre generovanie rozšírené o vyhľadávanie. Prijímate, rozdeľujete, vkladáte, vyhľadávate a generujete odpovede s citáciami, aby ste znížili halucinácie a zlepšili presnosť.
Q2:Ako by som mal rozdeliť dokumenty na časti v RAGFlow?
Používajte sémantické alebo hybridné delenie na časti s 600–1 000 časťami a 50–100 prekrývaním. Pre kód rozdeľte podľa funkcie alebo triedy a zahrňte okolitý kontext.
Q3:Ktorá vektorová databáza funguje najlepšie s RAGFlow?
Vyberte úložisko, ktoré podporuje hybridné vyhľadávanie, filtre metadát a prehodnotenie – Qdrant, Weaviate, Pinecone alebo lokálna možnosť sú bežné voľby.
Q4:Ako zabránim halucináciám v aplikácii RAGFlow?
Vynúťte pravidlo citovať alebo mlčať, pridajte kontrolu odpovedateľnosti pred generovaním a udržiavajte prísne výzvy týkajúce sa používania iba získaného kontextu.
Q5:Aké metriky by som mal sledovať na vyhodnotenie RAGFlow?
Monitorujte mieru úspešnosti vyhľadávania, vernosť odpovede, latenciu a náklady na 100 dotazov a udržiavajte malú, ale reprezentatívnu hodnotiacu sadu.