Podręcznik uczestnika z objaśnieniami, przykładami i ćwiczeniami do samodzielnej nauki do Modułu 5
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.
- Przeczytaj objaśnienie i przewidź wynik przypadku kontrolnego.
- Uzupełnij funkcje w moj_m5.py, zapisz i przeładuj moduł.
- Uruchom test etapu. Lista brakujących funkcji oznacza niedokończony kod, nie zaliczony test.
- Po R6 wykonaj scenariusze dla własnego modułu i zapisz ocenę.
- 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