Szkolenie: Python RAG od podstaw do produkcji: mikroserwis API i baza wektorowa PostgreSQL
Szkolenie koncentruje się na budowie systemu RAG w ekosystemie Pythona z wykorzystaniem bazy danych PostgreSQL rozszerzonej o pgvector oraz konteneryzacji w Dockerze. W pierwszym etapie przedstawione zostają podstawy architektury RAG, stanowiące fundament do dalszej pracy.
- Trenerzy praktycy
- Kameralne grupy
Czas trwania szkolenia:5 dni (40h)
Kod kursu:PYTHON/RAG
Python RAG od podstaw do produkcji: mikroserwis API i baza wektorowa PostgreSQL
Cele szkolenia
Szkolenie przygotowuje do samodzielnej implementacji systemu RAG (Retrieval-Augmented Generation) w Pythonie, obejmującego ekstrakcję danych z PDF, chunking oraz dobór modeli embeddingowych
Szkolenie omawia projektowanie relacyjnej i wektorowej bazy danych PostgreSQL z rozszerzeniem pgvector, z uwzględnieniem similarity search i przechowywania embeddingów
Szkolenie wprowadza w praktyki developmentu backendowego z użyciem Docker, Docker Compose i Task, umożliwiające budowę środowiska produkcyjnego
Szkolenie pokazuje jak tworzyć migracje i komunikację z bazą SQL w Pythonie przy użyciu SQLAlchemy ORM
Szkolenie przedstawia budowę pipeline’u RAG: od przetwarzania dokumentów PDF po gotową bazę wektorową do retrieval
Szkolenie prezentuje metody ewaluacji jakości odpowiedzi LLM oraz skuteczności systemu RAG, w tym ograniczanie halucynacji
Szkolenie rozwija umiejętność projektowania API w FastAPI dla systemów RAG oraz integracji z modelami embeddingowymi i LLM
Dla kogo?
Programiści Python i analitycy danych z co najmniej podstawowym doświadczeniem, chcący budować systemy RAG oraz aplikacje oparte o modele językowe
Backend developerzy zainteresowani integracją LLM z istniejącymi systemami oraz budową mikroserwisów API
Inżynierowie danych oraz osoby pracujące z danymi, chcące tworzyć pipeline’y przetwarzania dokumentów i budować bazy wiedzy
Osoby znające podstawy Pythona i SQL, które chcą zdobyć praktyczne umiejętności w pracy z bazami wektorowymi i systemami wyszukiwania semantycznego
Efekty kształcenia
Uczestnik projektuje i implementuje kompletny system RAG w Pythonie, obejmujący pipeline przetwarzania danych, embeddingi i backend API
Uczestnik buduje pipeline przetwarzania dokumentów PDF oraz tworzy bazę wiedzy opartą o bazę wektorową PostgreSQL pgvector
Uczestnik projektuje i wdraża bazę wektorową z wykorzystaniem similarity search (cosine similarity, L2), zgodnie z praktykami komercyjnymi
Uczestnik tworzy mikroserwis API w FastAPI obsługujący zapytania RAG oraz integrujący retrieval, reranking i generowanie odpowiedzi
Uczestnik wykorzystuje Docker, Docker Compose i Task do budowy skalowalnego środowiska developerskiego i produkcyjnego
Uczestnik zarządza schematem bazy danych, tworzy migracje (Alembic) i komunikuje się z bazą SQL przy użyciu SQLAlchemy ORM
Uczestnik dobiera strategie chunkingu (semantic, recursive, document-aware) oraz modele embeddingowe do konkretnych przypadków użycia
Uczestnik przeprowadza ewaluację jakości odpowiedzi systemu RAG, analizuje skuteczność retrieval i identyfikuje obszary optymalizacji
Uczestnik implementuje query processing (query rewriting, decomposition) oraz optymalizuje parametry retrieval (top-k, diversity search)
Uczestnik pracuje z narzędziami takimi jak DVC, Git i FastAPI, zapewniając reprodukowalność pipeline’u RAG i gotowość do wdrożeń produkcyjnych
Wymagania
Podstawowa znajomość języka Python (funkcje, klasy, praca z modułami)
Podstawowa znajomość komunikacji sieciowej (HTTP, REST API) oraz relacyjnych baz danych (SQL)
Znajomość podstaw pracy z modelami danych w Pythonie (np. z wykorzystaniem Pydantic)
Podstawowa umiejętność pracy z systemem kontroli wersji (Git)
Swobodne korzystanie ze środowiska programistycznego (np. Jupyter Notebook lub Visual Studio Code)
Podstawowa znajomość Dockera będzie dodatkowym atutem, ale nie jest wymagana
W cenie otrzymasz:
Materiały szkoleniowe
Certyfikat ukończenia szkolenia
W przypadku szkolenia w trybie stacjonarnym zapewnimy Ci również lunch oraz sprzęt niezbędny do nauki
Program szkolenia
Wprowadzenie do RAG (Retrieval-Augmented Generation)
Czym jest RAG i jakie problemy rozwiązuje
Przegląd zastosowań systemów RAG w praktyce
Budowa prostego pipeline’u RAG z wykorzystaniem narzędzi takich jak ChromaDB oraz LlamaIndex
Wprowadzenie do embeddingów tekstu — czym są i jak są wykorzystywane
Miary podobieństwa: cosine similarity, L2 distance — intuicja i zastosowanie
Generowanie embeddingów z wykorzystaniem modeli (OpenAI, Hugging Face)
Czym jest baza wektorowa i jak przechowywane są embeddingi
Wprowadzenie do rerankingu i jego roli w systemach RAG
Omówienie pełnego pipeline’u RAG i jego zaprojektowanie na potrzeby dalszej części szkolenia
RAG w praktyce — implementacja systemu
Wprowadzenie do pracy z danymi źródłowymi dla systemów RAG
Implementacja wcześniej zaprojektowanego pipeline’u RAG
Wykorzystanie wzorców projektowych (Strategy Pattern) oraz protokołów w Pythonie do budowy modularnej architektury
Ekstrakcja danych
Techniki ekstrakcji tekstu z plików PDF (m.in. PyMuPDF, pdfplumber)
Metody pozyskiwania i przechowywania obrazów na potrzeby systemów RAG
Wykorzystanie technik wizji komputerowej (np. probabilistyczna transformata Hougha) do detekcji struktur dokumentów (tabele, przypisy)
Obsługa złożonych przypadków (np. tabele rozciągające się na wiele stron)
Wykorzystanie LLM do ekstrakcji danych z tabel i nieustrukturyzowanych fragmentów
Projektowanie modeli danych z użyciem Pydantic (modele zagnieżdżone, walidacja danych)
Chunking
Wprowadzenie do strategii chunkowania tekstu
Implementacja różnych strategii chunkowania zgodnie ze Strategy Pattern
Recursive character splitting
Semantic chunking
Document-structure-aware chunking
Parent-child chunking
Implementacja własnych (custom) chunkerów
Wektoryzacja — embedding tekstu
Przegląd i dobór modeli embeddingowych
Implementacja warstwy abstrakcji umożliwiającej wykorzystanie różnych modeli
Generowanie embeddingów z wykorzystaniem modeli lokalnych i zewnętrznych
Przykładowe modele: stella-pl-retrieval, roberta-large, OpenAI, Mistral
Projektowanie struktury danych pod przechowywanie embeddingów
Baza wektorowa
Tworzenie i konfiguracja bazy danych PostgreSQL z rozszerzeniem pgvector
Projektowanie schematu bazy danych i relacji między encjami
Populacja bazy danymi oraz zarządzanie danymi wejściowymi
Testowanie zapytań z wykorzystaniem SQL oraz drivera psycopg w Pythonie (bez warstwy API)
Reranking
Wprowadzenie do rerankingu i jego wpływu na jakość wyników
Implementacja rerankingu z wykorzystaniem modeli (np. roberta v2)
Porównanie różnych podejść i modeli rerankingowych
Przetwarzanie zapytania (query processing)
Decomposition — rozbijanie złożonych zapytań na mniejsze
Multi-step reasoning i jego wpływ na retrieval
Generowanie embeddingów dla zapytań
Query rewriting / query expansion
Retrieval
Wyszukiwanie top-k w bazie wektorowej
Dobór parametru k i jego wpływ na jakość odpowiedzi
Diversity search — zwiększanie różnorodności wyników
Wykorzystanie metadanych w procesie wyszukiwania
Filtry i warunki (np. źródło dokumentu, typ danych)
Fusion
Łączenie wyników z różnych źródeł / zapytań
Agregacja kontekstu przed przekazaniem do LLM
Strategie selekcji i ograniczania kontekstu
Generowanie odpowiedzi
Budowa promptu na podstawie pobranego kontekstu
Integracja z LLM (OpenAI / modele lokalne)
Kontrola długości i jakości odpowiedzi
Obsługa halucynacji (prompting + ograniczenia kontekstu)
Docker i Task — organizacja środowiska projektowego
Wprowadzenie do konteneryzacji w kontekście projektu backendowego
Podstawy pracy z Dockerem i Docker Compose na potrzeby uruchamiania aplikacji oraz usług zależnych
Przygotowanie środowiska dla backendu i bazy danych w kontenerach
Definiowanie i uruchamianie usług z wykorzystaniem Docker Compose
Podstawowe komendy Docker wykorzystywane w codziennej pracy z projektem
Automatyzacja najczęściej wykonywanych operacji z użyciem narzędzia Task
Tworzenie komend w Taskfile do uruchamiania środowiska projektowego
Otwieranie konsoli backendowej w kontenerze
Tworzenie bazy danych w kontenerze
Uruchamianie migracji bazy danych z poziomu zdefiniowanych zadań
Porządkowanie i standaryzacja lokalnego workflow developerskiego
Systemy kontroli wersji kodu i danych
Git — przypomnienie i ustandaryzowanie workflow developerskiego
Podstawowe operacje: add, commit, przegląd historii zmian
Praca z repozytorium zdalnym (GitHub) — push, pull, synchronizacja zmian
Zarządzanie historią: cofanie commitów, reset, revert
Praca z gałęziami: branch, merge, rebase — dobre praktyki w pracy zespołowej
Organizacja pracy nad projektem i utrzymywanie czytelnej historii zmian
Wprowadzenie do kontroli wersji danych z wykorzystaniem DVC
Konfiguracja DVC w projekcie oraz integracja z repozytorium Git
Śledzenie plików danych (np. dokumentów PDF) w projekcie
Zarządzanie wersjami danych i ich zmianami w czasie
Podstawowe operacje DVC wykorzystywane w projekcie
Wykorzystanie DVC do zapewnienia reprodukowalności pipeline’u RAG
Serwis API dla systemu RAG
Konfiguracja i uruchomienie serwisu
Przygotowanie środowiska uruchomieniowego z wykorzystaniem Dockera i Docker Compose
Implementacja Taskfile usprawniającego codzienny development i automatyzującego najczęściej wykonywane komendy
Konfiguracja projektu backendowego w FastAPI
Zarządzanie konfiguracją i zmiennymi środowiskowymi z wykorzystaniem pydantic-settings
Połączenie aplikacji z relacyjną bazą danych PostgreSQL
Konfiguracja migracji z użyciem Alembic
Tworzenie relacyjnych modeli danych w SQLAlchemy oraz migracja schematu do bazy danych
Funkcjonalności użytkownika i bezpieczeństwo
Rejestracja i logowanie użytkownika
Tokenowa autentykacja użytkownika z wykorzystaniem JWT
Zarządzanie sesją i tokenami z użyciem cookies oraz Redis
Implementacja mechanizmów autoryzacji i uprawnień
Zmiana hasła, aktualizacja danych konta oraz usuwanie konta użytkownika
Tworzenie i usuwanie użytkowników z poziomu serwisu
Implementacja podstawowej obsługi wiadomości e-mail w procesach kontowych i systemowych
Integracja z bazą wektorową
Konfiguracja drugiej bazy danych przeznaczonej dla warstwy wektorowej
Połączenie aplikacji z bazą PostgreSQL z rozszerzeniem pgvector
Konfiguracja osobnych migracji dla modeli związanych z bazą wektorową
Definiowanie modeli danych dla embeddingów i metadanych z wykorzystaniem SQLAlchemy oraz pgvector
Projektowanie relacji między warstwą relacyjną a wektorową tam, gdzie jest to uzasadnione architektonicznie
API dla systemu RAG
Przygotowanie endpointów umożliwiających odpytywanie systemu RAG
Integracja endpointów z pipeline’em retrieval, rerankingu i generowania odpowiedzi
Obsługa zapytań użytkownika oraz przekazywanie kontekstu do warstwy LLM
Zwracanie odpowiedzi wraz z metadanymi i informacją o źródłach
Obsługa błędów oraz walidacja danych wejściowych i wyjściowych
Testowanie i praca z API
Testowanie endpointów z wykorzystaniem Swagger UI
Testowanie i debugowanie zapytań z użyciem Postmana
Weryfikacja poprawności działania autentykacji, uprawnień oraz endpointów RAG
Wybrane opinie
Przeczytaj pozytywne opinie pochodzące z ankiet satysfakcji z naszych szkoleń wypełnianych wyłącznie przez ich uczestników po realizacji usługi

