5. Wyszukiwanie najbliższych fragmentów

Dla jednego pytania obliczasz podobieństwo do wszystkich fragmentów, sortujesz wyniki malejąco i wybierasz pierwsze k. Ten mechanizm zwraca kandydatów na kontekst. O ich przydatności rozstrzyga treść.

1. Miniaturowa baza do dalszych ćwiczeń

Poniżej znajduje się pełna treść sześciu wybranych fragmentów pakietu M3, wersja dokumentów 1.4. Na potrzeby książki nazywamy je D1–D6. To skróty do rachunków, nie nowe chunk_id i nie cały dziesięcioelementowy korpus. W ćwiczeniach książkowych oceniasz odpowiedzi względem tej miniaturowej bazy.

D1 · instrukcja.txt

DOC-INSTR-dd6055d675-0002

Pochodzenie: sekcja „Ponowne uruchomienie usługi”, wersja 1.4.

## Ponowne uruchomienie usługi
Po zmianie pliku /etc/docassist/config.yaml wykonaj kolejno:
1. Uruchom ponownie usługę: sudo systemctl restart docassist-api
2. Sprawdź stan: systemctl is-active docassist-api
Prawidłowy wynik: active.
Uwaga: wykonaj ponowne uruchomienie tylko po zmianie konfiguracji.
D2 · instrukcja.txt

DOC-INSTR-dd6055d675-0003

Pochodzenie: sekcja „Kopia konfiguracji”, wersja 1.4.

## Kopia konfiguracji
Przed edycją zachowaj kopię pliku konfiguracyjnego w katalogu kopii.
Nie zapisuj w zgłoszeniu haseł ani kluczy. W razie nieudanego uruchomienia
przywróć zatwierdzoną kopię i zgłoś problem administratorowi.
D3 · regulamin.md

DOC-REG-6a742ef524-0002

Pochodzenie: sekcja „Dyżur operatora”, wersja 1.4.

## Dyżur operatora
Operator przyjmuje zgłoszenia w dni robocze od 08:00 do 16:00.
Poza tymi godzinami zgłoszenie czeka do następnego dyżuru.
Wyjątek: awarię uniemożliwiającą pracę całego zespołu zgłoś dyżurnemu
administratorowi zgodnie z wewnętrzną procedurą eskalacji.
D4 · regulamin.md

DOC-REG-6a742ef524-0003

Pochodzenie: sekcja „Treść zgłoszenia”, wersja 1.4.

## Treść zgłoszenia
Podaj wersję systemu, czas zdarzenia, komunikat błędu i wykonane kroki.
Nie dołączaj danych osobowych ani sekretów. Opisz oczekiwany wynik.
Nie podajemy w tym regulaminie gwarantowanego czasu rozwiązania zgłoszenia.
D5 · docassist.pdf

DOC-PDF-7bf28bc22b-0005

Pochodzenie: strona 2, sekcja „Parametr oczekiwania”, wersja 1.4.

## Parametr oczekiwania
Parametr: timeout_seconds. Wartość zalecana w tym przykładzie: 30 s.
Zwiększ wartość dopiero po ustaleniu, że operacja trwa dłużej.
Nie traktuj tego parametru jako gwarancji czasu odpowiedzi.
D6 · docassist.pdf

DOC-PDF-51aa0fc583-0003

Pochodzenie: strona 1, sekcja „Test po zmianie konfiguracji”, wersja 1.4.

## Test po zmianie konfiguracji
Po zmianie konfiguracji sprawdź uruchomienie usługi i zapisz wynik.
Nie usuwaj łącznika w nazwie docassist-api.

Fragmenty TXT i Markdown nie otrzymują wymyślonych numerów stron. Identyfikatory i metadane pozwalają odnaleźć dokument niezależnie od miejsca fragmentu w rankingu. Jeśli w dalszym zadaniu widzisz D1, odwołuje się ono dokładnie do tekstu powyżej.

2. Budowanie rankingu

  1. Zakoduj pytanie tym samym modelem i w zgodny sposób jak fragmenty.
  2. Dla każdego rekordu oblicz kosinus i zachowaj powiązanie z chunk_id, tekstem oraz metadanymi.
  3. Uporządkuj wyniki od największego score i wybierz top_k pierwszych.
  4. Przeczytaj wynik, sprawdź źródło i oceń, czy dostarcza potrzebnej informacji.

Funkcja search_similar_chunks(query_embedding, chunks, top_k=3) realizuje wersję z pętlą. Zwraca płaskie rekordy z polami chunk_id, text, metadata i score. top_k musi być dodatnią liczbą całkowitą. Gdy w zbiorze jest mniej fragmentów niż k, można zwrócić tylko dostępne rekordy. Remisy wymagają stałej, jawnej reguły; pakiet zachowuje kolejność wejściową.

3. Ile fragmentów wybrać

Załóżmy pytanie: „Jakim poleceniem sprawdzę stan usługi po zmianie konfiguracji?”. Poniższy ranking jest dydaktyczny, przygotowany do ćwiczenia. Liczby nie pochodzą z pomiaru BGE-M3.

Pozycja Fragment Score Co rzeczywiście zawiera
1 D6 0,86 Ogólne zalecenie sprawdzenia uruchomienia; bez komendy.
2 D1 0,82 Konkretne polecenie i oczekiwany wynik.
3 D2 0,64 Zasady wykonania kopii i działania po nieudanym uruchomieniu.

Przy k = 1 otrzymasz tylko ogólny tekst. Przy k = 2 odzyskasz dokładną informację potrzebną w tym pytaniu. Dodanie D2 zwiększa objętość przyszłego kontekstu, lecz nie jest niezbędne do podania komendy. W innym pytaniu, np. o przygotowanie do edycji, D2 może być najważniejsze. Wybór k oceniaj na zestawie pytań, nie na pojedynczym trafieniu.

Pierwsze miejsce nie jest dowodem obecności odpowiedzi

Dla pytania o numer telefonu administratora ta baza nie zawiera właściwej informacji. Top-k nadal może zwrócić fragmenty dotyczące administratora. Nie zastępuj brakującego numeru informacją ze „zwycięskiego” fragmentu.

Ćwiczenie 4. Sprawdź przydatność top-k

Praca samodzielna offline

Skorzystaj z bazy D1–D6 i powyższego rankingu.

  1. Wskaż wyniki dla k = 1, 2 i 3. Dla każdego wariantu oceń możliwość podania dokładnej komendy.
  2. Wyjaśnij, dlaczego D6 może być tematycznie trafny, ale niewystarczający.
  3. Dla pytania „W jakich godzinach przyjmowane są zgłoszenia?” ustal oczekiwany fragment na podstawie źródła, bez wymyślania score.
  4. Zapisz, czego brakuje do odpowiedzi na pytanie o telefon administratora.
  5. Wymień pola, które musisz pokazać obok score, aby inna osoba mogła sprawdzić wybór.
Sprawdź rozumienie

Czy sprawdzasz przydatność względem konkretnego pytania, a nie ocenę dokumentu jako całości?

Przejście do pakietu ćwiczeniowego

Jeżeli pracujesz również na komputerze, wykorzystaj kartę R4 oraz notebook M12_M3_R4_ranking_top_k_start.ipynb.

Porównaj kilka pytań i różne wartości k. Zachowaj ranking_results.jsonl oraz własny wniosek. Wydruk w notebooku pokazuje score, identyfikator fragmentu, dokument, źródło, lokalizację i tekst.

ENHANCER+ · Politechnika Warszawska · podręcznik do samodzielnej nauki offline