1. Jak korzystać z podręcznika

ENHANCER+ · Moduł 6 · Ewaluacja RAG · Rozdział

Moduł 6 prowadzi od działającego DocAssist do oceny, którą można sprawdzić i powtórzyć. Zbudujesz zestaw testowy, zapiszesz wyniki wyszukiwania i odpowiedzi, ocenisz je względem źródeł, zbadasz jedną zmianę i przygotujesz raport projektu. Książka zawiera objaśnienia oraz pełne definicje funkcji potrzebnych w warsztacie. Nie musisz równocześnie oglądać prezentacji.

Co jest potrzebne do samodzielnej pracy

Do czytania i rozwiązywania zadań analitycznych wystarczy ta książka. Końcowy dodatek „Źródła ćwiczeń i mapa pakietu” zawiera aktualne fragmenty korpusu, do których odwołują się przykłady. Do uruchomienia kodu potrzebujesz pakietu M12_M6_Student.zip, dodatku Modul_6_RAG_warsztat_kod.zip i środowiska Python z NumPy oraz JupyterLab. Pobierz je przed przejściem do pracy offline.

Standardowe notebooki R1–R6 pakietu używają gotowego m6_tools.py. Nowy warsztat używa moj_m6.py, w którym uzupełniasz trzynaście funkcji. Funkcje pomocnicze, zapis JSON i połączenie z M3–M5 są już dostarczone. Książka wyjaśnia, co robią, ale nie wymaga przepisywania całej aplikacji.

EtapCo budujeszJak sprawdzasz rezultat
R1Niezmienną konfigurację bazowąPróba podmiany istniejącej bazy zostaje zatrzymana
R2Dodatkową walidację kontraktów i przygotowanie pytaniaWadliwe referencje i brak samodzielnego pytania są wykrywane
R3Hit@k, pokrycie grup, rekord i wykonanie retrievaluMetryki zgadzają się z jawnym rankingiem, bez generacji
R4Zapis RAG z tego samego wywołania i kontrolę recenzjiOdpowiedź wskazuje właściwy ranking i ocenę
R5Porównanie jednej zmiany i analizę trzech wykonańWykrywasz regresję, błąd krytyczny i zmienność
R6Wiersz macierzy dowodówWniosek prowadzi do konkretnego wyniku i recenzji

Przygotuj własny warsztat

Rozpakuj pakiet Studenta. Z dodatku warsztatowego przenieś zawartość katalogu Student do swojego katalogu Student. Dodatek ma nowe nazwy plików. Jeżeli już pracowałeś z moj_m6.py, zachowaj własną wersję przed ponownym kopiowaniem.

Student/
  kod/
    m3_tools.py, m4_tools.py, m5_tools.py
    m6_tools.py                 gotowy punkt odniesienia
    moj_m6.py                   trzynaście funkcji do uzupełnienia
    sprawdz_moj_m6.py           kontrole etapów
  notebooki/
    M12_M6_warsztat_ksiazki.ipynb
  dane/semantic_index/
  checkpointy/
  evaluation/                  standardowe ćwiczenia
  wyniki/warsztat_M6/           niezależne przebiegi warsztatu

W moj_m6.py zastępuj całą definicję oznaczoną WARSZTAT, zachowując nazwę, argumenty i wcięcia. W książce każda definicja ma wskazany etap. Kod gotowych pętli wykonawczych pozostaw na miejscu: wywołują one funkcje z Twojego modułu, więc wyniki dotyczą Twojej implementacji.

Środowisko i cykl pracy

Jeżeli środowisko M5 działa, użyj go ponownie. W nowym środowisku uruchom poniższe polecenia w terminalu otwartym w Student. Na Linux/macOS użyj python3 oraz .venv/bin/python.

py -m venv .venv
.venv\Scripts\python.exe -m pip install -r requirements.txt
.venv\Scripts\python.exe -m jupyterlab

Otwórz notebook M12_M6_warsztat_ksiazki.ipynb. Po każdej zmianie pliku zapisz go i wykonaj komórkę z importlib.reload. Zwykły powtórny import nie wczytuje zmienionego kodu. Kontroler etapu poda listę brakujących definicji albo wynik sprawdzeń. Komunikat „nieukończone” nie jest zaliczeniem testu.

Notebook warsztatu · przykład wywołania

from pathlib import Path
from uuid import uuid4
import sys, json, importlib

ROOT = Path.cwd().resolve()
if not (ROOT / 'konfiguracja.json').exists():
    ROOT = ROOT.parent
assert (ROOT / 'konfiguracja.json').exists(), 'Otwórz notebook z Student/notebooki.'
sys.path.insert(0, str(ROOT / 'kod'))
import moj_m6 as w
import m6_tools as ref
import sprawdz_moj_m6 as check
importlib.reload(w)

MODE = 'checkpoint'
config = w.configure(ROOT, mode=MODE)
cases = w.load_cases(ROOT)
WORK = ROOT / 'wyniki' / 'warsztat_M6' / uuid4().hex
E = WORK / 'evaluation'
E.mkdir(parents=True)
print('Katalog tego przebiegu:', WORK)

Zmienna ROOT zawsze wskazuje pakiet Studenta. WORK jest nowym katalogiem danego przebiegu warsztatu. Jego podkatalog evaluation zawiera pliki o tych samych nazwach co standardowe ćwiczenia, lecz nie nadpisuje wcześniejszej pracy. Przy ponownym otwarciu rozpoczętej sesji wskaż istniejący WORK, zamiast tworzyć kolejny, jeśli chcesz tylko dokończyć recenzje.

Co znaczy offline

Tryb checkpoint odtwarza zapisane żądania z wcześniejszego pilota. W R3 dostępnych jest dziewięć wyszukiwań z listy checkpoint_subset.json. W R4 lista assistant_checkpoint_subset.json obejmuje pięć sprawdzonych przypadków. To dwa różne zakresy. Brak checkpointu nie uruchamia modelu automatycznie.

Nowe pytanie, nowy prompt i pełne scenariusze asystenta wymagają trybu ollama oraz lokalnych modeli. Internet nie musi być potrzebny podczas generowania, jeżeli biblioteki i modele pobrano wcześniej. Czytanie książki i analiza dostarczonych wyników pozostają dostępne całkowicie offline.

Aktualny korpus

DocAssist jest fikcyjny. W M6 pracujesz na rzeczywistym pakiecie M3–M5: cztery identyfikatory dokumentów, dziesięć fragmentów i wektory o 1024 wymiarach. W książce M1 występowały inne przykłady, m.in. journalctl i kopia katalogu przed aktualizacją. Nie przenoś tych procedur do oceny M6. Tutaj podstawą jest tekst aktualnego indeksu, przytoczony w dodatku źródłowym. Polecenia systemowe występują jako treść dokumentów, a asystent ich nie wykonuje.

Lokalne chatboty, agenci i systemy RAG z własną bazą wiedzy · Moduł 6 · Wydanie 29.09.2026