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/