1. Jak korzystać z podręcznika

W Module 4 przygotowano RAG odpowiadający na pojedyncze pytanie. Teraz zbudujesz wokół niego rozmowę: z historią, wyborem narzędzia, kontrolą wykonania i śladem każdej tury. Książka prowadzi od decyzji projektowej do konkretnej funkcji Pythona oraz testu jej zachowania.

Materiał nawiązuje do układu podręcznika M1: objaśnienie, przykład, zadanie i sprawdzenie własnej odpowiedzi. Sześć rozdziałów odpowiada R1–R6 Modułu 5. Nie trzeba równocześnie oglądać slajdów, aby odtworzyć przedstawioną logikę. Książka dopowiada połączenia między funkcjami, sposób pracy z plikami i warunki, które łatwo pominąć w skrótowym przykładzie na slajdzie.

1. Co zbudujesz

Etap Twój wkład Sposób sprawdzenia
R1 Zakres aplikacji i niezależny stan rozmowy. Dwie rozmowy nie dzielą historii ani identyfikatora.
R2 Walidacja wiadomości, prezentacja wyniku i pętla wejścia. Niepoprawne wejście nie uruchamia RAG.
R3 Historia, rozwiązanie odniesienia i zapis zakończenia. Pytanie ma jawny obiekt; reset usuwa stare odniesienia.
R4 Prompt, surowa propozycja i normalizacja decyzji. Propozycja ma wymagany format, ale niczego nie wykonuje.
R5 Walidator RAG, kontrola wyniku i wykonawca narzędzia. Złe argumenty i druga próba zostają zatrzymane.
R6 Złożenie wywołania i pełny koordynator tury. Każde zakończenie ma wynik i ślad.

2. Przygotuj katalog do własnej implementacji

Pobierz z sekcji kursu M12_M5_student.zip oraz Modul_5_RAG_warsztat_kod.zip. Rozpakuj paczkę Studenta. Z dodatku przenieś zawartość katalogu Student do tego samego katalogu w swoim egzemplarzu materiałów. Dodatek zawiera tylko nowe nazwy plików. Jeżeli masz już własny moj_m5.py, zachowaj go pod inną nazwą przed kopiowaniem.

Nowe pliki obok istniejącego pakietu

Student/
  kod/
    m3_tools.py                 # wyszukiwanie z M3
    m4_tools.py                 # działający RAG z M4
    m5_tools.py                 # pełna wersja referencyjna M5
    m5_exercises.py             # scenariusze i zapis oceny
    moj_m5.py                   # Twoja implementacja: 15 funkcji
    sprawdz_moj_m5.py           # testy etapów i adapter scenariuszy
  notebooki/
    M12_M5_warsztat_ksiazki.ipynb
  dane/semantic_index/
  checkpointy/
  wyniki/

Plik moj_m5.py ma gotowe importy, stałe, katalog narzędzi i funkcje pomocnicze. Piętnaście funkcji oznaczono WARSZTAT i pozostawiono z NotImplementedError. Zastąp całą definicję wskazanym kodem, zachowując nazwę i wcięcia. Pozostałe funkcje zapewniają połączenia między etapami. Wszystkie piętnaście pełnych definicji znajduje się w książce. Nie trzeba budować od nowa całego RAG.

Standardowe notebooki R1–R6 używają m5_tools.py i służą jako punkt odniesienia. Nowy notebook warsztatowy używa moj_m5.py, więc testuje Twoją implementację. Nie zmieniaj plików m3_tools.py i m4_tools.py.

3. Uruchomienie środowiska i cykl pracy

Jeżeli środowisko już działa, użyj go ponownie. W przeciwnym razie otwórz terminal w Student i wykonaj poniższe polecenia Windows. Na Linux/macOS użyj python3 oraz .venv/bin/python. Instalacja zależności wymaga dostępu do Internetu.

Przygotowanie Pythona 3.10+; polecenia do terminala

py -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
.\.venv\Scripts\python.exe -m ipykernel install --prefix .venv --name m5 --display-name "Python M5"
.\.venv\Scripts\python.exe -m jupyterlab

W Jupyter wybierz kernel „Python M5” i otwórz notebooki/M12_M5_warsztat_ksiazki.ipynb. Plik Pythona edytuj w edytorze tekstowym Jupyter. Po zapisie uruchom komórkę przeładowania modułu. Ponowny import bez importlib.reload() nie wczyta zmienionych definicji. Po zmianach utwórz też nowy stan rozmowy.

  1. Przeczytaj objaśnienie i przewidź wynik przypadku kontrolnego.
  2. Uzupełnij funkcje w moj_m5.py, zapisz i przeładuj moduł.
  3. Uruchom test etapu. Lista brakujących funkcji oznacza niedokończony kod, nie zaliczony test.
  4. Po R6 wykonaj scenariusze dla własnego modułu i zapisz ocenę.
  5. Surowy wynik zachowaj bez zmian; komentarz zapisz osobno.

4. Wspólne dane i granice przykładu

DocAssist jest fikcyjny. M5 korzysta z indeksu M4: 10 fragmentów, 1024 wymiary, dokumenty DOC-INSTR, DOC-REG, DOC-PDF i DOC-HELP. Model embeddingowy to bge-m3:latest, a generujący qwen3:4b-instruct-2507-q4_K_M. Konfiguracja sprawdza zgodność digestu embeddingu z indeksem. Do nowych wywołań uruchom Ollama i pobierz oba modele.

Przykłady „z pilotażu” pochodzą z autentycznych wyników z 26.09.2026. Przykłady „test” mają kontrolowane wejścia lub dubler funkcji i nie mierzą modelu. Checkpoint wymaga identycznych żądań; nowe sformułowanie może nie mieć zapisu. Zmiany promptu testuj w jawnie wybranym trybie Ollama.

ENHANCER+ · Politechnika Warszawska · podręcznik do samodzielnej pracy · M5