Kernfunktionen umgesetzt Internes Repository Firmeninternes Projekt bei Sonplas

MechatronicHub

Interne Wissensplattform mit lokaler semantischer Suche

Interne Wissensplattform für mechatronische Objekte und technische Dokumentation, entwickelt mit Blazor, .NET 10, Entity Framework Core und einer lokal betriebenen semantischen Suche.

Problem

Technisches Wissen, Objektinformationen und Dokumentation sollten strukturiert, durchsuchbar und für Mitarbeitende einfacher pflegbar werden. Eine reine Stichwortsuche findet nur, wer den exakten Begriff kennt — bei technischer Dokumentation ist das häufig nicht der Fall.

Lösung

Eine Blazor-Anwendung verbindet hierarchische Navigation, redaktionelle Inhalte und semantische Suche in einer gemeinsamen Oberfläche. Kategorien und mechatronische Objekte werden über eine selbst entwickelte TreeView-Komponente mit Drag-and-Drop strukturiert, Inhalte als Markdown gepflegt und über Labels zusätzlich klassifiziert. Ergänzend läuft eine vollständig lokale Retrieval-Pipeline: Inhalte werden in überlappende Chunks segmentiert, über ein lokales Ollama-Modell in Embeddings überführt und anhand von Top-K, Mindestscore und einer zusätzlichen Titel-/Keyword-Gewichtung abgerufen.

Mein Beitrag

  • Konzeption und Implementierung der Domänenstruktur aus Kategorie, MechObject, Label und Markdown-Ressourcen.
  • Entwicklung einer eigenen TreeView-Komponente inklusive Drag-and-Drop und konsistenter Eltern-Kind-Auflösung.
  • Aufbau der Editor- und Popup-Hierarchie für Objekte, Kategorien, Labels und Benutzerrechte.
  • Umsetzung eines attributgesteuerten Filtersystems, das Modelleigenschaften ohne Sonderfälle filterbar macht.
  • Integration der lokalen RAG-Suche inklusive Chunking, Embedding-Erzeugung, Ranking und Score-Schwellen.
  • Entwurf eines Index-Rebuilds, der im Hintergrund läuft und den bestehenden Suchindex währenddessen nutzbar hält.
  • Referenzprüfung vor dem Löschen, damit verwendete Kategorien und Labels nicht stillschweigend Daten beschädigen.
  • Arbeit an Authentifizierung über Negotiate/LDAP, Rollenmodell, EF-Core-Persistenz, Docker-Setup und Fehleranalyse.

Aufbau

  1. Blazor-Anwendung auf .NET 10 als interaktive Weboberfläche
  2. Domänenmodell aus Kategorie, MechObject, Label und Markdown-Ressourcen mit eigenen Mapping-Entitäten
  3. Persistenz über Entity Framework Core 10 und SQL Server
  4. Lokaler Ollama-Dienst für Embeddings — Inhalte verlassen die Umgebung nicht
  5. Retrieval-Pipeline: Chunking mit Überlappung → Embeddings → Ähnlichkeitssuche → Ranking über Score, Titel-Boost und Keyword-Gewichtung
  6. Suchindex als unveränderlicher Snapshot; ein Rebuild läuft im Hintergrund und wird erst nach Fertigstellung getauscht
  7. Authentifizierung über Negotiate beziehungsweise LDAP-Prüfung mit Rollen von Viewer bis Admin
  8. Betrieb über Docker Compose gemeinsam mit dem lokalen Embedding-Dienst

Technische Herausforderungen

  • Hierarchien konsistent halten, wenn Eltern-Kind-Beziehungen per Drag-and-Drop geändert werden.
  • Strukturierte Metadaten sinnvoll mit frei formulierter Markdown-Dokumentation verknüpfen.
  • Suchqualität über Chunk-Größe, Überlappung, Ergebnisanzahl und Mindestscore ausbalancieren — kurze Anfragen brauchen eine andere Schwelle als ganze Sätze.
  • Den Suchindex neu aufbauen, ohne laufende Suchanfragen zu blockieren oder einen halbfertigen Zwischenstand auszuliefern.
  • Authentifizierung im Unternehmensnetz über unterschiedliche Laufzeitumgebungen hinweg.
  • Container- und Datenbankverbindungen diagnostizieren, etwa bei nicht erreichbarem SQL Server.

Ergebnis

Die Anwendung deckt die Kernfunktionen ab: Objekte anlegen und einordnen, Dokumentation als Markdown pflegen, über Labels und Filter eingrenzen und per semantischer Suche wiederfinden — ohne dass Inhalte ein externes KI-System verlassen. Der genaue Produktivstatus wird hier bewusst nicht behauptet.

Medien

Label- und Category-Editor der MechatronicHub-Oberfläche mit Platzhalterkategorien
Label- und Category-Editor: Tags und hierarchische Kategorien lassen sich hier pflegen (Demodaten).
Drag-and-Drop einer Kategorie in der selbst entwickelten TreeView-Komponente
Selbst entwickelte TreeView-Komponente: Kategorien per Drag-and-Drop neu einordnen.
MechObject-Editor beim Bearbeiten eines Objekts inklusive Dokumenten-Upload
MechObject-Editor: Kategorie und Labels zuweisen, Dokumente hochladen und im Markdown-Editor verlinken (Demodaten).