Softverski arhitektonski obrasci - SirCrayzyJelly/AI_Tutor GitHub Wiki
Klijent–server arhitektura
Primjena u projektu:
- Frontend (klijent) šalje korisnička pitanja putem korisničkog sučelja (UI).
- Backend (server), izrađen pomoću FastAPI, prima upit, obrađuje ga (pretražuje bazu podataka ili koristi AI), i vraća odgovor korisniku.
Slojevita arhitektura (Layered Architecture)
Primjena u projektu – slojevi:
- Prezentacijski sloj: korisničko sučelje izrađeno pomoću Streamlit
- Aplikacijski sloj: API servis baziran na FastAPI (
main.py
) - Logički sloj: poslovna logika — vektorizacija i pretraga (
vektorizacija.py
) - Sloj podataka: datoteke
initial_data.json
,initial_chunks.json
, FAISS indeks
Arhitektura repozitorija podataka (djelomično)
Projekt koristi repozitorij znanja u obliku .json
datoteka i FAISS indeksa, koji služe kao centralizirano spremište informacija za odgovaranje na korisnička pitanja.
Međutim, ovaj obrazac nije u potpunosti implementiran jer:
- Samo backend pristupa repozitoriju
- Ne postoji više neovisnih komponenti koje komuniciraju isključivo preko repozitorija
- Nema centralne kontrole pristupa ni dinamičke izmjene podataka tijekom izvođenja aplikacije