SignalMod / docs /ARCHITECTURE.md
Mirae Kang
feat: implement new models and improve UI, #23
46cc63a
|
raw
history blame
1.21 kB

Architecture — youtube_hate_detector

Runtime (production)

flowchart LR
  Browser[React SPA]
  API[FastAPI :8000]
  MS[ModelService]
  YT[YouTube Data API]
  Browser -->|HTTP JSON| API
  API --> MS
  API --> YT
  • UI: frontend/ built to frontend/dist, served by FastAPI StaticFiles in production.
  • Inference: Only ModelService in src/service/ loads models.
  • Catalog: configs/model_catalog.yaml — baselines (LR, frozen BERT) + production meta-stack.
  • Suggested videos: configs/suggested_videos.yaml — YouTube video IDs for the right rail.

Local development

Process Command Port
API uv run uvicorn src.api.main:app --reload 8000
UI cd frontend && npm run dev 5173 (proxies API)

Docker

Single service youtube_hate_detector-app on port 8000 (API + static UI).

API layout

src/api/
  main.py           # app factory, CORS, static mount
  schemas.py        # Pydantic models
  services.py       # predict helpers
  youtube.py        # comment fetch + metadata
  state.py          # shared app state
  routes/
    health.py
    models.py
    predict.py
    videos.py