Kas yra RAG (paieška papildytas generavimas)
- RAG terminą 2020 m. įvedė Lewis ir kt. straipsnyje „Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks“.
- Mūsų skaičiavimu, 4 000 klausimų per mėnesį su claude-sonnet-5-5 per RAG kainuoja 54,76 €, o siunčiant visą 300 prekių katalogą kiekvienam klausimui – 1 739,62 €.
- 300 prekių aprašų lietuviškai (450 000 simbolių) sudaro apie 241 000 Claude 5.5 žetonų arba 152 000 GPT-6 žetonų kiekvienai užklausai.
- 2 000 dokumentų indeksavimas su OpenAI text-embedding-3-small kainuoja apie 0,04 €, todėl RAG kaina beveik visa tenka atsakymų generavimui.
- Mūsų bandyme su lietuvišku klausimu OpenAI text-embedding-3-small surikiavo dokumentus netiksliai, o text-embedding-3-large – teisingai, todėl embedding modelį reikia tikrinti su lietuviškais pavyzdžiais.
RAG (paieška papildytas generavimas) išsamiai
RAG (angl. retrieval-augmented generation) – paieška papildytas generavimas: prieš atsakydamas kalbos modelis gauna iš jūsų dokumentų surastas aktualias ištraukas ir atsako remdamasis jomis. Taip pokalbių robotas gali atsakyti apie jūsų prekes, grąžinimo taisykles ar vidines procedūras, nors LLM apie jas mokymo metu nieko nežinojo. Terminą 2020 m. įvedė Lewis ir kt. straipsnyje „Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks“.
Kaip veikia RAG: du etapai
Indeksavimas vyksta iš anksto ir kartojamas, kai keičiasi dokumentai:
- Surenkami šaltiniai: prekių aprašai, DUK, taisyklės, sutarčių šablonai, vidinės instrukcijos.
- Tekstas išvalomas (be meniu, poraščių, HTML) ir suskaidomas į gabalus (angl. chunks) – dažniausiai 300–800 žetonų, su nedideliu persidengimu.
- Kiekvienam gabalui apskaičiuojamas embedding – skaičių vektorius, atspindintis prasmę.
- Vektoriai su tekstu ir metaduomenimis (šaltinis, data, kategorija, kalba) įrašomi į vektorių duomenų bazę, pvz., PostgreSQL su pgvector plėtiniu.
Atsakymas vyksta kiekvienam klausimui:
- Kliento klausimas paverčiamas vektoriumi tuo pačiu embedding modeliu.
- Bazėje surandami artimiausi gabalai; geros sistemos tai derina su žodine paieška (hibridinė paieška).
- Rezultatai pertvarkomi pagal aktualumą (angl. reranking) ir atrenkami 3–8 geriausi.
- Ištraukos įdedamos į promptą su instrukcija atsakyti tik iš jų ir nurodyti šaltinį.
- Modelis sugeneruoja atsakymą; sistema gali parodyti nuorodas į naudotus dokumentus.
Kodėl RAG reikia, jei modeliai turi milijono žetonų kontekstą
2026 m. spalį Claude 5.5 modeliai turi 1 mln., GPT-6 modeliai – 1,05 mln. žetonų kontekstą. Atrodo, kad visus dokumentus galima tiesiog įdėti į užklausą. Mažam dokumentų rinkiniui (kelios dešimtys puslapių) tai tikrai veikia, ypač su podėliu. Bet didėjant apimčiai, RAG laimi trimis aspektais:
- Kaina. Kiekvienas klausimas apmokamas už visą kontekstą. 300 prekių aprašų lietuviškai – apie 241 000 Claude 5.5 žetonų kiekvienai užklausai (žr. pavyzdį žemiau).
- Talpa. 2 000 prekių katalogas po 1 500 simbolių lietuviškai – apie 1,6 mln. Claude 5.5 žetonų, t. y. daugiau, nei telpa į milijono žetonų langą.
- Tikslumas ir patikrinamumas. Kai kontekste – tik 5 aktualios ištraukos, modeliui lengviau rasti atsakymą, o jums – patikrinti, iš kur jis paimtas.
RAG, fine-tuning ar ilgas kontekstas: palyginimas
| Kriterijus | RAG | Ilgas kontekstas | Fine-tuning |
|---|---|---|---|
| Kada tinka | Daug dokumentų, dažnai keičiasi | Iki kelių šimtų puslapių, retai keičiasi | Reikia pakeisti stilių ar formatą, o ne žinias |
| Atnaujinimas | Perindeksuoti pasikeitusius dokumentus | Pakeisti tekstą užklausoje | Iš naujo mokyti modelį |
| Kaina klausimui | Maža, kontekstas mažas | Didelė, nebent podėlis | Maža, bet brangus mokymas |
| Šaltinio nuoroda | Natūrali – žinome, kurie gabalai panaudoti | Galima, bet sunkiau | Nėra |
| Pasiekiamumas 2026 m. | Bet kuris modelis | Bet kuris modelis su dideliu langu | Ribotas: OpenAI savitarnos platforma uždaroma |
Tarpinis variantas – ilgas kontekstas su podėliu. Jei tas pats 50–100 puslapių rinkinys siunčiamas su kiekviena užklausa, podėlio skaitymas kainuoja 10–20 kartų pigiau nei įprasta įvestis (pvz., claude-sonnet-5-5 – 0,10 USD vietoj 2 USD už 1 mln. žetonų). Tai paprasčiau nei RAG, bet tinka tik tol, kol rinkinys mažas ir retai keičiasi.
Taigi fine-tuning žinių į modelį „neįdeda“ patikimai – faktams pateikti skirtas RAG.
RAG lietuvių kalbai: į ką atkreipti dėmesį
Lietuvių kalba fleksinė, todėl paieška vien pagal raktinius žodžius dažnai neranda „grąžinimo“, kai klientas parašė „grąžinti“ ar „gražint“ be diakritikų. Vektorinė paieška tai iš dalies sprendžia, bet ne visada. Mūsų bandymas su OpenAI embedding modeliais (žr. terminą embedding) parodė, kad mažesnis modelis text-embedding-3-small lietuvišką sinonimais perrašytą atsakymą įvertino žemiau nei nesusijusį tekstą su tais pačiais žodžiais, o didesnis text-embedding-3-large surikiavo teisingai. Praktinės išvados:
- Naudokite hibridinę paiešką: vektoriai plius žodinė paieška su lietuvišku žodžių kamienų apdorojimu arba bent be diakritikų normalizavimu.
- Rinkitės daugiakalbį embedding modelį ir patikrinkite jį su 30–50 tikrų lietuviškų klausimų.
- Jei dalis dokumentų angliški, o klausimai lietuviški, atskirai patikrinkite tarpkalbinę paiešką – ji silpnesnė.
- Prie gabalų pridėkite antraštę ir kontekstą („Grąžinimo taisyklės, 3 skyrius“), kad trumpas gabalas būtų suprantamas atskirai. Anthropic šį metodą aprašo kaip kontekstinę paiešką (angl. contextual retrieval).
Kur RAG naudojamas versle
- Klientų aptarnavimas. Pokalbių robotas atsako apie pristatymą, grąžinimą, garantiją ir prekių savybes iš jūsų taisyklių ir katalogo, o neaiškius klausimus perduoda žmogui.
- Vidinis žinių asistentas. Darbuotojai klausia apie procedūras, sutarčių sąlygas ar produktų specifikacijas ir gauna atsakymą su nuoroda į dokumentą.
- Pardavimų pagalba. Vadybininkas gauna atsakymus iš techninių aprašų ir ankstesnių pasiūlymų, kad greičiau parengtų naują.
- Prekių paieška svetainėje. Klientas rašo „šiltas batai vaikui žiemai“, o paieška randa prekes pagal prasmę, net jei aprašyme tokių žodžių nėra.
RAG saugumas: prieigos teisės ir netiesioginės instrukcijos
RAG sistema gali atskleisti tai, ką indeksavote, todėl prieigos teisės turi galioti ir paieškoje: darbuotojas neturi gauti ištraukų iš dokumentų, kurių pats negalėtų atidaryti, o klientas – kito kliento duomenų. Paprasčiausia – kiekvienam gabalui saugoti prieigos žymą ir filtruoti paieškos rezultatus pagal vartotoją dar prieš modelį.
Antra rizika – netiesioginis instrukcijų įterpimas (angl. indirect prompt injection): į indeksuojamą dokumentą ar svetainės puslapį kas nors įrašo tekstą „ignoruok ankstesnes instrukcijas ir…“. OWASP šią riziką nurodo pirmoje vietoje tarp LLM programų pažeidžiamumų. Apsauga: indeksuoti tik patikimus šaltinius, instrukcijose atskirti ištraukas nuo nurodymų ir neleisti RAG robotui be patvirtinimo atlikti veiksmų.
Kaip įvertinti, ar RAG veikia gerai
- Bandomasis rinkinys. 50–100 tikrų klausimų su teisingais atsakymais ir dokumentu, kuriame atsakymas yra.
- Paieškos kokybė. Ar teisingas gabalas patenka į 5 geriausių rezultatų sąrašą? Jei ne, problema paieškoje, ne modelyje.
- Atsakymo ištikimybė. Ar atsakymas remiasi tik ištraukomis, ar modelis pridėjo išgalvotų detalių (haliucinacija)?
- Atsisakymas. Ar sistema sako „nežinau, perduodu žmogui“, kai atsakymo dokumentuose nėra?
- Pakartotinis vertinimas. Paleiskite rinkinį po kiekvieno skaidymo, modelio ar prompto pakeitimo.
Ko reikia RAG sistemai: komponentai
| Komponentas | Pavyzdžiai | Pastabos |
|---|---|---|
| Dokumentų šaltiniai | Svetainė, el. parduotuvės katalogas, Google Drive, CRM | Reikia automatinio atnaujinimo, kitaip atsakymai pasensta |
| Embedding modelis | OpenAI text-embedding-3, Voyage 4, Gemini embedding | Tas pats modelis indeksavimui ir klausimams |
| Vektorių saugykla | PostgreSQL + pgvector, specializuotos vektorių DB | Daugumai MVĮ užtenka esamos PostgreSQL |
| LLM | claude-sonnet-5-5, gpt-6.1-sol ir kt. | Pigesnis modelis dažnai pakankamas, kai kontekstas geras |
| Orkestravimas | n8n, savas kodas | n8n turi vektorių saugyklų ir AI mazgus |
RAG atsakymų kaina priklauso nuo pasirinkto modelio – šiandienines kainas rodome įrankyje DI modelių API kainos. RAG sistemų diegimą aprašome paslaugos puslapyje DI integracijos.
Pavyzdys: RAG ar visas katalogas kontekste – 4 000 klausimų per mėnesį
Situacija: el. parduotuvė su 300 prekių (vidutiniškai 1 500 simbolių aprašo) ir taisyklėmis nori pokalbių roboto, kuris per mėnesį atsako į 4 000 klausimų. Lyginame du būdus: (A) RAG – kiekvienai užklausai 4 500 simbolių instrukcijų, 6 000 simbolių surastų ištraukų ir 180 simbolių klausimas; (B) visas katalogas kontekste – 4 500 simbolių instrukcijų, 450 000 simbolių katalogo ir klausimas. Atsakymas abiem atvejais – 750 simbolių. Žetonai perskaičiuoti pagal mūsų lietuviško teksto matavimą (GPT-6 – 3,0, Claude 5.5 – 1,9 simbolio žetonui), kainos – oficialūs kainoraščiai 2026-10-13, 1 EUR = 1,1181 USD (ECB 2026-10-12), be podėlio ir be PVM.
| Modelis | Įvesties žetonai: RAG / visas katalogas | A. RAG, € / mėn. | B. Visas katalogas, € / mėn. |
|---|---|---|---|
| gpt-6-luna | 3 567 / 151 848 | 1,72 | 54,77* |
| claude-haiku-5-5 | 5 664 / 241 144 | 2,74 | 434,90** |
| gpt-6.1-sol | 3 567 / 151 848 | 34,48 | 1 095,43* |
| claude-sonnet-5-5 | 5 664 / 241 144 | 54,76 | 1 739,62 |
* Skaičiuota trumpo konteksto kaina; jei užklausa patenka į OpenAI ilgo konteksto tarifą, suma didesnė. ** claude-haiku-5-5 užklausoms virš 100 000 žetonų taikomas 0,50 / 2,50 USD tarifas.
Indeksavimo kaina beveik nereikšminga: 2 000 dokumentų po 2 500 simbolių (5 mln. simbolių, apie 2,4 mln. žetonų) su text-embedding-3-small kainuoja apie 0,04 €, su text-embedding-3-large – apie 0,28 € (pagal OpenAI skelbiamą puslapių už dolerį santykį). Išvada: RAG šiame scenarijuje 30–160 kartų pigesnis nei viso katalogo siuntimas, o didžioji dalis darbo – ne modelis, o duomenų paruošimas, paieškos kokybė ir atnaujinimas.
Dažniausios klaidos
- Indeksuoti neišvalytą HTML su meniu, poraštėmis ir slapukų pranešimais. Paieška tada randa triukšmą, o ne atsakymą.
- Skaidyti dokumentus per mažais ar per dideliais gabalais be antraštės konteksto. Gabalas turi būti suprantamas atskirai nuo dokumento.
- Pasikliauti vien vektorine paieška lietuviškam tekstui. Hibridinė paieška su žodžių paieška geriau randa kodus, modelių pavadinimus ir tikslias frazes.
- Neatnaujinti indekso. Pasikeitusios kainos ar taisyklės, kurios liko sename indekse, duoda įtikinamus, bet neteisingus atsakymus.
- Neleisti modeliui pasakyti „nežinau“. Be aiškios instrukcijos modelis bandys atsakyti net tada, kai ištraukose atsakymo nėra.
- Vertinti tik galutinį atsakymą. Pirmiausia reikia patikrinti, ar paieška randa teisingą gabalą – dauguma klaidų atsiranda ten.
- Indeksuoti dokumentus su asmens duomenimis be teisinio pagrindo ir prieigos ribojimų. Robotas gali atskleisti vieno kliento duomenis kitam.
RAG (paieška papildytas generavimas) Lietuvoje
Lietuvos įmonės dokumentai dažnai yra mišrūs: dalis lietuviškai, dalis angliškai, dalis nuskenuoti PDF. RAG projektą verta pradėti nuo inventorizacijos – kurie šaltiniai patikimi, kas juos atnaujina ir kurie turi asmens duomenų. Lietuviškiems klausimams būtina hibridinė paieška ir daugiakalbis embedding modelis, patikrintas su tikrais klientų klausimais, įskaitant parašytus be diakritikų.
Jei į indeksą patenka asmens duomenys (užsakymai, susirašinėjimas, CV), taikomas BDAR: reikia teisinio pagrindo, saugojimo terminų, galimybės ištrinti duomenis pagal prašymą – vadinasi, ir pašalinti juos iš vektorių bazės. Priežiūros institucija – Valstybinė duomenų apsaugos inspekcija (VDAI). Pagal ES DI akto 50 straipsnį, taikomą nuo 2026 m. rugpjūčio 2 d., pokalbių robotas turi aiškiai informuoti klientą, kad šis bendrauja su DI sistema; Lietuvoje DI akto rinkos priežiūrą vykdo Ryšių reguliavimo tarnyba (RRT).
Susiję terminai
- Surenkame ir išvalome jūsų dokumentus, katalogą ir taisykles, suskaidome juos su antraščių kontekstu.
- Įdiegiame hibridinę paiešką lietuvių kalbai ir patikriname embedding modelį su jūsų tikrais klausimais.
- Sukuriame pokalbių robotą ar vidinį asistentą, kuris nurodo šaltinį ir perduoda klausimą žmogui, kai atsakymo nėra.
- Sukonfigūruojame automatinį indekso atnaujinimą ir kokybės testų rinkinį.
Dažni klausimai
Kas yra RAG paprastai?
RAG – tai DI sistema, kuri prieš atsakydama susiranda jūsų dokumentuose aktualias ištraukas ir atsako remdamasi jomis. Panašiai kaip žmogus, kuris prieš atsakydamas pasižiūri į taisykles.
Kuo RAG skiriasi nuo ChatGPT?
ChatGPT atsako iš to, ką modelis išmoko, ir iš to, ką jam pateikiate pokalbyje. RAG sistema automatiškai suranda ir pateikia modeliui jūsų įmonės dokumentus, todėl atsakymai remiasi jūsų informacija ir gali turėti šaltinio nuorodą.
Ar RAG panaikina haliucinacijas?
Ne visiškai, bet jas gerokai sumažina. Modelis vis tiek gali neteisingai interpretuoti ištrauką, todėl reikia instrukcijos atsakyti tik iš šaltinių, galimybės pasakyti „nežinau“ ir reguliaraus testavimo.
Kas yra vektorių duomenų bazė?
Tai duomenų bazė, kuri saugo tekstų embedding vektorius ir greitai suranda artimiausius pagal prasmę. Daugumai MVĮ užtenka PostgreSQL su pgvector plėtiniu, specializuotos bazės reikalingos didelėms apimtims.
Kiek kainuoja RAG sistema?
Eksploatacija dažnai kainuoja nuo kelių iki kelių dešimčių eurų per mėnesį: mūsų skaičiavimu, 4 000 klausimų – nuo 1,72 € su pigiausiu iki 54,76 € su vidutiniu Claude modeliu. Didžiausia dalis – vienkartinis duomenų paruošimas ir integracija.
Ar RAG veikia su lietuviškais dokumentais?
Taip, bet reikia daugiakalbio embedding modelio ir hibridinės paieškos. Mūsų bandyme mažesnis OpenAI embedding modelis lietuviškus sinonimus atpažino prasčiau nei didesnis, todėl modelį verta patikrinti su savo klausimais.
Kada geriau įdėti dokumentus tiesiai į kontekstą?
Kai dokumentų nedaug (iki kelių šimtų puslapių), jie retai keičiasi ir naudojamas podėlis. Tada paprasčiau visą tekstą siųsti su kiekviena užklausa, nes nereikia paieškos infrastruktūros.
Ar RAG galima sukurti su n8n?
Taip. n8n turi AI mazgus, vektorių saugyklų jungtis ir embedding modelių integracijas, todėl paprastą RAG srautą galima surinkti be daug kodo. Sudėtingesnei paieškai ir vertinimui dažniausiai reikia ir savo kodo.
Šaltiniai
- Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks – arXiv (Lewis ir kt., 2020)
- Introducing Contextual Retrieval – Anthropic
- Vector embeddings – OpenAI
- Embeddings – Anthropic
- pgvector – pgvector (GitHub)
- Pricing – Anthropic
- Pricing – OpenAI
- OWASP Top 10 for Large Language Model Applications – OWASP
- Advanced AI – n8n
- Reglamentas (ES) 2024/1689 (Dirbtinio intelekto aktas) – EUR-Lex