Maciej Nuzia · RAG

RAG odpowiada na podstawie firmowych dokumentów i pokazuje źródło

RAG, czyli Retrieval Augmented Generation, przed ułożeniem odpowiedzi przeszukuje wskazane dokumenty. Odpowiedź wraca razem z fragmentami źródłowymi, które można otworzyć i sprawdzić. Dlatego zaczynam od wyszukiwania i uporządkowania materiałów.

Nie każdy zbiór dokumentów nadaje się pod RAG. Niżej opisuję trzy miejsca, w których takie wdrożenie się psuje.

Problem

Wiedza jest w dokumentach, a odpowiedzi ciągle powstają od nowa

Regulamin obowiązuje w wersji z aneksem, a o tym, jak stosuje się to w praktyce, wie osoba z najdłuższym stażem. Kiedy przychodzi pytanie, ktoś zestawia te rzeczy i formułuje odpowiedź. Potem odpowiedź idzie mailem do jednego klienta i tam zostaje.

  • ta sama odpowiedź została już kiedyś napisana i nikt nie wie, przez kogo
  • wyszukiwarka w intranecie zwraca listę plików do przejrzenia i na tym kończy swoją rolę
  • dokumentów przybywa szybciej, niż ktokolwiek zdąży je poukładać
  • przy sporze z klientem liczy się zapis, na który można się powołać

Dla kogo

RAG potrzebuje dwóch rzeczy: dokumentów i powtarzających się pytań

Pytania muszą wracać na tyle często, żeby ktoś zauważył, że system je przejął. Kiedy po próbce dokumentów widzę, że tak nie jest, odradzam to wdrożenie i mówię dlaczego. Oba warunki schodzą się tam, gdzie z dokumentów korzysta się codziennie.

  • Obsługa klienta i support
  • Działy prawne i compliance
  • HR i regulaminy wewnętrzne
  • Serwis i utrzymanie urządzeń
  • Dokumentacja techniczna produktu
  • Sprzedaż pracująca na cennikach i specyfikacjach

Zastosowania

Gdzie RAG pomaga w codziennej pracy

Szkic odpowiedzi dla klienta

Zgłoszenie wpada, a obok pojawia się propozycja odpowiedzi i fragment procedury, z którego wyszła. Agent poprawia jedno zdanie i wysyła. Przy trudniejszej sprawie otwiera go i czyta w całości.

Pytanie o zapis w umowie

Pytasz, jak w tej umowie wygląda okres wypowiedzenia, i dostajesz akapit, w którym to zapisano. Przy umowach różniących się drobiazgami samo wskazanie miejsca bywa całą wartością.

Wyszukiwanie, które rozumie pytanie

Ktoś pyta o zwrot towaru po terminie, a procedura nazywa tę sytuację reklamacją pozagwarancyjną. Dopasowanie po znaczeniu ma szansę te dwie nazwy zestawić.

Pierwsze tygodnie nowej osoby

Nowy pracownik pyta system o rzeczy, o które przy koledze wypada zapytać najwyżej raz.

Normy i przepisy wewnętrzne

Zbiór, który zmienia się rok do roku. System odpowiada z wersji wskazanej jako obowiązująca, więc ktoś w firmie musi tę wersję wskazać. Jedna decyzja, którą trzeba komuś przypisać.

Chatbot wystawiony klientom

Ten sam mechanizm po zewnętrznej stronie. Tu jestem ostrożniejszy z granicami: o czym model może rozmawiać, a przy jakich sprawach ma od razu podać kontakt do człowieka.

Bywa, że RAG jest jedną z funkcji większej aplikacji. Piszę o tym na stronie o aplikacjach webowych z AI.

Przebieg

Zaczynam od uporządkowania dokumentów

O wyniku decyduje materiał, który włożę do modelu i do bazy wektorowej. Stąd kolejność poniżej.

01

Co wchodzi do bazy

Siadam do tego, co firma trzyma: regulaminów, umów, korespondencji z klientami. Część odpada od razu, bo dubluje inny plik albo przestała obowiązywać. Przy każdym zbiorze muszę wiedzieć, kto rozstrzyga, która wersja jest ważna. Bez takiej osoby sprzeczności między dokumentami zostają w bazie i wychodzą dopiero w odpowiedziach.

02

Podział na fragmenty i indeks

Tnę dokumenty na fragmenty, które da się zrozumieć bez reszty pliku, i zamieniam je na wektory, żeby dało się szukać po znaczeniu. Wielkość fragmentu i to, co dokładam do niego z nagłówków, wychodzi z prób na Twoich plikach. Umowa dzieli się inaczej niż zapis rozmowy z klientem.

03

Wyszukiwanie, potem odpowiedź

Na pytanie system najpierw wybiera fragmenty, dopiero z nich układa zdanie. Ustawiam, ile ich bierze, czym uzupełnia zapytanie i co ma się stać, gdy nic nie pasuje. Ostatni punkt wymaga osobnej instrukcji: co system ma powiedzieć, kiedy wyszukiwanie nic nie przyniosło.

04

Przejście po Twoich pytaniach

Zbieram z Tobą listę pytań, które naprawdę padają, i przechodzę je po kolei: co zwróciło wyszukiwanie, co model z tego ułożył i czy źródło to potwierdza. Poprawki wracają na tę listę. Dokumenty dostają swój tryb odświeżania.

Technologie

Technologie do wyszukiwania i generowania odpowiedzi

Wybieram bazę wektorową i model pod to, gdzie mogą leżeć Twoje dokumenty.

  • OpenAI API
  • Claude / Anthropic
  • pgvector
  • Embeddings
  • Python
  • PostgreSQL
  • RAG pipelines
  • LangChain / własne
  • AWS

Trudne miejsca

Gdzie odpowiedź może być błędna

Odpowiedź, pod którą nic nie stoi

Do odpowiedzi dopinam fragmenty, na których się oparła, a przy ważnej sprawie trzeba je otworzyć. Wyszukiwanie miewa chybione trafienia, a model zbuduje zdanie z tego, co dostanie. Sam przypis nie dowodzi, że odpowiedź jest poprawna. Dowodzi tylko, z czego została ułożona.

Dokument zmieniony wczoraj

Odświeżanie bazy projektuję osobno: co ją zasila, jak często i kto to uruchamia. Do momentu odświeżenia w odpowiedziach wraca starsza wersja dokumentu.

Pytania, na które w dokumentach nie ma odpowiedzi

Część wiedzy firmy nigdy nie została spisana. RAG jej nie wyciągnie, bo nie ma z czego. Po uruchomieniu widać, o co ludzie pytają i czego w zbiorze brakuje. Zwykle powstaje wtedy kilka dokumentów, których wcześniej nikt nie napisał.

Z tych trzech najczęściej zaskakuje ostatnia. Lista pytań, na które w firmie nie ma odpowiedzi, zbiera się sama i bywa ciekawsza od samego systemu.

FAQ

Dokumenty, źródła i błędne odpowiedzi

Czym jest RAG?

Skrót od Retrieval Augmented Generation. Model dostaje pytanie, ale zanim odpowie, przeszukuje wskazany mu zbiór dokumentów i wyciąga z niego fragmenty. Odpowiedź bierze się właśnie z nich i wraca razem z nimi, więc widać, na czym stanęła.

Czym RAG różni się od fine-tuningu?

Fine-tuning zmienia zachowanie samego modelu i po każdej zmianie wiedzy trzeba go uczyć jeszcze raz. RAG zostawia model w spokoju i dokłada mu wyszukiwanie w Twoich plikach, więc świeża wiedza wchodzi przez podmianę dokumentu. Przy wiedzy, która co miesiąc wygląda inaczej, ta różnica jest rozstrzygająca. Przy stałym stylu i formacie odpowiedzi fine-tuning bywa lepszym wyborem.

Co się dzieje, gdy w dokumentach nie ma odpowiedzi?

System można ustawić tak, żeby powiedział, że nie znalazł, i podał kontakt do człowieka. Ta instrukcja jest częścią projektu i sprawdzam ją na pytaniach, o których z góry wiadomo, że odpowiedzi w zbiorze nie ma.

Czy dane firmy są bezpieczne?

Dane trafiają tam, gdzie ustalimy. Model można wołać u dostawcy, który nie uczy się na przesłanych treściach, albo postawić bliżej Twoich systemów, jeśli dokumenty nie mogą wyjść poza firmę. Osobną sprawą są uprawnienia: system musi wiedzieć, kto o co może pytać, bo inaczej wyszukiwanie pokaże pracownikowi zapis umowy, którego nie powinien widzieć. Poruszam to na początku, bo odpowiedź zmienia architekturę.

Dokumenty

Pokaż mi dokumenty i pytania, które do nich wracają

Wystarczy kilka zdań. Napisz, jakie to dokumenty, w czym są zapisane i kto dziś odpowiada na pytania o nie. Jeśli wolisz zacząć od liczb, przejdź przez narzędzie do wyceny i odezwij się z jego raportem.