Ragable

← Wszystkie artykuły

Jak sprawić, żeby asystent AI podawał dokumenty, z których korzystał

4 min czytania
Jak sprawić, żeby asystent AI podawał dokumenty, z których korzystał

Każdy asystent oparty na retrievalu prędzej czy później dostaje to samo pytanie od osoby, która ma go zatwierdzić: skąd wzięła się ta odpowiedź? Brzmi jak drobiazg formatowania. Nie jest. Cytowanie to granica między asystentem, który produkuje wiarygodnie brzmiący tekst, a takim, którego odpowiedź da się sprawdzić przed podjęciem decyzji. Budujemy takie systemy dla firm, w których dokumenty są całą stawką, i okazuje się, że pochodzenie treści to znacznie bardziej problem ingestii niż promptu.

Co cytowanie naprawdę znaczy w systemie retrievalowym

Cytowanie to nie przypis, który pisze model. To zapis tego, które pobrane chunki trafiły do promptu. Miesza się tu trzy rzeczy: listę źródeł zwróconą przez retrieval, fragmenty, na których model faktycznie się oparł, i link, który widzi czytelnik. Poproś model o „dodanie źródeł na końcu", a dostaniesz przekonujące nazwy plików, bo wygenerowanie cytowania to dokładnie ta sama predykcja tokenów co wygenerowanie zwykłego zdania. Nic w tym procesie nie dotyka twojego repozytorium dokumentów. Nic. Wiarygodne przypisanie źródeł pochodzi z warstwy retrievalu, gdzie żyją prawdziwe identyfikatory, nigdy z warstwy generowania, która je zmyśla.

Zaprojektuj chunk tak, żeby dało się na niego wskazać

Zanim cokolwiek innego zadziała, każdy chunk potrzebuje trwałej tożsamości. Identyfikator dokumentu, wersja, kotwica do strony lub nagłówka, zakres offsetów znakowych - przenoszone bez zmian przez ingestię, bazę embeddingów, wynik retrievalu, składanie promptu i finalną odpowiedź. Granice tnące w połowie zdania dają cytowania wyglądające na błędne, nawet gdy retrieval zadziałał poprawnie, więc przy dzieleniu szanuj strukturę tekstu. Oryginalny plik też trzymaj adresowalny, żeby link otwierał źródło na właściwej stronie, zamiast wyrzucać komuś cały PDF. A ponowna ingestia, która po cichu nadaje nowe identyfikatory? Odbiera pochodzenie każdej odpowiedzi, którą już zapisałeś.

Trzy sposoby na podpięcie źródeł do odpowiedzi

  • Lista pobranych dokumentów pod odpowiedzią. Tanio i uczciwie, ale zgrubnie: pokazuje, co było dostępne, a nie co zostało użyte.
  • Znaczniki w tekście powiązane z numerowanymi blokami kontekstu. Przypisanie na poziomie zdania, które dobrze się czyta, choć znaczniki są wyjściem modelu i trzeba je weryfikować względem prawdziwej listy identyfikatorów.
  • Weryfikacja po generowaniu, czyli sprawdzenie tez względem fragmentów. Kosztuje dodatkowy przebieg i opóźnienie. Opłaca się tam, gdzie złe przypisanie źródła ma konsekwencje.

Większość wdrożeń kończy na połączeniu tych podejść: ścisła biała lista identyfikatorów dla wszystkiego plus weryfikacja tez, które naprawdę mają znaczenie.

Prompt pod odpowiedzi osadzone w źródłach

Ponumeruj bloki kontekstu wprost i powiedz asystentowi, żeby odwoływał się wyłącznie do tych numerów, nigdy do nazw plików, które akurat pamięta. Daj mu też furtkę. Stwierdzenie, że dokumenty nie odpowiadają na pytanie, jest poprawną odpowiedzią, a bez zgody na jej udzielenie model po cichu załata lukę wiedzą ogólną. Trzymaj odpowiedź i cytowania rozdzielone strukturalnie, żeby twój parser nie zależał od tego, czy formatowanie tekstu się nie zmieni.

Wskazówka: poproś o ustrukturyzowane wyjście, w którym pole cytowania to lista identyfikatorów bloków kontekstu, a potem mapuj identyfikatory na dokumenty w kodzie. Odrzucaj albo usuwaj każdy znacznik, który nie wskazuje na blok faktycznie wysłany do modelu.

Sprawdzanie, czy cytowanie jest prawdziwe

Zbuduj mały zestaw ewaluacyjny z pytaniami o znanych poprawnych źródłach i mierz recall retrievalu osobno od jakości odpowiedzi. Dwa rodzaje błędów zasługują na osobne śledzenie: dobra odpowiedź z niewłaściwym źródłem oraz poprawne źródło podpięte pod tezę, której wcale nie zawiera.

  1. Sprawdź każdy wygenerowany identyfikator względem listy wysłanych bloków.
  2. Potwierdź, że cytowany fragment faktycznie wspiera zdanie, przy którym stoi.
  3. Potwierdź, że żadna istotna teza nie została bez źródła.
  4. Potwierdź, że asystent odmawia odpowiedzi, gdy naprawdę brakuje pokrycia w dokumentach.

Wskazówka: loguj pełny zestaw pobranych fragmentów przy każdej odpowiedzi, żeby sporną odpowiedź dało się odtworzyć po miesiącach. Uruchamiaj ten zestaw testów po zmianie chunkowania, podmianie modelu i aktualizacji embeddingów.

Uprawnienia, wersje i ograniczenia on-premise

Cytowania pokazują tytuły dokumentów, więc filtrowanie po uprawnieniach jest sprawą retrievalu, a nie interfejsu. Ukryj link w UI, podczas gdy tytuł nadal się wyświetla, a wyciekło dokładnie to, co miało być chronione. Widoczne cytowanie, którego czytelnik nie może otworzyć, jest gorsze niż jego brak, więc zgraj kontrolę dostępu z tym, co faktycznie się wyświetla. Przypnij każdą odpowiedź do pobranej rewizji i pokaż informację, gdy pojawi się nowsza. Chmura albo w całości sprzęt klienta - to zmienia miejsce, w którym leżą indeks i logi, a nie to, czy pochodzenie treści działa. Kontrakt na metadane obowiązuje tak samo. W środowiskach regulowanych ślad cytowań często zostaje jako zapis audytowy, co przesuwa decyzje o przechowywaniu danych na wcześniejszy etap projektu.

Najczęściej zadawane pytania

Czy można po prostu poprosić model ogólnego przeznaczenia o podanie źródeł?

Nie. Wygeneruje przekonujące, ale nieweryfikowalne odwołania, bo nic nie ogranicza wyjścia do dokumentów, które istnieją. Prawdziwe cytowanie potrzebuje retrievalu pod spodem.

Czy cytowania w tekście spowalniają asystenta?

Samo wypisanie znaczników nie kosztuje prawie nic. Osobny przebieg weryfikacyjny dokłada realne dodatkowe zapytanie, więc dla każdego zastosowania rozstrzygnij, czy to opóźnienie kupuje wystarczającą pewność.

Co się dzieje, gdy odpowiedź łączy kilka dokumentów?

Przypisuj źródła do pojedynczych tez, a nie do całej odpowiedzi, i trzymaj kompletny zestaw pobranych fragmentów w odpowiedzi, żeby każdy mógł sprawdzić, co model widział.

Od czego zaczęlibyśmy

Zacznij od trwałych identyfikatorów chunków i ścisłej białej listy odwołań do bloków kontekstu. Samo to eliminuje zmyślone źródła, czyli awarię, która naprawdę spędza ludziom sen z powiek. Znaczniki na poziomie zdania dodaj dopiero wtedy, gdy warstwa identyfikatorów się sprawdzi, a weryfikację nakładaj tylko tam, gdzie złe przypisanie źródła kosztuje. Traktuj cytowanie jako element produktu, a nie artefakt do debugowania: to ono zamienia odpowiedź asystenta w coś, co człowiek może sprawdzić, podważyć i wykorzystać. Praca inżynierska siedzi w ingestii i dyscyplinie metadanych, nie w sprytnym formułowaniu promptu.

Zbuduj asystenta AI na własnych dokumentach

Ragable indeksuje Twoje pliki i odpowiada na ich podstawie, z odnośnikami do źródeł. Zacznij w SaaS albo postaw na własnej infrastrukturze.

Zacznij od 99 USD miesięcznie