Case Study · SAUERESSIG Group · 2023 → 2026

Matches neu aufgebaut

Vom Prototyp, der nicht auslieferbar war, zur sicheren KI-Plattform, auf die sich Kunden verlassen. Mit Matches durchsucht eine Druckerei ihr Archiv aus vielen Jahren per Bild und beantwortet in Sekunden eine Frage: Haben wir so etwas schon einmal produziert?

AWS-Kosten
−90 %
Uptime
>99,9 %
Services
4→20
Parallelität
keine→parallel
Oberflächenprüfung / Bogen
7,5 s→0,6 s
Automatisierte Tests
0→600+
Installation und Update
manuell→1 Befehl

Vorher → nachher

Vom Labor-Tool zum Produkt

Ausgangspunkt

  • Kein Login: Jeder im Netzwerk konnte Daten hinzufügen oder löschen
  • Eine Aufgabe nach der anderen, sodass ein einziger Upload alles blockierte
  • Das ganze Archiv musste in den Arbeitsspeicher passen, also stiegen die Kosten mit jedem Bild
  • Von Hand gebaut und installiert, ohne automatisierte Tests

Heute

  • Sicherer Login, drei Benutzerrollen und vollständig getrennte Daten für jeden Kunden
  • 20 parallel arbeitende Services, sodass ein großer Upload keine schnelle Suche mehr ausbremst
  • Das Archiv liegt auf der Festplatte, und die AWS-Rechnung ist um 90 % gesunken
  • Mit einem Befehl eingerichtet oder aktualisiert, und 600+ Tests sichern jedes Release ab

Highlights

Was ich erreicht habe

01

Cloud-Kosten um 90 % gesenkt

Die Suche ist von einer teuren In-Memory-Vektordatenbank auf PostgreSQL umgezogen. Das Archiv kann jetzt weit über den Arbeitsspeicher des Servers hinaus wachsen, und die Daten jedes Bildes brauchen nur noch ein Drittel des Platzes.

  • PostgreSQL
  • pgvector
  • DiskANN
02

Dem System beigebracht, Motive zu verstehen

Es findet das eigentliche Motiv auf einem vollen Druckbogen, zerlegt ein Layout in Logos, Illustrationen und Text und liest Texte und Barcodes. Ein Ausschnitt mit einem einzigen Logo reicht, um jede Datei zu finden, die es enthält.

  • PyTorch
  • CLIP
  • Grounding DINO
  • OCR
03

Ein KI-Modell ersetzt, mehr als 10× schneller

Bei der Prüfung von Holz- und Steinoberflächen schlagen eigene Bildverarbeitungsregeln das KI-Modell: 7,5 s → 0,6 s pro Bogen, ganz ohne GPU. Außerdem kommt jede Auffälligkeit mit Namen zurück, etwa Ast, Riss oder dunkler Fleck. Manchmal ist die beste KI-Entscheidung, keine KI einzusetzen.

  • OpenCV
  • Klassische Bildverarbeitung
04

Findet einen Unterschied von einem Pixel in Sekunden

Es erkennt Motive, die sich nur durch ein winziges Zeichen unterscheiden, im gesamten Archiv. Jede Datei Pixel für Pixel zu vergleichen, würde Stunden bis Tage dauern.

So funktioniert es ↓
  • Computer Vision
  • Bildsuche
05

Sicher für echte Kunden gemacht

Aus einem offenen Port ohne Login wurden sichere Konten, drei Benutzerrollen und eine eigene Datenbank für jeden Kunden. Die Suche eines Kunden erreicht nie die Daten eines anderen.

So funktioniert es ↓
  • JWT
  • Rollenbasierter Zugriff
  • Mandantenfähigkeit
06

Einfach auszuliefern

Ein Kundensystem einzurichten bedeutete früher eine lange manuelle Checkliste. Heute reicht ein Befehl. Jedes Release wird automatisch gebaut, und 600+ Tests prüfen jeden Endpunkt, bevor etwas rausgeht.

  • Docker
  • GitHub Actions
  • Bash

Architektur

Erst vier Container, dann zwanzig

Am Anfang führte ein Container fast alles aus, und Aufgaben warteten in einer Schlange nacheinander. Heute ist jede Schicht in Teile zerlegt, die sich einzeln skalieren, neu starten und ausliefern lassen, und die KI-Modelle laufen in eigenen GPU-Services.

Ausgangspunkt 4 Container · einer davon führte alles aus Heute 20 Container · je einer pro Job-Typ CLIENT EINSTIEG VERTEILUNG RECHNEN SPEICHER Skripte und Testwerkzeuge kein Login, offener Port FastAPI im selben Container wie die Worker Redis-Queue hielt auch Job-Status und Einstellungen Celery-Worker, nur CPU CLIP-Modell pro Worker geladen Weaviate Vektoren und alle Metadaten an einem Ort lesen und schreiben Web-App und Kundensysteme Token-Login, ein Mandant pro Konto API-Gateway prüft Token, Rolle und Rate Limit RabbitMQ sieben Queues: vier für Worker, drei für KI-Services Schnelle Worker Suche, Text Lange Worker Uploads, Bilder KI-Services GPU · CLIP, DINO + Klassifizierer PostgreSQL Daten + Vektoren pro Mandant Solr Volltext pro Mandant Redis Job-Status widerrufene Token Jobs Worker fragen, KI antwortet schreiben und lesen
Dieselben fünf Schichten, vorher und nachher. Nur die Worker sprechen mit den KI-Services: Sie schicken Modellarbeit über eigene Queues, bekommen die Ergebnisse zurück und schreiben dann in die Datenbanken. Eine KI-Maschine lässt sich hinzufügen, neu starten oder verschieben, ohne den Rest anzufassen.

Bildverständnis

Was mit einem hochgeladenen Bild passiert

Ein Upload wird nicht einfach abgelegt. Das System ermittelt, was das Bild enthält: wo das Motiv ist, welche Texte und Barcodes darauf stehen und wie es als Zahlen aussieht, die ein Computer vergleichen kann. Keiner dieser Schritte existierte am Anfang.

Bild oder PDF kommt per API Prüfungen Format, Größe, schon bekannt? Region of Interest welcher Teil das Motiv ist und wie oft es wiederkehrt Text per OCR Tesseract, rotationsfest, pro Region Barcodes ZBar, alle gängigen 1D- und 2D-Codes CLIP-Vektoren KI-Service, Grafikkarte, ein Vektor pro Region PostgreSQL Datensatz, Felder, Text und Vektoren Solr Volltextindex Aufrufer informiert Status-Endpunkt oder Webhook Crops Vektor Text und Codes fertig
Der Upload-Pfad. Die drei magentafarbenen Schritte sind die Module des Bildverständnisses; der Region-of-Interest-Schritt läuft zuerst, weil die anderen Schritte mit den von ihm gefundenen Regionen arbeiten.

Pixelgenaue Suche

Den kleinsten Unterschied finden

Zwei Versionen eines Verpackungsdesigns können fast identisch sein: Der einen fehlt ein winziges technisches Zeichen, die andere hat ein zusätzliches Logo. Matches findet das ähnlichste Design im Archiv und zeigt genau, was abweicht, bis auf einen einzelnen Pixel.

Die Suche läuft über das ganze Archiv und antwortet in Sekunden. Jede Datei von Hand oder auch per Computer Pixel für Pixel zu vergleichen, würde Stunden bis Tage dauern.

ANFRAGE ARCHIV ERGEBNIS ein Design das ganze Archiv, in Sekunden durchsucht + logo 1 px − Zeichen 3 Abweichungen markiert Matches Sekunden Jede Datei, Pixel für Pixel Stunden bis Tage
Ein Design hinein, das ähnlichste heraus, mit jeder Abweichung markiert: was entfernt, was hinzugefügt und was verändert wurde.

Benutzer und Zugriff

Vom offenen Port zu getrennten Kunden

Am Anfang gab es keinen Login: Wer den Server erreichen konnte, durfte hinzufügen, suchen und löschen. Der Zugriff wurde Schritt für Schritt aufgebaut, vom einfachen Login über sichere Token an jedem Endpunkt bis zur Benutzerverwaltung mit drei Rollen (Super-Admin, Mandanten-Admin, Benutzer) und schließlich zur vollständigen Trennung der Kundendaten.

Mandanten-Admins verwalten ihre eigenen Benutzer und entscheiden, wer Einträge bearbeiten darf. Jeder Kunde bekommt eine eigene Datenbank und einen eigenen Suchindex, sodass die Abfrage eines Kunden nie die Daten eines anderen erreicht.

API-Gateway Token → User → Mandant → Verbindung MANDANT A Datenbank eigene Zeilen + Vektoren Textindex eigene Collection MANDANT B Datenbank Textindex MANDANT C Datenbank Textindex 1 Mandant pro User nur Super-Admin: fragt jeden Mandanten, kombiniert die Antworten
Trennung über die Verbindung, nicht über einen Filter in einer Abfrage. Nur ein Super-Admin überschreitet die Grenze, und nur indem er jeden Mandanten nacheinander fragt.

Modulübersicht

Woraus das System heute besteht

22 Module in vier Gruppen. Wählen Sie eine Gruppe, um zu sehen, was darin steckt.

Klicken Sie auf eine Gruppe, um sie zu öffnen.


Toolkit

Gebaut mit

Sie möchten die ganze Geschichte hören? Ich führe Sie gern durch das System.

Kontakt aufnehmen →