Chatbot oparty o RAG, który odpowiada na pytania studentów i kandydatów dotyczące Wydziału Matematyki i Informatyki UJ.
Tworzony przez Koło Naukowe KSI.
- O projekcie
- Dlaczego ten projekt powstał
- Architektura
- Instalacja
- Użycie
- Struktura repozytorium
- Zespół
- Roadmapa
- Licencja
- Polski — ten dokument
- English Version
Projekt realizowany w ramach Koła Naukowego Studentów Informatyki (KSI) przy Wydziale Matematyki i Informatyki Uniwersytetu Jagiellońskiego (UJ WMI). Celem projektu jest stworzenie dedykowanego chatbota wykorzystującego architekturę RAG (Retrieval-Augmented Generation), który sprawnie odpowiada na pytania związane z wydziałem, bazując na sprawdzonych dokumentach i danych źródłowych.
Projekt znajduje się w fazie rozwoju. Niektóre funkcjonalności są w trakcie wdrażania.
TODO (opcjonalnie): jakieś przykłady pytań
Nasz projekt powstał z potrzeby ułatwienia życia studentom (szczególnie tym zaczynającym swoją przygodę na WMI) oraz stworzenia realnego, zaawansowanego narzędzia inżynierskiego w ramach Koła Naukowego Studentów Informatyki (KSI). Chcieliśmy połączyć teorię z praktyką:
- Wykorzystać architekturę RAG (Retrieval-Augmented Generation) do przeszukiwania realnych, wydziałowych baz danych i stron.
- Zbudować w pełni lokalny ekosystem AI (oparty m.in. o model Qwen).
- Stworzyć scentralizowanego, inteligentnego asystenta, który w kilka sekund odpowie na pytania o przedmioty, zasady zaliczeń czy materiały z koła, eliminując konieczność przeklikiwania dziesiątek podstron.
System opiera się na nowoczesnym stosie technologicznym dla systemów RAG:
- LLM (Decoder): Model
Qwen3-30B-A3B Q4_K_Mhostowany lokalnie. - Embeddings / Baza Danych: (TODO: uzupełnić).
- Przetwarzanie dokumentów:
pymupdf4llm,BeautifulSoup4,pypdf,python-docx. - Backend: Python, (TODO: uzupełnić).
TODO: projekt jest w trakcie budowy, więc pełna instrukcja instalacji end-to-end jeszcze nie istnieje. Poniżej szkielet do uzupełnienia w miarę powstawania poszczególnych modułów.
- Python 3.11+
- TODO: reszta wymagań
# 1. Sklonuj repozytorium
git clone <TODO-adres-repo>
cd <TODO-nazwa-repo>
# 2. Utwórz środowisko wirtualne
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 3. Zainstaluj zależności
pip install -r requirements.txt
# TODO: zrobić requirements.txt obejmujące cały projekt
# 4. Skonfiguruj zmienne środowiskowe
cp .env.example .env # TODO: dodać plik .env.example
# uzupełnij m.in. MORDOR_COOKIE, dane USOS APIPo skonfigurowaniu środowiska (patrz Instalacja):
# Pobranie danych ze stron wydziałowych i Wikipedii
python src/data/strony/scraper.py
# Pobranie plików z Mordoru
python src/data/mordor/files_downloader.py
# Przetworzenie pobranych plików z Mordoru na chunki (do bazy wektorowej)
python src/data/mordor/mordor_scraper.py
# Zapytania do USOS API (tryb eksploracyjny/anonimowy)
python src/data/usos/usos_client.py services/fac/fac2 --params fac_id=WMI
# TODO: uzupełnić przy następnych krokach.
├── docs/
│ └── plan.txt # plan projektu, notatki ze sprintów
├── src/
│ ├── backend/
│ │ └── main.py # API backendu (FastAPI) — w budowie
│ └── data/
│ ├── mordor/ # pobieranie i przetwarzanie plików z Mordoru
│ ├── strony/ # scraper stron wydziałowych, kół, Wikipedii
│ └── usos/ # klient USOS API
├── README.md
└── README.en.md
TODO: rozbudować opis w miarę powstawania kolejnych katalogów
Mentor: Oliwier Polak (@Kangurur)
Członkowie zespołu:
- Karol Dziekan (@Dariooo23)
- Patrycja Jaworska (@zazu1023)
- Sonia Skuczeń (@SonSku)
- Mikołaj Suchan (@Wuchan33)
- Aleksandra Woźny (@olkaa566)
Must have
- RAG (encoder + baza danych + decoder)
- Dane
Should have
- Prosta strona
Could have
- Ładna strona
- Zaawansowane funkcjonalności
- Konta użytkowników itp.
- Automatyzacja
TODO: zamienić na aktualną roadmapę / link do tablicy projektowej, gdy plan się rozwinie.
TODO: projekt nie ma jeszcze wybranej licencji.