Kuidas kasutada RAGFlow'd: Praktiline juhend usaldusväärsete RAG-rakenduste ehitamiseks
Kui olete proovinud ehitada (RAG) süsteemi, olete tõenäoliselt kokku puutunud klassikaliste probleemidega: hallutsinatsioonid, ebausaldusväärne otsing, aeglased töötlusliinid ja segane dokumendi eeltoiming. RAGFlow on terviklik tööriist, mis aitab teil korraldada dokumentide vastuvõtmist, tükeldamist, vektoriseerimist, otsingut ja genereerimist suurema kontrolli ja jälgitavusega.
See juhend on praktiline ja lahendustele orienteeritud. Me tutvustame puhast seadistust, näitame, kuidas kasutada RAGFlow'd päris dokumentide jaoks, ja jagame mustreid, mis tegelikult vähendavad hallutsinatsioone ja parandavad vastuste kvaliteeti.
Mis on RAGFlow ja miks seda kasutada?
RAGFlow on süsteem töötlusliinide ehitamiseks. Tüüpilises RAG-seadistuses te:
- Võtate vastu dokumente (PDF-id, veebilehed, slaidid, kood jne)
- Tükeldate sisu otsitavateks ühikuteks
- Manustate tükid vektoriteks semantilise otsingu jaoks
- Otsite küsimuse esitamise ajal välja top-k asjakohased tükid
- Genereerite LLM-i abil põhjendatud vastuse
RAGFlow lisab arvamuspõhised vaikesätted, töövooblokid ja kaitsepiirded, et saaksite kiiremini itereerida ja tarnida usaldusväärsemaid rakendusi. See on eriti kasulik, kui soovite:
- Järjepidevat tükeldamist ja metaandmeid: Parem otsing algab paremate tükkidega.
- Ühendatavaid manustamisi ja LLM-e: Vahetage OpenAI, kohalikke mudeleid või ettevõtte lõpp-punkte.
- Hinnanguid ja kaitsepiirdeid: Mõõtke otsingu kvaliteeti ja vähendage hallutsinatsioone.
- Kasutatavaid töötlusliine: Liikuge märkmikust tootmisse vähemate ümberkirjutamistega.
Kiire algus: Nullist töötava RAGFlow töötlusliinini
Allpool on minimaalne terviklik töövoog, mida saate kohandada. Isegi kui teie keskkond on erinev, on järjestus ja kaitsepiirded teisaldatavad.
1) Valmistage oma keskkond ette
- Looge
.env oma võtmetega:
OPENAI_API_KEY (või mõni muu LLM-i pakkuja)
EMBEDDINGS_API_KEY (kui kasutate eraldi pakkujat)
VECTOR_DB_URL (nt Pinecone, Weaviate, Qdrant või kohalik)
- Määrake projektikataloog, nt
ragflow-project/ koos kaustadega:
data/processed/ (puhastatud tükid)
configs/ (YAML/JSON töötlusliini seadete jaoks)
eval/ (andmekogumid ja aruanded)
2) Võtke vastu dokumente puhaste metaandmetega
Head metaandmed = parem otsing. Normaliseerige pealkirjad, autorid, kuupäevad ja allikad.
- Teisendage PDF-id ja slaidid tekstiks robustse parseriga
- Säilitage struktuur: pealkirjad, loendid, koodiplokid ja tabelid
- Lisage igale tükile metaandmed:
source, section, page, timestamp, version
Nipp: Hoidke doc_id ja chunk_id viidete ja uuesti vastuvõtmise toetamiseks.
3) Valige oma sisule sobiv tükeldamisstrateegia
Tükeldamine mõjutab tugevalt otsingu kvaliteeti ja latentsust.
- Narratiivsete dokumentide jaoks: semantiline tükeldamine (jaotamine pealkirjade/paragrahvide järgi)
- Tehniliste dokumentide jaoks: kasutage hübriidtükeldamist (semantiline + fikseeritud aken)
- Koodi jaoks: tükeldage funktsiooni/klassi järgi väikese liikuva aknaga
Soovitatavad seaded alustamiseks:
chunk_size: 600–1000 märki
chunk_overlap: 50–100 märki
max_depth: piirake pesastatud sektsioone 2–3 tasemeni, et vältida killustumist
4) Valige manustamised ja vektoripood
- Alustage tugeva üldotstarbelise manustamismudeliga (nt text-embedding-3-large või kaasaegne kohalik mudel). Kui privaatsus on oluline, kaaluge ise hostitud manustamisi.
- Kasutage vektor-DB-d, mis toetab:
- Hübriidotingu (tihe + märksõna)
- Filtreid (metaandmete piirangud)
- Pakettide üleslaadimisi ja indeksi mõõdikuid
Indeksi seaded testimiseks:
top_k = 5–10 esialgseks otsinguks
similarity_metric = cosine (või dot teatud mudelite puhul)
- Luba maksimaalne marginaalne asjakohasus (MMR) redundantsuse vähendamiseks
5) Otsingu korraldamine
Rakendage kaheastmeline otsija:
- Kiire kandidaadi tagasikutsumine
- Hübriidoting (BM25 + tihe)
- Risti-kodeerija ümberjärjestaja või LLM-põhine hindamine
- Vähendage lõpliku
top_k-ni (nt 5–8)
Lisage metaandmete filtreid: source:"handbook" AND section:"benefits" AND version:"v2", et piirata vastuseid usaldusväärsete dokumentidega.
6) Põhjendatud genereerimine struktuuriga
Teie viip peaks jõustama tsitaadid ja keeldumise, kui tõendid on nõrgad.
Näide süsteemiviip:
Sa oled hoolikas abiline. Vasta AINULT teabega, mida toetab pakutav kontekst.
- Tsiteeri allikaid tekstis [doc_id:chunk_id] kujul.
- Kui kontekstist ei piisa, ütle "Pakutud dokumentides pole piisavalt teavet."
- Ära mõtle fakte välja.
Kasutaja viiba mall:
Küsimus: {query}
Kontekst:
{top_chunks}
Juhised:
- Esitage kõigepealt lühike vastus, seejärel üksikasjad.
- Lisage tsitaadid pärast iga faktiväidet.
7) Lisage hallutsinatsioonide vähendamiseks kaitsepiirded
- Vastatavuse kontroll: Enne genereerimist küsige väikselt mudelilt: „Kas väljavõetud tükkides on otseseid tõendeid?” Kui ei, tagastage selgitav küsimus.
- Tsiteeri-või-vaiki poliitika: blokeerige väljundid, millel puuduvad tsitaadid.
- Mürgisuse/PII filtrid ettevõtte sisule.
8) Hindamine ja pidev täiustamine
Looge eval/ komplekt koos:
- 50–200 reaalse kasutaja küsimusega
- Põhjalike vastustega (või usaldusväärsete viidetega)
- Eeldatavate allikatega (doc id-d), kus kohaldatav
Mõõtke:
- Otsingu tabamuse määr (kas kuldne allikas ilmub top-k-s?)
- Vastuse truudus (tsitaadiga toetatud väited)
- Latentsus (p95 otsast lõpuni)
- Maksumus (100 päringu kohta)
Itereerige:
- Ümberjärjestaja vs kõrgem top-k
- Viiba struktuur ja piirangud
Täielik RAGFlow töötlusliin: Näide konfiguratsioonist
Allpool on kontseptuaalne konfiguratsioon, mida saate oma tööriistakomplekti kohandada. Vajadusel asendage pakkuja nimed.
project: product-handbook-rag
io:
input_path: data/raw/
output_index: product-handbook-index
parsing:
pdf:
strategy: auto
<a8>keep_layout: true</a9><a10>extract_tables: true</a11>markdown:chunking:
<a13>preserve_headings: true</a14>markdown:chunking:
<a13>method: semantic_hybrid</a14><a14>target_tokens: 800</a15><a15>overlap_tokens: 80</a16><a16>windowing: 2</a17><a17>metadata:</a18><a18>fields: [doc_id, title, section, page, version, source]</a19>embeddings:
provider: openai
<a21>model: text-embedding-3-large</a22><a22>vectorstore:</a23><a23>type: qdrant</a24><a24>url: ${VECTOR_DB_URL}</a25><a25>similarity: cosine</a26><a26>retrieval:</a27><a27>hybrid: true</a28><a28>lexical_weight: 0.35</a29><a29>semantic_weight: 0.65</a30><a30>candidate_top_k: 40</a31><a31>rerank:</a32><a32>enabled: true</a33><a33>model: bge-reranker-large</a34><a34>final_top_k: 7</a35><a35>generation:</a36><a36>llm: gpt-4o</a37><a37>temperature: 0.2</a38><a38>cite_or_silence: true</a39><a39>guardrails:</a40><a40>answerability_check: true</a41><a41>pii_filter: true</a42><a42>toxicity_filter: moderate</a43><a43>monitoring:</a44><a44>log_traces: true</a45><a45>latency_budget_ms: 3500</a46>cost_budget_per_100: 1.25
Kuidas kasutada RAGFlow'd erinevat tüüpi sisu jaoks
Toote käsiraamatud ja juhendid
- Eelistage selgete sektsioonipiiridega semantilist tükeldamist
- Lisage versioon ja kehtivuse kuupäev, et vältida aegunud vastuseid
- Kasutage rangeid filtreid: nõudke alati
version = latest
Teadmiste baasid ja KKK-d
- Kasutage väiksemaid tükke (400–600 märki) täpsete vastuste jaoks
- Suurendage kandidaatide hulka ja lootke ümberjärjestamisele, et leida täpne lõik
- Automaatselt genereerige kanoonilised K/V paarid, et suurendada meeldetuletust leksikaalse otsingu kaudu
Inseneri dokumendid ja kood
- Tükeldage funktsiooni/mooduli järgi ja lisage metaandmetesse impordigraafikud
- Luba vanem-laps otsing: tagastage funktsioon + selle docstring kontekst
- Kasutage kooditeadlikku ümberjärjestajat, et seada esikohale asjakohased sümbolid
Juriidiline ja vastavus
- Nõua lõigu tasemel tsitaate
- Lisage keeldumise loogika mittetäieliku konteksti jaoks
- Hoidke regulaatori poolt heaks kiidetud allikate kuldset komplekti eraldi indeksis
Viibamustrid, mis tegelikult töötavad
- Vasta, siis tsiteeri: Lühike vastus üleval; tsitaadid tekstis pärast iga väidet
- Otsingu ahel: Paluge mudelil kõigepealt iga tükki kokku võtta, seejärel sünteesida
- Päringu ümberkirjutamine: Laiendage kasutaja päringuid sünonüümide ja domeeniterminitega enne otsingut
- Kontrastsed viibad: „Selgitage, miks valik A on konteksti põhjal parem kui B.” See sunnib tõendeid kasutama
Näide päringu ümberkirjutamise sammust:
Algne: "mis on meie PTO ülekandepoliitika?"
Ümberkirjutamine: "tasustatud puhkuse ülekandepoliitika; puhkuse ümberkantimine; maksimaalne tundide arv; poliitika versioon uusim"
Jälgitavus ja tagasisideahelad
- Logige, milliseid tükke kasutati, nende skoore ja milliseid ignoreeriti
- Jäädvustage pöidlad üles/alla lühikese põhjendusega; suunake see tagasi otsingu häälestusse
- Enne mis tahes mudeli muudatuse juurutamist käivitage oma hindamiskomplektil iganädalased regressioonitestid
Jõudluse häälestamise spikker
- Kui vastused tunduvad üldised: suurendage
candidate_top_k ja lisage tugevam ümberjärjestaja
- Kui vastused jätavad üksikasjad vahele: vähendage tüki suurust; suurendage veidi leksikaalset kaalu
- Kui tsitaadid kordavad sama tükki: luba MMR ja suurenda mitmekesisust
- Kui latentsus on kõrge: vahemälu manustamised, arvutage päringute ümberkirjutamised eelnevalt, kasutage väiksemat ümberjärjestajat
- Kui kulud hüppavad: viige genereerimise temperatuur alla, lühendage viipasid, proovige esimese etapi jaoks väiksemat LLM-i
Turvalisuse ja juhtimise põhialused
- Krüpteerige salvestatud vektorid ja redigeerige tundlikud väljad metaandmetes
- Kasutage indeksi kohta juurdepääsukontrolli; segmenteerige meeskonna või andmetundlikkuse järgi
- Pidage andmete päritolu kirjet: dokumendi allika URL, kontrollsumma ja vastuvõtmise ajatempel
Juhtumiuuringu hetktõmmis: Segastest PDF-idest usaldusväärsete vastusteni
Tugimeeskond võttis vastu 1200 lehekülge PDF-e. Esialgne otsing oli ebaühtlane; agendid ei usaldanud robotit. Pärast semantilise-hübriidse tükeldamisele (800 märki, 80 kattuvust) üleminekut, ristkodeerija ümberjärjestamise lubamist ja tsiteeri-või-vaiki jõustamist tõusis top-k tabamuse määr 62%-lt 89%-ni ja agentide kasutuselevõtt kahekordistus. Peamine polnud suurem LLM – see oli puhtamad tükid ja rangem otsing.
Nipp tööriistade kohta: Kiire iteratsioon AI külgribaga
Tasub märkida: kui te katsetate viipasid ja otsingulõike paljude dokumentide vahel, võib iteratsiooni kiirendada AI assistent, mis võimaldab teil vestelda PDF-ide, veebilehtede ja koodiga otse brauserist. Muide, Sider.AI (https://sider.ai/) pakub AI külgriba, mis võimaldab teil kiiresti konteksti lehelt, millel olete, kokku võtta ja viipasid täpsustada. See on mugav RAG-viipade prototüüpimiseks ja tüki kvaliteedi testimiseks enne töötlusliini vormistamist. RAGFlow tõrkeotsing: Kiireid parandusi
- „Mudel on enesekindel, kuid vale.”
- Luba vastatavuse kontroll; alandage temperatuuri; nõudke tsitaate
- „Otsing tagastab peaaegu duplikaate.”
- Lülitage sisse MMR; lisage ümberjärjestaja; vähendage tüki kattuvust
- „Latentsus hüppab tipptundidel.”
- Partiide manustamised; vahemällu päringute ümberkirjutamised; kasutage voogedastuse genereerimist
- „Vanad poliitikad ilmuvad pidevalt.”
- Filtreerige
version = latest järgi; aegunud dokumendid amortiseeruvad või tühistatakse
Järgmised sammud: Muutke oma RAGFlow tootmises usaldusväärseks
- Alustage väikese, usaldusväärse korpusega; täiustage kõigepealt tükeldamist ja filtreid
- Lisage ümberjärjestaja enne LLM-i uuendamist
- Ehitage 100 küsimusega hindamiskomplekt ja jälgige tabamuse määra iganädalaselt
- Ühendage kasutaja tagasiside, et pidevalt otsingut häälestada
Peamised järeldused:
- Otsingu kvaliteet ületab RAG-i mudeli suuruse
- Tükeldamine, metaandmed ja ümberjärjestamine on teie peamised hoovad
- Kaitsepiirded, nagu tsiteeri-või-vaiki, suurendavad usaldust dramaatiliselt
- Investeerige varakult jälgitavusse ja hindamisse
Nende praktikate abil muutub RAGFlow usaldusväärseks selgrooks põhjendatud vastuste jaoks – olenemata sellest, kas toetate abirobotit, arendaja kaaspilooti või sisemist teadmiste assistenti.
KKK
Q1:Mis on RAGFlow ja kuidas ma saan seda kasutada dokumentide kvaliteedikontrolliks?
RAGFlow on raamistik otsinguga täiendatud genereerimise töötlusliinide ehitamiseks. Te võtate vastu, tükeldate, manustate, otsite ja genereerite vastuseid koos tsitaatidega, et vähendada hallutsinatsioone ja parandada täpsust.
Q2:Kuidas ma peaksin dokumente RAGFlow's tükeldama?
Kasutage semantilist või hübriidtükeldamist 600–1000 märgi suuruste tükkide ja 50–100 märgi kattuvusega. Koodi puhul tükeldage funktsiooni või klassi järgi ja lisage ümbritsev kontekst.
Q3:Milline vektorandmebaas sobib kõige paremini RAGFlow'ga?
Valige pood, mis toetab hübriidotingut, metaandmete filtreid ja ümberjärjestamist – Qdrant, Weaviate, Pinecone või kohalik valik on kõik levinud valikud.
Q4:Kuidas ma saan vältida hallutsinatsioone RAGFlow rakenduses?
Jõustage tsiteeri-või-vaiki poliitika, lisage enne genereerimist vastatavuse kontroll ja hoidke viipad ranged ainult väljavõetud konteksti kasutamise suhtes.
Q5:Milliseid mõõdikuid peaksin jälgima RAGFlow hindamiseks?
Jälgige otsingu tabamuse määra, vastuse truudust, latentsust ja maksumust 100 päringu kohta ning säilitage väike, kuid esinduslik hindamiskomplekt.