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