Lokalne chatboty, agenci i systemy RAG z własną bazą wiedzy
Przegląd sekcji
-
-


ENHANCER+ wsparcie krótkich form kształcenia studentów i pracowników Politechniki Warszawskiej w środowisku międzynarodowym sojuszu ENHANCE.

-
- Autorzy/Autorki:
- Marcin Godziemba-Maliszewski
- Afiliacja autorów:
- Centrum Wsparcia Dydaktyki, Ośrodek Kształcenia na Odległość, Politechnika Warszawska
- Data publikacji:
- 1 października 2026
- Korzystaj na licencji::
CC BY 4.0 — Uznanie autorstwa
-
Wizytówka przedmiotu
-
Kurs jest przeznaczony dla studentów uczelni technicznej, którzy znają podstawy programowania w Pythonie i chcą nauczyć się tworzyć lokalne rozwiązania AI wykorzystujące własne dokumenty jako bazę wiedzy. Szczególnie dobrze wpisuje się w potrzeby studentów kierunków informatycznych, inżynierskich, technicznych, ekonomiczno-technicznych oraz osób zainteresowanych praktycznym wykorzystaniem modeli językowych w pracy z dokumentacją, wiedzą organizacyjną lub materiałami dydaktycznymi.
Zalecane jest, aby student potrafił uruchomić środowisko Jupyter Notebook, Ollama oraz Open WebUI, wykonywać podstawowe operacje w Pythonie, instalować biblioteki, korzystać z lokalnego modelu językowego przez Ollama oraz rozumiał podstawową ideę rozmowy z modelem LLM.
Ścieżka lektorska (synteza mowy) oraz część materiałów kursu – w tym wybrane elementy treści, podsumowania i materiały wizualne – powstały przy wsparciu narzędzi generatywnej sztucznej inteligencji (zgodnie z art. 50 Aktu o sztucznej inteligencji UE). Prezentowany materiał został zweryfikowany merytorycznie przez autora kursu.
-
-
Kurs jest w formule otwartego dostępu w związku z czym elementy komunikacji wewnątrz kursu dla osób niezalogowanych nie są dostępne. Jeśli masz pytania lub znalazłeś błąd napisz do nas na pomoc.okno@pw.edu.pl.
-
-
-
W module 1 poznasz różnicę między zwykłym czatem z modelem językowym a systemem korzystającym z własnej wiedzy i dodatkowego kontekstu. Nauczysz się rozumieć rolę modelu LLM, promptu, kontekstu, historii rozmowy oraz ograniczeń okna kontekstowego. Przyjrzysz się typowym ograniczeniom modeli językowych, w tym możliwości generowania odpowiedzi nieopartych na źródłach i braku automatycznego dostępu do lokalnych dokumentów. Następnie poznasz podstawową ideę systemu RAG, który wyszukuje potrzebne informacje i przekazuje je modelowi jako kontekst do wygenerowania odpowiedzi. W ramach modułu porównasz działanie zwykłego czatu z rozwiązaniem korzystającym z dostarczonych dokumentów i ocenisz, dlaczego odpowiedzi powinny być weryfikowane na podstawie źródeł.
-
Karty pracy do modułu 1
-
Prezentacje za Tobą — teraz czas uporządkować wiedzę i przełożyć ją na własną pracę. Poniższy materiał pomaga zrozumieć różnicę między zwykłym czatem a systemem RAG oraz prowadzi przez porównanie odpowiedzi modelu bez kontekstu i z fragmentem dokumentu. Czytaj materiał modułu we własnym tempie i wracaj do wybranych fragmentów podczas ćwiczeń.
-
Ćwiczenie do modułu 1
Teraz wykorzystaj wiedzę z modułu w pierwszym etapie projektu DocAssist. W tym nieobowiązkowym zadaniu określisz zakres pomocy asystenta i porównasz odpowiedzi modelu bez kontekstu oraz z fragmentem dokumentacji. Sprawdzisz, które twierdzenia mają podstawę w źródłach i jak model zachowuje się przy braku informacji. Przygotuj krótką notatkę z planem porównania, wynikami i wnioskami, a następnie prześlij ją wraz z wymaganymi załącznikami w zadaniu poniżej.
-
-
-
W module 2 nauczysz się przygotowywać dokumenty do wykorzystania jako lokalna baza wiedzy w systemie RAG. Będziesz pracować z różnymi rodzajami plików, odczytywać ich treść, usuwać elementy niepotrzebne oraz porządkować tekst bez utraty ważnych informacji. Poznasz sposoby dzielenia dokumentów na fragmenty i sprawdzisz, jak wielkość fragmentu oraz sposób podziału wpływają na zachowanie kontekstu. Nauczysz się także uzupełniać fragmenty o metadane pozwalające zachować związek z dokumentem źródłowym i później wskazać podstawę odpowiedzi. Efektem pracy będzie uporządkowany zbiór fragmentów dokumentów z metadanymi, gotowy do wykorzystania podczas tworzenia embeddingów i wyszukiwania semantycznego w kolejnym module.
-
Karty pracy do modułu 1
-
Prezentacje za Tobą — teraz czas uporządkować wiedzę i przełożyć ją na własną pracę. Poniższy materiał prowadzi krok po kroku przez przygotowanie lokalnej bazy wiedzy: porządkowanie dokumentów, czyszczenie treści, podział tekstu na fragmenty i zachowanie informacji o źródłach. Czytaj materiał modułu we własnym tempie i wracaj do wybranych fragmentów podczas ćwiczeń.
-
Ćwiczenie do modułu 2
Dobra odpowiedź zaczyna się od dobrze przygotowanych dokumentów. W tym nieobowiązkowym zadaniu uporządkujesz aktualną dokumentację DocAssist, oczyścisz jej treść i podzielisz ją na fragmenty z metadanymi. Sprawdzisz, czy przygotowana baza zachowuje ważne informacje oraz pozwala odróżnić materiały aktualne od archiwalnych. Prześlij bazę i notatkę opisującą podjęte decyzje w zadaniu poniżej, a zaakceptowane wyniki zachowaj do kolejnego etapu.
-
-
-
W module 3 nauczysz się, jak reprezentować fragmenty tekstu w postaci embeddingów i wykorzystywać je do wyszukiwania semantycznego. Utworzysz embeddingi fragmentów dokumentów oraz pytań użytkownika, a następnie porównasz je za pomocą podobieństwa kosinusowego i wybierzesz najlepiej dopasowane wyniki z wykorzystaniem mechanizmu top-k. Zbudujesz prosty lokalny indeks semantyczny, zachowując powiązanie między wektorem, treścią fragmentu i jego metadanymi źródłowymi. Sprawdzisz także jakość wyszukiwania na przygotowanym zestawie pytań i przeanalizujesz przypadki, w których system zwraca fragmenty podobne tematycznie, ale nieprzydatne do odpowiedzi. Efektem modułu będzie przetestowany mechanizm wyszukiwania semantycznego gotowy do wykorzystania w budowanym w kolejnym module systemie RAG.
-
Karty pracy do modułu 1
-
Prezentacje za Tobą — teraz czas uporządkować wiedzę i przełożyć ją na własną pracę. Poniższy materiał prowadzi przez tworzenie embeddingów i wyszukiwanie fragmentów dokumentów na podstawie znaczenia pytania oraz pomaga sprawdzić, czy odnalezione treści są przydatne do udzielenia odpowiedzi. Czytaj materiał modułu we własnym tempie i wracaj do wybranych fragmentów podczas ćwiczeń.
-
Ćwiczenie do modułu 3
Przygotowana baza wiedzy jest punktem wyjścia do zbudowania wyszukiwarki DocAssist. W tym nieobowiązkowym zadaniu utworzysz embeddingi i indeks, a następnie sprawdzisz trafność wyszukiwania dla wybranych pytań, w tym parafraz. Porównasz odnalezione fragmenty z własnymi oczekiwaniami i wskażesz przypadek wymagający poprawy. Prześlij indeks, rankingi i notatkę z oceną w zadaniu poniżej, zachowując komplet materiałów do dalszej pracy.
-
-
-
W module 4 połączysz mechanizm wyszukiwania semantycznego z lokalnym modelem językowym i zbudujesz pierwszy kompletny prototyp systemu RAG w Pythonie. Nauczysz się tworzyć kontekst z odnalezionych fragmentów dokumentów, przygotowywać prompt zawierający pytanie, instrukcje i źródła oraz przekazywać go do modelu uruchomionego lokalnie przez Ollama. Rozbudujesz rozwiązanie o kontrolę braku wystarczających informacji, ograniczanie odpowiedzi do dostarczonego kontekstu oraz prezentowanie fragmentów źródłowych i metadanych umożliwiających weryfikację odpowiedzi. Porównasz również działanie modelu bez kontekstu, z właściwym kontekstem oraz z kontekstem niepełnym lub błędnym, aby zobaczyć, gdzie mogą powstawać błędy w systemie RAG. Efektem modułu będzie działający lokalny prototyp przyjmujący pytanie użytkownika, wyszukujący odpowiednie fragmenty dokumentów i zwracający odpowiedź wraz z informacjami o źródłach
-
Karty pracy do modułu 4
-
Prezentacje za Tobą — teraz czas uporządkować wiedzę i przełożyć ją na własną pracę. Poniższy materiał prowadzi krok po kroku przez budowę lokalnego systemu RAG w Pythonie: od wyszukania kontekstu, przez przygotowanie promptu, aż po wygenerowanie odpowiedzi ze wskazaniem źródeł. Czytaj materiał modułu we własnym tempie i wracaj do wybranych fragmentów podczas ćwiczeń.
-
Ćwiczenie do modułu 4
Teraz połączysz wyszukiwarkę z modelem, aby przygotować odpowiedzi na pytania dotyczące DocAssist. W tym nieobowiązkowym zadaniu sprawdzisz, jak dobór kontekstu wpływa na zgodność i kompletność odpowiedzi oraz czy wskazane źródła potwierdzają jej twierdzenia. Przyjrzysz się również sytuacji, w której dokumentacja nie zawiera potrzebnych informacji. Zapisz przebieg prób i własne oceny, prześlij wymagane rezultaty w zadaniu poniżej i zachowaj wybraną konfigurację do kolejnego etapu.
-
-
-
W tym module rozbudujesz prosty system RAG do postaci lokalnego asystenta DocAssist, który prowadzi rozmowę i odpowiada na podstawie własnej bazy dokumentów. Nauczysz się rozróżniać chatbota, asystenta i agenta oraz oceniać ich poziom samodzielności i sposób kontrolowania działań. Dodasz ograniczoną historię rozmowy, obsłużysz pytania uzupełniające i zadbasz, aby każde pytanie merytoryczne ponownie uruchamiało wyszukiwanie w dokumentach. Zdefiniujesz bezpieczne narzędzia, przygotujesz rejestr dozwolonych funkcji oraz mechanizmy walidacji wywołań, obsługi wyników i błędów. Na zakończenie połączysz interfejs, historię, RAG i narzędzia w funkcjonalny lokalny prototyp, który wskazuje źródła, sygnalizuje brak wystarczających danych i odrzuca niedozwolone działania.
-
Karty pracy do modułu 5
-
Prezentacje za Tobą — teraz czas uporządkować wiedzę i wykorzystać ją do rozbudowy lokalnego asystenta DocAssist. W podręczniku prześledzisz, jak połączyć system RAG z interfejsem rozmowy, ograniczoną historią i obsługą pytań uzupełniających oraz jak kontrolować wybór i wykonanie narzędzi proponowanych przez model. Czytaj materiał we własnym tempie i wracaj do przykładów podczas ćwiczeń, aby zbudować prototyp, który odpowiada na podstawie dokumentów, wskazuje źródła i odrzuca niedozwolone działania.
-
Ćwiczenie do modułu 5
Kolejny etap projektu pozwoli sprawdzić DocAssist w krótkiej rozmowie z użytkownikiem. W tym nieobowiązkowym zadaniu wykorzystasz historię do interpretacji pytań, udostępnisz źródła i metadane oraz sprawdzisz kontrolę narzędzi. Zbadasz także zachowanie asystenta przy niejasnym pytaniu i żądaniu wykonania niedozwolonego działania. Prześlij prototyp, zapis prób i analizę w zadaniu poniżej, zachowując konfigurację bazową oraz surowe wyniki do końcowej oceny.
-
-
-
W module 5 rozbudujesz zbudowany wcześniej system RAG do postaci prostego lokalnego chatbota lub asystenta, który prowadzi rozmowę i korzysta z własnej bazy dokumentów. Nauczysz się wykorzystywać ograniczoną historię konwersacji do interpretowania pytań uzupełniających, bez zastępowania nią ponownego wyszukiwania informacji w źródłach. Poznasz różnice między chatbotem, asystentem i agentem oraz zobaczysz, jak model może proponować użycie wybranych narzędzi pomocniczych. Nauczysz się również kontrolować wykonanie narzędzi przez listę dozwolonych funkcji, walidację argumentów i obsługę błędów. Efektem modułu będzie zintegrowany prototyp DocAssist łączący interfejs rozmowy, historię, mechanizm RAG i bezpieczne narzędzia.
-
Karty pracy do modułu 5
-
Prezentacje za Tobą — teraz czas uporządkować wiedzę i spojrzeć krytycznie na działanie zbudowanego systemu. Poniższy materiał pomoże Ci przygotować zestaw pytań testowych, ocenić trafność wyszukiwania i kontekstu, sprawdzić poprawność odpowiedzi oraz źródeł, a także przeanalizować typowe błędy i ograniczenia systemu RAG. Wykorzystasz go również podczas przygotowania dokumentacji i prezentacji projektu końcowego. Czytaj materiał modułu we własnym tempie i wracaj do wybranych fragmentów podczas testowania, analizy wyników i dopracowywania swojego prototypu.
-
Ćwiczenie do modułu 6
To etap, w którym zbierzesz dowody działania DocAssist i ocenisz jakość całego rozwiązania. W tym nieobowiązkowym zadaniu przeprowadzisz ocenę na ustalonym zestawie przypadków, przeanalizujesz wybrany błąd lub ograniczenie i sprawdzisz jedną zmianę konfiguracji. Przygotujesz raport, instrukcję odtworzenia oraz dokumentację demonstracji, jasno wskazując pochodzenie wyników i zakres wykonanych prób. Końcowy pakiet prześlij w zadaniu poniżej, aby pokazać zarówno możliwości asystenta, jak i elementy wymagające dalszej pracy.
-
-
-
-
Ten materiał pomoże Ci krok po kroku zbudować lokalnego chatbota działającego w konsoli, bez interfejsu graficznego. Wykorzystasz wiedzę zdobytą w modułach 1–6, łącząc ją w jeden projekt. Książka poprowadzi Cię od przygotowania środowiska i pierwszej rozmowy z modelem do wyszukiwania informacji we własnych dokumentach i generowania odpowiedzi ze wskazaniem źródeł. Najpierw spróbuj samodzielnie zbudować program, korzystając z objaśnień i kolejnych kroków w książce, zanim otworzysz gotowy kod przykładowy. Dołączoną paczkę z kodem, danymi i pytaniami testowymi wykorzystaj do porównania rozwiązania lub jako pomoc, gdy napotkasz trudności. Po sprawdzeniu przykładu podłączysz własne materiały i ocenisz jakość odpowiedzi chatbota. Na realizację całości przeznacz orientacyjnie 4–6 godzin, nie licząc instalacji i pobierania modeli; czas zależy od Twojego doświadczenia oraz możliwości komputera. Pracę możesz podzielić na krótsze sesje, zatrzymując się po kolejnych rozdziałach i punktach kontrolnych.
-
-
-
Materiał poprowadzi Cię krok po kroku przez budowę lokalnego asystenta działającego w konsoli, bez interfejsu graficznego. Wykorzystasz wiedzę z modułów 1–6, aby rozwinąć prostego chatbota o pamięć rozmowy, doprecyzowanie pytań i kontrolowane narzędzia. Asystent będzie odpowiadał na podstawie dokumentów, pokazywał źródła oraz odczytywał metadane, a Ty porównasz wybór działania przez reguły i przez model językowy. Najpierw spróbuj samodzielnie uzupełnić kod w wersji startowej, korzystając z zadań i wskazówek zawartych w książce. Dopiero po własnej próbie zajrzyj do przykładowego rozwiązania, aby porównać podejście i wyjaśnić napotkane trudności. Na wykonanie projektu i sprawdzenie wyników zaplanuj orientacyjnie **6–8 godzin**, nie licząc instalacji środowiska i pobierania modeli.
-
-
-
Podsumowanie kursu porządkuje najważniejsze elementy pracy z Pythonem, notatnikami Jupyter, bibliotekami analizy danych oraz modelami LLM. Przypomina całą drogę od zaplanowania pracy w notebooku, przez przygotowanie danych, analizę eksploracyjną i wizualizację, aż po wykorzystanie LLM oraz opracowanie raportu obliczeniowego. Szczególną uwagę zwraca na odtwarzalność analizy, jawne decyzje, kontrolę jakości danych oraz ostrożne formułowanie wniosków. Prezentacja podsumowująca może posłużyć jako ostatnia checklista przed finalnym oddaniem własnego projektu. Warto sprawdzić, czy raport zawiera wszystkie kluczowe elementy: kod, dane, wyniki, wykresy, interpretację, ograniczenia i dokumentację użycia LLM.
Dziękujemy za udział w kursie „Python, LLM i analiza danych w notatnikach Jupyter” oraz za wykonanie kolejnych etapów projektu analitycznego. Życzymy powodzenia w dalszym rozwijaniu własnych analiz danych i odpowiedzialnym korzystaniu z narzędzi AI.