Näin käytät RAGFlow'ta: Käytännön opas luotettavien RAG-sovellusten rakentamiseen
Jos olet yrittänyt rakentaa retrieval-augmented generation (RAG) -järjestelmää, olet todennäköisesti törmännyt klassisiin ongelmakohtiin: hallusinaatiot, epävakaa haku, hitaat putket ja sotkuinen dokumenttien esikäsittely. RAGFlow astuu esiin kokonaisvaltaisena työnkulkutyökaluna, joka auttaa sinua hallitsemaan dokumenttien sisäänottoa, pilkkomista, vektorisointia, hakua ja generointia hallitummin ja paremmin havaittavissa.
Tämä opas tarjoaa käytännöllisen ja ratkaisukeskeisen lähestymistavan. Käymme läpi selkeän asennuksen, näytämme, miten RAGFlow'ta käytetään oikeisiin dokumentteihin, ja jaamme malleja, jotka todella vähentävät hallusinaatioita ja parantavat vastausten laatua.
Mikä on RAGFlow ja miksi sitä kannattaa käyttää?
RAGFlow on järjestelmä Retrieval-Augmented Generation -putkien rakentamiseen. Tyypillisessä RAG-asennuksessa:
- Otetaan sisään dokumentteja (PDF-tiedostoja, verkkosivuja, dioja, koodia jne.)
- Pilkotaan sisältö haettaviin yksiköihin
- Upotetaan palat vektoreiksi semanttista hakua varten
- Haetaan k top-relevanttia palaa kysymyksen esittämishetkellä
- Generoidaan perusteltu vastaus käyttämällä LLM:ää
RAGFlow lisää valmiiksi määritettyjä oletusarvoja, työnkulkulohkoja ja suojakaiteita, jotta voit iteroida nopeammin ja toimittaa luotettavampia sovelluksia. Se on erityisen hyödyllinen, jos haluat:
- Yhtenäisen pilkkomisen ja metadatan: Parempi haku alkaa paremmista paloista.
- Liitettävät upotukset ja LLM:t: Vaihda OpenAI, paikalliset mallit tai yritystason päätepisteet.
- Arvioinnit ja suojakaiteet: Mittaa haun laatua ja vähennä hallusinaatioita.
- Käyttöönotettavat putket: Siirry muistikirjasta tuotantoon vähemmillä uudelleenkirjoituksilla.
Pika-aloitus: Nollasta toimivaan RAGFlow-putkeen
Alla on minimaalinen, kokonaisvaltainen työnkulku, jota voit mukauttaa. Vaikka ympäristösi olisi erilainen, järjestys ja suojakaiteet ovat siirrettävissä.
1) Valmistele ympäristösi
OPENAI_API_KEY (tai muu LLM-palveluntarjoaja)
EMBEDDINGS_API_KEY (jos käytät erillistä palveluntarjoajaa)
VECTOR_DB_URL (esim. Pinecone, Weaviate, Qdrant tai paikallinen)
- Aseta projektihakemisto, esim.
ragflow-project/ kansioilla:
data/raw/ (lähdetiedostot)
data/processed/ (puhdistetut palat)
configs/ (YAML/JSON putken asetuksille)
eval/ (tietojoukot ja raportit)
2) Ota sisään dokumentteja puhtaalla metadatalla
Hyvä metadata = parempi haku. Normalisoi otsikot, tekijät, päivämäärät ja lähteet.
- Muunna PDF-tiedostot ja diat tekstiksi vankalla jäsentimellä
- Säilytä rakenne: otsikot, luettelot, koodilohkot ja taulukot
- Liitä metadata jokaiseen palaan:
source, section, page, timestamp, version
Vinkki: Säilytä doc_id ja chunk_id viittausten ja uudelleen sisäänoton tukemiseksi.
3) Valitse sisältöösi sopiva pilkkomisstrategia
Pilkkominen vaikuttaa voimakkaasti haun laatuun ja latenssiin.
- Kerronnallisille dokumenteille: semanttinen pilkkominen (jakaa otsikoiden/kappaleiden mukaan)
- Teknisille dokumenteille: käytä hybridipilkkomista (semanttinen + kiinteä ikkuna)
- Koodille: pilko funktion/luokan mukaan pienellä liukuvalla ikkunalla
Suositellut asetukset alkuun:
chunk_size: 600–1 000 tokenia
chunk_overlap: 50–100 tokenia
max_depth: rajoita sisäkkäisiä osioita 2–3 tasoon fragmentoitumisen välttämiseksi
4) Valitse upotukset ja vektoritietokanta
- Aloita vahvalla yleiskäyttöisellä upotusmallilla (esim. text-embedding-3-large tai moderni paikallinen malli). Jos yksityisyys on avainasemassa, harkitse itse ylläpidettyjä upotuksia.
- Käytä vektoritietokantaa, joka tukee:
- Hybridihakua (tiheä + avainsana)
- Suodattimia (metadatan rajoituksia)
- Eräpäivityksiä ja indeksimittareita
Testattavat indeksointiasetukset:
top_k = 5–10 alkuperäiselle haulle
similarity_metric = cosine (tai dot tietyille malleille)
- Ota käyttöön max marginal relevance (MMR) redundanssin vähentämiseksi
5) Haun orkestrointi
Ota käyttöön kaksivaiheinen hakija:
- Nopea ehdokkaiden palautus
- Hybridihaku (BM25 + tiheä)
- Suuri
top_k (esim. 30–50)
- Cross-encoder -uudelleenjärjestäjä tai LLM-pohjainen pisteytys
- Pienennä lopulliseen
top_k (esim. 5–8)
Lisää metadatasuodattimia: source:"handbook" AND section:"benefits" AND version:"v2" rajoittaaksesi vastaukset luotettaviin dokumentteihin.
6) Perusteltu generointi rakenteella
Kehotteesi tulisi pakottaa viittaukset ja kieltäytyminen, kun todisteet ovat heikkoja.
Esimerkki järjestelmäkehotteesta:
Olet huolellinen avustaja. Vastaa VAIN annettujen asiayhteyksien tukemilla tiedoilla.
- Mainitse lähteet rivissä muodossa [doc_id:chunk_id].
- Jos asiayhteys ei riitä, sano "Annetuissa dokumenteissa ei ole tarpeeksi tietoa."
- Älä keksi faktoja.
Käyttäjäkehotemalli:
Kysymys: {query}
Asiayhteys:
{top_chunks}
Ohjeet:
- Anna ensin ytimekäs vastaus ja sitten yksityiskohdat.
- Sisällytä viittaukset jokaisen faktaväitteen jälkeen.
7) Lisää suojakaiteet hallusinaatioiden vähentämiseksi
- Vastauskelpoisuuden tarkistus: Ennen generointia kysy pieneltä mallilta: ”Onko haetuissa paloissa suoria todisteita?” Jos ei, palauta selvennyskysymys.
- Viittaus-tai-vaikene -käytäntö: Estä tulosteet, joista puuttuu viittauksia.
- Myrkyllisyys-/PII-suodattimet yrityksen sisällölle.
8) Arviointi ja jatkuva parantaminen
Luo eval/ -joukko, jossa on:
- 50–200 oikeaa käyttäjäkysymystä
- Oikeat vastaukset (tai luotettavat viitteet)
- Odotetut lähteet (dokumenttien tunnukset) tarvittaessa
Mittaa:
- Haun osumisprosentti (esiintyykö kultalähde top-k:ssa?)
- Vastauksen uskollisuus (viittauksilla tuetut lausunnot)
- Latenssi (p95 päästä päähän)
- Kustannukset (per 100 kyselyä)
Iteroi:
- Palan koko ja päällekkäisyys
- Uudelleenjärjestäjä vs. korkeampi top-k
- Kehotteen rakenne ja rajoitukset
Täysi RAGFlow-putki: Esimerkkimääritys
Alla on käsitteellinen määritys, jonka voit mukauttaa työkaluketjuusi. Korvaa palveluntarjoajien nimet tarpeen mukaan.
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
Näin käytät RAGFlow'ta erilaisille sisältötyypeille
Tuotekäsikirjat ja ohjeet
- Suosi semanttista pilkkomista selkeillä osiorajoilla
- Liitä versio ja voimaantulopäivä vanhentuneiden vastausten estämiseksi
- Käytä tiukkoja suodattimia: vaadi aina
version = latest
Tietokannat ja usein kysytyt kysymykset
- Käytä pienempiä paloja (400–600 tokenia) tarkkojen vastausten saamiseksi
- Lisää ehdokasjoukkoa ja luota uudelleenjärjestämiseen löytääksesi tarkan katkelman
- Luo automaattisesti kanonisia Q/A-pareja tehostaaksesi palautusta leksikaalisen haun avulla
Tekniset dokumentit ja koodi
- Pilkko funktion/moduulin mukaan ja sisällytä tuontikaaviot metadataan
- Ota käyttöön parent-child-haku: palauta funktio + sen docstring-asiayhteys
- Käytä kooditietoista uudelleenjärjestäjää priorisoidaksesi relevantit symbolit
Laki ja vaatimustenmukaisuus
- Vaadi kappaletason viittauksia
- Lisää kieltäytymislogiikka puutteelliselle asiayhteydelle
- Pidä yllä sääntelyviranomaisen hyväksymien lähteiden kultaista joukkoa erillisessä indeksissä
Kehotemallit, jotka todella toimivat
- Vastaa sitten viittaa: Lyhyt vastaus ylhäällä; viittaukset rivissä jokaisen väitteen jälkeen
- Haun ketju: Pyydä mallia tiivistämään ensin jokainen pala ja sitten syntetisoimaan
- Kyselyn uudelleenkirjoitus: Laajenna käyttäjäkyselyitä synonyymeillä ja toimialatermeillä ennen hakua
- Kontrastiiviset kehotteet: ”Selitä, miksi vaihtoehto A on parempi kuin B asiayhteyden perusteella.” Tämä pakottaa todisteiden käytön
Esimerkki kyselyn uudelleenkirjoitusvaiheesta:
Alkuperäinen: "mitkä ovat PTO:n siirtokäytännöt?"
Uudelleenkirjoitus: "palkallisen vapaan siirtokäytännöt; loman siirto; enimmäistunnit; käytännön versio uusin"
Havaittavuus ja palautesilmukat
- Kirjaa, mitä paloja käytettiin, niiden pisteet ja mitkä jätettiin huomiotta
- Kerää peukku ylös/alas lyhyellä perustelulla; syötä se takaisin hakijan virittämiseen
- Suorita viikoittaisia regressiotestejä eval-joukossasi ennen minkään mallin muutoksen käyttöönottoa
Suorituskyvyn virityksen huijausarkki
- Jos vastaukset tuntuvat yleisiltä: lisää
candidate_top_k ja lisää vahvempi uudelleenjärjestäjä
- Jos vastauksista puuttuu yksityiskohtia: pienennä palan kokoa; tehosta leksikaalista painoa hieman
- Jos viittaukset toistavat samaa palaa: ota MMR käyttöön ja nosta monimuotoisuutta
- Jos latenssi on korkea: välimuista upotukset, esilaske kyselyn uudelleenkirjoitukset, käytä pienempää uudelleenjärjestäjää
- Jos kustannukset nousevat: siirrä generoinnin lämpötilaa alaspäin, lyhennä kehotteita, kokeile pienempää LLM:ää ensimmäiselle kierrokselle
Turvallisuuden ja hallinnon perusasiat
- Salaa tallennetut vektorit ja poista arkaluonteiset kentät metadatasta
- Käytä indeksikohtaista pääsynvalvontaa; segmentoi tiimin tai datan arkaluonteisuuden mukaan
- Ylläpidä datan alkuperärekisteriä: dokumenttilähteen URL, tarkistussumma ja sisäänoton aikaleima
Tapaustutkimuksen tilannekuva: Sotkuisista PDF-tiedostoista luotettaviin vastauksiin
Tukitiimi otti sisään 1 200 sivua PDF-tiedostoja. Alkuperäinen haku oli epäjohdonmukainen; agentit eivät luottaneet bottiin. Kun vaihdettiin semanttis-hybridipilkkomiseen (800 tokenia, 80 päällekkäisyyttä), otettiin käyttöön cross-encoder-uudelleenjärjestäminen ja pakotettiin viittaus-tai-vaikene-käytäntö, top-k-osumisprosentti nousi 62 %:sta 89 %:iin ja agenttien käyttöönotto kaksinkertaistui. Avain ei ollut suurempi LLM, vaan puhtaammat palat ja tiukempi haku.
Työkaluvinkki: Nopea iterointi tekoälypalkin avulla
Huomionarvoista: jos kokeilet kehotteita ja haun katkelmia monissa dokumenteissa, tekoälyavustaja, jonka avulla voit keskustella PDF-tiedostojen, verkkosivujen ja koodin kanssa suoraan selaimesta, voi nopeuttaa iterointia. Muuten, Sider.AI (https://sider.ai/) tarjoaa tekoälypalkin, jonka avulla voit vetää asiayhteyttä sivulta, jolla olet, tiivistää ja hienosäätää kehotteita nopeasti. Se on kätevä RAG-kehotteiden prototyyppien luomiseen ja palan laadun testaamiseen, ennen kuin virallistat putken. RAGFlow'n vianmääritys: Pikalääkkeet
- ”Malli on varma, mutta väärässä.”
- Ota käyttöön vastauskelpoisuuden tarkistus; alenna lämpötilaa; vaadi viittauksia
- ”Haku palauttaa lähes identtisiä kopioita.”
- Ota MMR käyttöön; lisää uudelleenjärjestäjä; vähennä palan päällekkäisyyttä
- ”Latenssi piikittää huippuaikoina.”
- Eräupotukset; välimuista kyselyn uudelleenkirjoitukset; käytä suoratoistogenerointia
- ”Vanhat käytännöt näkyvät edelleen.”
- Suodata
version = latest mukaan; vanhenta tai hauta vanhentuneet dokumentit
Seuraavat vaiheet: Tee RAGFlow'stasi luotettava tuotannossa
- Aloita pienellä, luotettavalla korpuksella; täydellistä pilkkominen ja suodattimet ensin
- Lisää uudelleenjärjestäjä ennen LLM:n päivittämistä
- Rakenna 100 kysymyksen eval-joukko ja seuraa osumisprosenttia viikoittain
- Johda käyttäjäpalaute virittääksesi hakua jatkuvasti
Tärkeimmät huomiot:
- Haun laatu päihittää mallin koon RAG:ssa
- Pilkkominen, metadata ja uudelleenjärjestäminen ovat keskeiset vipusi
- Suojakaiteet, kuten viittaus-tai-vaikene, lisäävät luottamusta dramaattisesti
- Panosta varhain havaittavuuteen ja arviointiin
Näiden käytäntöjen avulla RAGFlow'sta tulee luotettava selkäranka perustelluille vastauksille – riippumatta siitä, tehostatko sillä apubottia, kehittäjän apupilottia tai sisäistä tietämysavustajaa.
UKK
K1: Mikä on RAGFlow ja miten käytän sitä dokumenttien QA:han?
RAGFlow on kehys retrieval-augmented generation -putkien rakentamiseen. Otat sisään, pilkot, upotat, haet ja luot vastauksia viittauksilla vähentääksesi hallusinaatioita ja parantaaksesi tarkkuutta.
K2: Miten minun pitäisi pilkkoa dokumentteja RAGFlow'ssa?
Käytä semanttista tai hybridipilkkomista 600–1 000 tokenin paloilla ja 50–100 tokenin päällekkäisyydellä. Koodille pilko funktion tai luokan mukaan ja sisällytä ympäröivä asiayhteys.
K3: Mikä vektoritietokanta toimii parhaiten RAGFlow'n kanssa?
Valitse tallennustila, joka tukee hybridihakua, metadatasuodattimia ja uudelleenjärjestämistä – Qdrant, Weaviate, Pinecone tai paikallinen vaihtoehto ovat kaikki yleisiä valintoja.
K4: Miten estän hallusinaatiot RAGFlow-sovelluksessa?
Pakota viittaus-tai-vaikene-käytäntö, lisää vastauskelpoisuuden tarkistus ennen generointia ja pidä kehotteet tiukkoina vain haetun asiayhteyden käytöstä.
K5: Mitä mittareita minun pitäisi seurata RAGFlow'n arvioimiseksi?
Seuraa haun osumisprosenttia, vastauksen uskollisuutta, latenssia ja kustannuksia per 100 kyselyä ja ylläpidä pientä mutta edustavaa arviointijoukkoa.