Netidee Blog Bild
Gesamtarchitektur
Von einzelnen Komponenten und Anwendungen zu einem Gesamtsystem (27.06.2025)
Förderjahr 2023 / Projekt Call #18 / ProjektID: 6716 / Projekt: shrinkwrap.legal

Rückblick

In den vorherigen Blog-Beiträgen haben wir uns mit den technischen und rechtlichen Grundlagen für unser System auseinandergesetzt. Dabei haben wir vieles gelernt und auch zu einem Open Source Projekt mit einem Pull-Request beigetragen. Wir haben einen Pull-Request für die CoreNLP Bibliothek erstellt, damit diese auch die österreichische Schreibweise von Monaten erkannt wird. Es freut uns, dass dieser Pull Request mittlerweile in die aktuelle Version https://github.com/stanfordnlp/CoreNLP/releases/tag/v4.5.8 übernommen wurde. 

Gesamtarchitektur

In diesem Beitrag möchten wir einen Blick auf das Big Picture unseres Systems werfen.

Gesamtarchitektur

 

Chrome Extension

Die Benutzeroberfläche wird als Chrome Extension ausgeliefert, welche als Sidebar im Browser angezeigt wird. Zusätzlich kann damit auch direkt die geöffnete Webseite mit Inhalten angereichert werden. Auf diese Weise werden wir die Judikatur Ergebnisse im RIS direkt mit den Inhalten aus unserer Software ergänzen. 

Da der Microsoft Edge Browser ebenfalls auf Chromium-Basis arbeitet, wird die Erweiterung auch für diesen Browser veröffentlicht.  

Spring Boot Service

Als zentraler Service zur Kommunikation zwischen den verschiedenen Komponenten setzen wir ein Spring Boot Service, welches in Java implementiert ist, ein.  Dieses Service bekommt von der Browser Erweiterung die eindeutige Nummer eines Judikatureintrages und lädt dazu über die RIS SOAP Schnittstelle die entsprechenden Dokumente. Über die Schnittstelle können strukturierte Metadaten und das Dokument selbst im HTML-Format gelesen werden. Zusätzlich wird dadurch auch ein möglicher Angriffsvektor verringert, da die Daten direkt aus dem RIS geladen werden und nicht über die Schnittstelle zur Extension aus der Website kommen. Einmal aufgerufene Dokumente werden danach direkt in unsere Datenbank gespeichert. 

Datenbank

Wir haben uns für eine PostgreSQL Datenbank entschieden. In dieser Datenbank speichern wir die geladenen Quelldaten aus dem RIS und auch unsere berechneten Ergebnisse vom OpenAI Aufruf. 

Pandoc

Die RIS Schnittstelle bietet die Dokumente im HTML, PDF oder RTF Format an. Für unsere Verarbeitung verwenden wir die Daten im HTML Format, da dies ein passendes Format zur Weiterverarbeitung darstellt. 

Zur Bereinigung der Daten und Konvertierung in einfachen, unformatierten Text haben wir uns für Pandoc entschieden. Es wird in ein einfaches Textformat umgewandelt, sodass jeder Satz in einer neuen Zeile steht. 

OpenAI

Zur Zusammenfassung und Extraktion der Daten wird die OpenAI Schnittstelle mit dem Modell 4o-mini verwendet.

Im System-Prompt wird mitgeteilt, dass die KI sich wie ein Assistent eines Rechtsanwalts zur Unterstützung bei der juristischen Recherche verhalten soll. Zusätzlich gibt es noch Erklärungen, je nachdem, um welche Urteile es sich handelt. Außerdem wird noch darauf hingewiesen, dass im juristischen Bereich eine exakte Formulierung notwendig ist, aber trotzdem kurze Sätze gewünscht sind. 

Der User-Prompt gibt zuerst an, von welchem Gericht das zu analysierende Urteil ist. Anschließend wird aufgelistet, welche Daten wir daraus extrahiert und zusammengefasst erhalten möchten: 

  • Art des Urteils mit Einschränkung auf: Beschluss, Urteil oder Erkenntnis
  • Rechtsmittel
  • Ausgang des Verfahrens
  • Kurze Zusammenfassung des Sachverhalts 
  • Zusammenfassung des Klagebegehren in einem Satz 
  • Einbringer des Berufungsverfahren
  • Liste mit juristisch rechtlichen Schlussfolgerung
  • Liste mit den wichtigsten Normen 
  • Zusammenfassung für eine Boulevardzeitung
  • Zusammenfassung für ein öffentlich-rechtliches Medium
  • Zusammenfassung für eine juristische Zeitschrift 
  • Zuordnung zu Rechtsthemen (Hauptrechtsgebiete und Untergebiete) mit Aufzählung

 

Das Ergebnis aus der Abfrage wird als JSON erwartet, damit dies strukturiert ausgelesen werden kann, um es anschließend in unsere Datenbank zu speichern. Dadurch wird für jedes Dokument die Berechnung nur einmal angestoßen und steht für jeden weiteren Abruf bereits vorberechnet zur Verfügung.

 

 

Tags:

Systemarchitektur LLM OpenAI

Bernhard Jungwirth

Profile picture for user bernhardjungwirth

Skills:

Java
,
Backend Entwicklung
,
React
CAPTCHA
Diese Frage dient der Überprüfung, ob Sie ein menschlicher Besucher sind und um automatisierten SPAM zu verhindern.