adesso Blog

In diesem Blog-Beitrag möchte ich die technischen Details der GenAI Chat-Bot Integration „Sprechende Maschine“ in der com2m Smart Product Plattform vorstellen. Dieser Blog-Beitrag ist der zweite Teil einer Serie. Im ersten Teil wurde das Thema „Sprechende Maschine“ eingeführt, den ihr hier nachlesen könnt.

Bei dem Use-Case Sprechende Maschine handelt es sich um einen GenAI Showcase. Die Integration in die com2m Smart Product Plattform soll den Usern einen hilfreichen KI-Assistenten zur Verfügung stellen, dessen Aufgaben die folgenden Bereiche umfassen: Abfrage von Daten, wie Assets, Datenpunkten oder Nachrichten, Interpretation von Daten und Unterstützung bei Fehlerbehebungen. Zum aktuellen Zeitpunkt liegt der Fokus auf einer korrekten und effizienten Datenabfrage. Weitere Themen wie die Interpretation und Hilfestellung werden anschließend umgesetzt.

Architektur

Der Chat-Bot ist eine experimentelle Erweiterung der com2m Smart Product Plattform und muss in die bestehende Architektur integriert werden. Diese Integration erfolgt durch einen neuen dedizierten Spring Boot Service, der auf Spring AI basiert und als Chat-Service bezeichnet wird. Dieser Service fungiert als Bindeglied zwischen einem User, den weiteren Services der Plattform und dem GenAI-Modell (siehe Abb. 1).


Abbildung 1: Integration des Chat-Service in die bestehende Architektur

Der Chat-Service nimmt Anfragen der User über einen REST-Endpunkt entgegen und verarbeitet diese. Für die Verarbeitung kommuniziert der Chat-Service mit einem GPT-4o Modell, das in Azure OpenAI gehostet wird. Um die Anfragen durch Daten anzureichern, werden diese, ebenfalls per REST, von den anderen Plattform-Services abgefragt. Dabei werden immer nur die gerade benötigten Daten abgerufen.


Abbildung 2: Zweistufiges Bearbeitungsmodell (Klassifizierung und Beantwortung)

Konkret arbeitet der Chat-Service in einem zweistufigen Verfahren, das Ähnlichkeiten zu dem Agenten Paradigma aufweist:

  • 1. Kategorisierung: In der ersten Stufe wird die Anfrage in eine Kategorie klassifiziert (siehe Abb. 2). Diese Klassifizierung erfolgt durch das KI-Modell und bestimmt, welche Funktionen zur Datenabfrage zur Verfügung stehen.
  • 2. Bearbeitung: In der zweiten Stufe wird die Anfrage zusammen mit dem Kontext und einer Auswahl an Funktionen an das KI-Modell gesendet. Das Modell wählt die passende Funktion aus und sendet diese an den Chat-Service zurück. Dieses Paradigma wird als Function- oder Tool-Calling bezeichnet. Der Chat-Service führt die ausgewählte Funktion aus und fragt die benötigten Daten mit den Rechten des Benutzers ab. Anschließend werden die Daten dem KI-Modell bereitgestellt, um eine Antwort zu formulieren. Komplexere Anfragen können durch wiederholte oder verschiedene Funktionsaufrufe bearbeitet werden.

Der beschriebene Ablauf wird schematisch in Abb. 3 dargestellt.


Abbildung 3: Bearbeitungs-Ablauf einer Benutzerfrage

Kontext

Large Language Foundation Modelle wie GPT-4o haben ein umfassendes Verständnis von Sprache und den Informationen, auf denen sie trainiert wurden. Sie verfügen jedoch nicht über spezifische Informationen zu dem Anwendungsfall, in dem sie eingesetzt werden. Damit das Modell die nötigen Informationen erhält, muss der Kontext richtig gesetzt werden. Der Kontext, einschließlich Prompt-Engineering, ist somit die wichtigste Komponente, damit ein Large Language Modell in einem spezifischen Anwendungsumfeld korrekt funktioniert.

In der Chat-Bot-Anwendung setzen wir den Kontext an verschiedenen Stellen. Die Bausteine, aus denen sich in diesem Showcase der Kontext zusammensetzt, sind folgende: Chat-Historie, Systemnachrichten, Benutzernachricht und Funktionsbeschreibungen.

Bei der Chat-Historie werden einfach die letzten Nachrichten dem Kontext hinzugefügt. Die Funktionsbeschreibungen bestehen aus einem JSON-Format, in dem die Beschreibung der Funktion und der einzelnen Parameter sowie die Angabe der Pflichtparameter enthalten sind. Die Systemnachrichten spielen die wichtigste Rolle, da über sie die meisten spezifischen Informationen dem Kontext hinzugefügt werden. In diesem Showcase gibt es verschiedene Arten von Systemnachrichten:

  • 1. Kundenspezifische Informationen und Regeln: Diese Systemnachricht kann beispielsweise die Einheit definieren, die für einen bestimmten Datenpunkt verwendet werden soll.
  • 2. Klassifizierung und Kategorien: Diese Systemnachrichten folgen dem Muster „Bestimmung (Welche Aufgabe soll grob erfüllt werden)“, „Spezialisierung (Wie ist das Modell für die Aufgabe spezialisiert)“, „Verfügbare Daten (Welche Informationen sollen verwendet werden)“ und „Bearbeitung (Wie soll eine Anfrage abgearbeitet werden)“. Der Bereich der verfügbaren Daten wird dynamisch zur Laufzeit mit Daten angereichert, wie zum Beispiel der aktuellen Uhrzeit.
  • 3. Benutzernachrichten: Diese enthalten die eigentliche Frage des Benutzers sowie eine Anweisung, was mit der Benutzerfrage passieren soll (Beantworten, Klassifizieren).

Durch die sorgfältige Gestaltung und Einbindung dieser Elemente wird sichergestellt, dass das Modell die notwendigen Informationen erhält, um präzise und kontextbezogene Antworten zu liefern.


GenAI Dossier Industrie

81 % der Industrieunternehmen sehen GenAI als Chance

Die Umfrage unter 84 Verantwortlichen aus der Industrie zeigt: Viele produzierenden Unternehmen stehen der Implementierung von GenAI–Anwendungen noch zurückhaltend gegenüber. Die, die GenAI bereits einsetzen, sind von den Ergebnissen überzeugt.

Wir haben für Sie Antworten auf die Fragen zusammengestellt, die sich die Branche heute stellt: von der Suche nach Anwendungsmöglichkeiten über die Entwicklung von GenAI-Anwendungen bis hin zur Implementierung in die eigenen Prozesse. Unser Dossier gibt Ihnen auf 22 Seiten die Informationen, die Sie brauchen.

Jetzt kostenlos herunterladen


Fazit und Ausblick

Durch den Einsatz von Frameworks wie Spring AI konnte der Showcase schnell umgesetzt werden. Die größte Herausforderung besteht jedoch weiterhin darin, dem Modell den richtigen Kontext zu geben. Schon die Anpassung einzelner Worte kann das Gesamtergebnis erheblich beeinflussen. Dabei muss beachtet werden, dass Änderungen nur bedingt getestet werden können, da LLMs nicht deterministisch arbeiten. Die Verbesserung des Kontexts ist ein fortlaufender Prozess, bei dem es nahezu unmöglich ist, alle Fehler zu beseitigen. Dennoch ist es unser Ziel, den Chat-Bot so robust und zuverlässig wie möglich zu gestalten. Damit dieses Ziel erreicht wird setzten wir auf den Einsatz in Kundenprojekten, um dort Feedback zu sammeln und dies in die Verbesserung mit einfließen zu lassen. Zusätzlich sind neue Erweiterungen in Entwicklung, welche es zum Beispiel ermöglichen Dokumente, wie Handbücher oder Dokumentation, hochzuladen und auf Basis dieser Dokumente Antworten und Handlungsempfehlungen zu generieren.

Bild Till Möller

Autor Till Möller

Till Möller ist Werkstudent im Bereich Data Science und Künstliche Intelligenz bei adesso in Dortmund. Dort unterstützt er die Line of Business Manufacturing Industries im Bereich Internet of Things. Themen wie Predictive Maintenance und Anomalieerkennung sind Teil seiner Arbeit.