Hogarama Goes AI - Blog Titel
  • Hogarama
  • KI
  • Learning Friday

Ist KI als Ersatz für herkömmliche GUIs geeignet?

Das LF Projekt „Hogarama goes AI“ ist unser Versuch, auf die nächste Ebene in der Interaktion mit Software-Systemen zu kommen. Unsere Idee war, einen KI-Chatbot zu schaffen, der es ermöglicht, auf natürliche Art und Weise (also mittels Dialog) mit Hogarama zu kommunizieren, anstatt weiterhin Zeit und Energie in das traditionelle Web-GUI zu investieren. Unser Ziel war jedoch nicht, das gesamte GUI durch KI abzuschaffen, sondern herauszufinden, welche Möglichkeiten KI-Systeme heute bieten und wie wir sie in Kundensystemen einsetzen können. „Hogarama goes AI“ steht somit nicht nur für eine technologische Erneuerung, sondern auch für einen Schritt in eine Zukunft, in der KI eine wesentliche Rolle in der Gestaltung der Interaktion mit Systemen spielen wird.

Integration der OpenAI API

Als „AI Engine“ haben wir die OpenAI API (https://platform.openai.com/docs/introduction) ausgewählt, die in einer Vielzahl von Anwendungen und Szenarien eingesetzt werden kann. Die Auswahl an Modellen ist breit genug (https://platform.openai.com/docs/models/overview), um eines für fast jede „übliche“ Aufgabenstellung finden zu können. Darüber hinaus bietet OpenAI API auch die Möglichkeit des Fine-Tunings, wodurch die Modelle speziell auf die Bedürfnisse und Anforderungen des jeweiligen Projekts abgestimmt werden können.

Ein weiterer entscheidender Vorteil der OpenAI API ist ihre Benutzerfreundlichkeit und Zugänglichkeit. Die API kann über fertige Clients in verschiedenen Programmiersprachen aufgerufen werden, darunter Python, Node.js und Java.

Da unser Backend in Java entwickelt wurde, entschieden wir uns für den Einsatz des Java Azure Clients. Dieser Client kann sowohl für Azure OpenAI als auch für die OpenAI API verwendet werden. Durch diese Entscheidung konnten wir eine nahtlose und effiziente Integration der KI-Funktionalitäten in unser Hogarama-System erreichen.

Architektur

Für das Projekt wurde die Kommunikation mit der OpenAI API durch einen speziell entwickelten Backend-Service hogajama-ai abgewickelt. Dieser Service bietet dem Frontend einen Endpoint an, der die Chat-Funktionalität ermöglicht. Benutzer:innen können so über ein Chat-Interface direkt mit Hogarama interagieren, wobei der Backend-Service als Vermittler zwischen dem Frontend und der OpenAI API fungiert. Wichtig dabei ist auch, dass das Frontend unabhängig von einer konkreten AI-Technologie oder einem konkreten Modell bleibt.

Hogarama Architektur

Use cases

Im Laufe des Projekts haben wir uns auf 2 Use Cases konzentriert:

UseCase 1: Anfragen relevanter Daten per Chat

In diesem ersten Use Case haben wir eine grundlegende Funktion implementiert, die es ermöglicht, für Benutzer:innen relevante Informationen über einen Chat zu bekommen. Durch einfache Anfragen können Details wie z.B. verfügbare Sensoren, Pumpen und Bewässerungsregeln erhalten werden:

 

Hogarama Ai Usecase1

Für die Implementierung dieses Use Cases wurde ein spezifischer System-Prompt geschrieben. Die Benutzerdaten werden aus der Datenbank geholt, in eine Tabulator-Darstellung umgewandelt und in den System-Prompt eingefügt. Durch die Einspeisung dieser benutzerspezifischen Daten in den Prompt kann die KI präzise und relevante Antworten auf die Anfragen des Benutzers generieren.

You are an AI chatbot integrated with ${userName}’s automatic watering system.

You can operate with following data, which is stored in the database and related to ${userName}’s system:

The logged-in user is ${userName}.

${userName}’s Sensors (Moisture measurement sensors for plants), provided in the tabulator-separated format:

${sensorData}

${userName}’s Actors (Water pumps controlled by rules), provided in the tabulator-separated format:

${actorData}

${userName}’s Watering Rules (Watering logic configurations), provided in the tabulator-separated format:

${ruleData}

${userName}’s unit data. Here is the list of units and their ids, provided in the tabulator-separated format:

${unitData}

The unit represents the collection of sensors and actors and also the watering rules that are grouped together in ${userName}’s system. Each unit has a unique id and a name.

For example, user has the following units:

Office (id: 1) with sensors s1 and s2 and pumps p1 and p2.

Home (id: 2) with sensors s3 and s4 and pumps p3 and p4.

When interacting with ${userName}, follow these guidelines:

Always address ${userName} by name when responding to his inquiries.

Use Case 2: Bearbeitung einer bestehenden Regel über den Chatbot

Der zweite Use Case konzentriert sich auf eine spezifische Interaktion: das Bearbeiten einer bestehenden Bewässerungsregel über den Chatbot. Dies ermöglicht den Benutzerinnen und Benutzern, bestehende Regeln einfach und direkt über den Chat anzupassen:

Hogarama Ai Usercase2

Bei der Implementierung dieses Features kam Function-Calling zum Einsatz. Ein wesentlicher Aspekt hierbei ist, dass die KI potenziell fehlerhafte Entscheidungen treffen kann. Um dies zu berücksichtigen, wurde das Feature so konzipiert, dass die KI lediglich Vorschläge für Aktionen generiert. Der Benutzer/die Benutzerin hat dann die Möglichkeit, diese Vorschläge zu akzeptieren oder abzulehnen.

Hogarama Usercase2 Confirmed

Herausforderungen im Projekt

Eine Herausforderung im Projekt war das sogenannte Prompt-Engineering. Die Art und Weise, wie der System-Prompt formuliert wird, hat einen erheblichen Einfluss auf die Qualität und Relevanz der Antworten der KI. Die Entwicklung eines effektiven Prompts war ein iterativer Prozess, bei dem die „optimale“ Formulierung gefunden wurde. Dies hat ein tiefes Verständnis dafür erfordert, wie die KI (konkret das Modell GPT-4 von OpenAI) auf verschiedene Eingabeformate und Anweisungen reagiert.

Kostenoptimierung bei API-Nutzung: Die Kosten für die Nutzung der OpenAI API hängen von der Größe der übermittelten Nachrichten ab. Daher war es entscheidend, den System-Prompt so kurz und präzise wie möglich zu gestalten. Ebenso war es wichtig, ein sparsames Format für die Benutzerdaten zu wählen, um die Effizienz zu maximieren und unnötige Kosten zu vermeiden.

Variabilität der KI-Antworten: Ein weiteres Problem besteht in der Inkonsistenz der KI-Antworten. Verschiedene Modelle – und manchmal sogar das gleiche Modell – können auf dieselbe Anfrage völlig unterschiedliche Antworten geben. Diese Variabilität erfordert eine sorgfältige Überwachung und Anpassung der Prompts, um sicherzustellen, dass die Antworten des Chatbots zuverlässig sind.

Einschränkung der API-Nutzung: Ein noch ungelöstes Problem ist die Einschränkung der API-Nutzung, um sicherzustellen, dass sie nur für systemrelevante Aufgaben verwendet werden. Die API bietet grundsätzlich die Möglichkeit, den Chatbot wie ein normales ChatGPT für verschiedene Anfragen zu nutzen. Die Entwicklung von Mechanismen, die eine ausschließliche Nutzung für beabsichtigte, systemrelevante Funktionen gewährleisten, bleibt eine offene Aufgabe und erfordert weiterführende Überlegungen und Lösungen.

Vorteile für Fachanwendungen

In unserem Projekt haben wir zwei einfache Use-Cases implementiert. Selbstverständlich gibt es andere Szenarien des KI-Einsatzes, die besonders in umfangreichen und komplexen Unternehmensanwendungen von großem Nutzen sein können.

KI-gestützte „Dokumentation on Demand“: In großen Systemen kann es herausfordernd sein, spezifische Funktionen oder Prozesse zu finden. Ein KI-Chatbot könnte es den Benutzerinnen ermöglichen, direkt nach der Position und Anwendung bestimmter Funktionalitäten zu fragen. Diese Art von interaktiver Dokumentation könnte besonders hilfreich sein, um schnell und effizient Informationen über Systemfunktionen zu erhalten.

Chatbot-gesteuerte Verwaltung komplexer Regelwerke: Ein weiterer Use-Case ist die Nutzung des Chatbots zur Verwaltung von umfangreichen und komplizierten Regelwerken. Anstatt sich durch komplexe Dokumentationen und Benutzeroberflächen zu kämpfen, könnten die Users mit dem KI-System in natürlicher Sprache interagieren, um Regeln zu verstehen, anzupassen oder zu erstellen. Dies erleichtert insbesondere für Einsteiger den Zugang zu komplexen Systemfunktionen.

Automatisierte Vorbereitung und Entscheidungsunterstützung: Ein weiteres spannendes Szenario ist die automatisierte Vorbereitung von Daten, Formularen und vorläufigen Entscheidungen bei standardisierten Abläufen. Benutzer:innen müssten in diesem Fall nur die vorgeschlagenen Daten überprüfen und die endgültigen Entscheidungen treffen. Dies spart Zeit und verringert die Fehleranfälligkeit in Prozessen.

Diese Use Cases demonstrieren das enorme Potenzial der KI-Integration in Unternehmensanwendungen, indem sie die Benutzerfreundlichkeit erhöhen und gleichzeitig die Effizienz steigern.

Fazit

Mit dem Projekt „Hogarama goes AI“ haben wir einen bedeutenden Fortschritt in unserem Verständnis der Möglichkeiten moderner Mensch-Maschinen Interaktion gemacht. Die Integration der OpenAI API hat es ermöglicht, intuitive und effiziente Kommunikationswege zwischen Benutzer:innen und Hogarama zu schaffen. Durch die Implementierung von zwei zentralen Use-Cases – der Anfrage relevanter Daten und der Bearbeitung von Regeln über einen Chatbot – haben wir gezeigt, wie künstliche Intelligenz in Fachanwendungen eingebunden werden kann, um Benutzerfreundlichkeit und Effizienz zu erhöhen und eventuelle Fehleranfälligkeit zu reduzieren.

Software Schmiede
KI

Softwareentwicklung im Jahr 2045

Im Folgenden handelt es sich um eine fiktive Dokumentation aus dem Jahr 2045 welche durchaus mit ein wenig Augenzwinkern verstanden werden darf. Viel Spaß beim Lesen.

Hogarama Goes AI - Blog Titel
Hogarama / KI / Learning Friday

Ist KI als Ersatz für herkömmliche GUIs geeignet?

Das LF Projekt „Hogarama goes AI“ ist unser Versuch, auf die nächste Ebene in der Interaktion mit Software-Systemen zu kommen. Unsere Idee war, einen KI-Chatbot zu schaffen, der es ermöglicht, auf natürliche Art und Weise (also mittels Dialog) mit Hogarama zu kommunizieren, anstatt weiterhin Zeit und Energie in das traditionelle Web-GUI zu investieren. Unser Ziel war jedoch nicht, das gesamte GUI durch KI abzuschaffen, sondern herauszufinden, welche Möglichkeiten KI-Systeme heute bieten und wie wir sie in Kundensystemen einsetzen können. „Hogarama goes AI“ steht somit nicht nur für eine technologische Erneuerung, sondern auch für einen Schritt in eine Zukunft, in der KI eine wesentliche Rolle in der Gestaltung der Interaktion mit Systemen spielen wird.

Hogarama
Cloud Native / Hogarama / JBoss EAP / Keycloak - SSO / Learning Friday / OpenShift - Kubernetes

Home and Garden Automation (aka Hogarama)

Freitag ist Learning Friday bei gepardec. Dieses Format gibt es seit der Firmengründung. In den Anfangszeiten hat sich jeder Mitarbeiter ein Thema ausgesucht, dieses ausgearbeitet und präsentiert. In weiterer Folge sind die Themen oftmals in Vergessenheit geraten. Darüber hinaus bieten kleine “Hello World” Beispiele nicht die Komplexität, um Technologien für echte Projekte zu testen. Daher haben wir uns entschlossen gemeinsam eine Anwendung zu entwickeln, bei der wir alle Technologien einsetzen können, die wir ausprobieren wollen.

Das Ergebnis ist Hogarama.

Hogarama wird in einem Scrum Prozess abgearbeitet. Durch Ideen in den Retrospektiven und Änderungen wie z.B. dem wachsenden Team werden auch immer wieder Strukturen geändert. Derzeit haben wir sogenannte Microteams von ca. drei Personen, die ein Thema bearbeiten. Innerhalb dieser soll eng zusammengearbeitet werden (Pair-Programming).

Auf technologischer Ebene pflegen wir alles in Hogarama ein, was uns aktuell interessiert. Das reicht von der Basisplattform OpenShift, Meassaging, Keycloak-SSO über Architektur und Design Patterns bis zu Deployment Strategien mit Jenkins, Nexus und Ansible.

Hogarama ist ein Experimentierfeld in vielen Bereichen. Die Erkenntnisse die wir dabei gewinnen, kommen auch unseren Kundenprojekten zu Gute. Sei es der effiziente Einsatz von Pair Programming, wie Retrospektiven ergebnisorientiert durchführt werden oder eine Anwendung auf OpenShift entwickelt und betrieben wird.

geschrieben von:
Andreas, Erhard, Egor
WordPress Cookie Plugin von Real Cookie Banner