Architektur

BenGER verwendet eine moderne Microservice-Architektur, die aus mehreren unabhΓ€ngigen, aber zusammenarbeitenden Komponenten besteht.

Übersicht

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Frontend  β”‚     β”‚ API Gateway β”‚     β”‚   Workers   β”‚
β”‚  (React/TS) │────▢│  (FastAPI)  │────▢│  (Celery)   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
       β”‚                   β”‚                   β”‚
       β”‚                   β”‚                   β”‚
       β–Ό                   β–Ό                   β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚Label Studio β”‚     β”‚  PostgreSQL β”‚     β”‚    Redis    β”‚
β”‚ (Annotation)β”‚     β”‚ (Datenbank) β”‚     β”‚  (Broker)   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Frontend

Das Frontend ist eine React-Single-Page-Application (SPA), die in TypeScript entwickelt wurde.

Technologien

  • React: JavaScript-Bibliothek fΓΌr BenutzeroberflΓ€chen
  • TypeScript: Typsicheres JavaScript
  • Next.js: React-Framework fΓΌr Produktionsanwendungen
  • Tailwind CSS: Utility-First CSS-Framework
  • Headless UI: ZugΓ€ngliche UI-Komponenten

Verzeichnisstruktur

services/frontend/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/             # Next.js App Router
β”‚   β”œβ”€β”€ components/      # React-Komponenten
β”‚   β”œβ”€β”€ contexts/        # React-Kontexte
β”‚   β”œβ”€β”€ lib/             # Utility-Funktionen
β”‚   β”œβ”€β”€ types/           # TypeScript-Typdeklarationen
β”‚   β”œβ”€β”€ styles/          # CSS und Styling
β”‚   └── images/          # Statische Bilder und Assets
└── package.json         # AbhΓ€ngigkeiten und Skripte

API Gateway

Das API Gateway dient als zentraler Einstiegspunkt fΓΌr alle Client-Anfragen und verwaltet die Authentifizierung.

Technologien

  • FastAPI: Hochleistungs-Web-Framework fΓΌr Python
  • Pydantic: Datenvalidierung und -modellierung
  • SQLAlchemy: ORM fΓΌr Datenbankinteraktionen
  • JWT: JSON Web Tokens fΓΌr Authentifizierung
  • HTTPX: Asynchrone HTTP-Client-Bibliothek

ZusΓ€tzliche Services

Das Projekt umfasst weitere spezialisierte Services:

  • Migrations: Datenbankmigrationen und Schema-Management
  • Evaluation: Spezialisierte LLM-Evaluations-Services

Celery Worker

Die Worker fΓΌhren rechenintensive und asynchrone Aufgaben aus.

Technologien

  • Celery: Aufgabenverteilung und -ausfΓΌhrung
  • Redis: Message-Broker
  • Transformers: Hugging Face Transformer-Bibliothek
  • PyTorch: Machine Learning Framework
  • Scikit-learn: Machine Learning Bibliothek
  • LLMs: Integration verschiedener Sprachmodelle

Label Studio Integration

BenGER integriert Label Studio fΓΌr professionelle Annotationsaufgaben mit flexibler OberflΓ€che fΓΌr verschiedene Annotationstypen.

Datenbanken

PostgreSQL

Speichert alle strukturierten Daten:

  • Benutzer und Rollen
  • Tasks und Konfigurationen
  • Dokumente und Metadaten
  • Annotationen und Evaluationen

Redis

Verwendet fΓΌr:

  • Message Broker
  • Caching
  • Rate Limiting
  • Sitzungsverwaltung

Deployment

Docker und Docker Compose

FΓΌr lokale Entwicklung mit infra/docker-compose.yml

Kubernetes und Helm

FΓΌr Produktions- und Staging-Umgebungen mit Helm Charts in infra/helm/