Schlechte Chatbots?

Muss das noch sein?

Viele kennen das Szenario: Man hat ein Problem, sucht schnell eine Antwort und wendet sich daher vertrauensvoll an den Kundenservice. Doch anstelle von „echter“ Hilfe durch eine fachkundige Person, wird man von einem schlecht programmierten Chatbot “beraten“, der die einfachsten Fragen nicht versteht oder stur immer wieder auf die FAQ-Seite verweist. Solche Serviceerlebnisse frustrieren und werfen die Frage auf: Muss das wirklich noch sein? Die kurze Antwort: Nein! Denn inzwischen ist es möglich, in nur wenigen Stunden seinen eigenen Experten-Chat aufzubauen. Wie das geht, zeige ich euch in diesem Artikel.

25.10.2024
Lesezeit ~14 Minuten
Digitalisierung
Markus Garnitz
Markus Garnitz
Bereichsleitung Digitalisierung

Mein Ziel: Ein Experten-Chat-System erstellen, dass Fragen rund um die BayernCloud Tourismus beantworten kann. Natürlich ist dafür ein wenig technisches Verständnis notwendig, meine 15 Jahre Erfahrung als Softwareentwickler und -architekt also sicher hilfreich, aber auch ohne kann man hier schnell Erfolge erzielen, wenn man moderne KI-Werkzeuge benutzt.

 

Informationen sammeln: Der Crawl-Vorgang

Der erste Schritt besteht darin, die relevanten Informationen zu sammeln. Die Herausforderung dabei: Habe ich zu (m)einem Thema alle Informationen und Dokumentationen verfügbar? Sind alle Dokumente auch für die Öffentlichkeit bestimmt? Es ist nämlich wichtig zu beachten, dass keinesfalls interne Dokumente oder gar personenbezogene Daten genutzt werden. Daher habe ich zunächst die öffentlichen Webseiten der BayTM „crawlen“ (also automatisiert auslesen) lassen und so alle öffentlich zugänglichen Inhalte und Dokumentationen erfasst, die für das Thema wichtig waren. Diese Vorgehensweise ermöglicht es, die bereits vorhandenen Wissensressourcen voll auszuschöpfen, ohne neue Inhalte erstellen zu müssen.

Den Code zum Crawlen habe ich mit Hilfe einer KI erstellt und in Jupyter Notebooks, einem Tool, in dem du Code schreiben, testen und sofort ausführen kannst, laufen lassen. Das war erstaunlich praktisch und unkompliziert, da ich den Crawl-Prozess flexibel gestalten und sicherstellen konnte, dass nur öffentlich zugängliche Informationen verwendet werden. Natürlich ist (wie so oft beim Agieren mit KI-Systemen) die erste Antwort noch nicht die finale Lösung, aber mit dem Feedback der KI und dem Bereitstellen von Fehlermeldungen kann man innerhalb weniger Schleifen ein kleines Programm bauen, das die gewünschten Inhalte aus den durchsuchten Seiten bereitstellt.

Screenshot Crawler Prompt

Den Assistenten erschaffen

Wissen in Sprachmodelle zu integrieren war anfangs noch eine große Herausforderung, mittlerweile gibt es Techniken wie Retrieval-augmented generation (RAG), mit deren Hilfe zusätzliche Informationen, auch über Prompt Engineering hinaus, in Form von einer Datenbank zur Verfügung gestellt werden können. Einen sehr guten technischen Einstieg zu Grundlagen der Large Language Model (LLM) Optimierung gibt euch folgender Artikel.

OpenAI, bekannt durch ChatGPT, bietet ein einfach nutzbares Tool, mit dessen Hilfe Experten-Chatsysteme erstellt werden können. So können Inhalte einfach als txt-, pdf- oder Word-Dokument hochgeladen werden und es wird automatisch eine Vector Datenbank der Inhalte erstellt. Diese kann nun genutzt werden, um dem LLM das externe Wissen zugänglich zu machen.

Screenshot Vector store for BayernCloud Tourismus Experte

Mit den gesammelten Daten habe ich dann einen OpenAI-Assistant erstellt und seine Aufgabe so beschrieben, dass er diese Informationen sinnvoll nutzen kann. Hierbei war mir wichtig, dass der Chatbot tatsächlich Fachwissen vermittelt und nicht nur allgemeine Floskeln wiederholt. Dies ist einer der Knackpunkte vieler schlecht umgesetzter Chatbots: Ihnen fehlt schlichtweg das Wissen oder der Kontext, um Nutzern wirklich weiterzuhelfen.

Direkt nach Bereitstellung der Dokumente und dem Formulieren der notwendigen Handlungsanweisungen für den Assistenten, habe ich es getestet. OpenAI bietet hierfür einen Playground, eine Spielwiese, in der man auf Herz und Nieren testen und weiter optimieren kann. Die ersten Tests waren vielversprechend. Aber natürlich stellte ich mir dann die Frage: Wie mache ich den Assistenten nun den Touristikern zugänglich, die Fragen zur BayernCloud Tourismus oder zu Open Data haben?

Integration als Webanwendung

Um das Ganze benutzerfreundlich zu gestalten, habe ich das OpenAI-Demo-Projekt angepasst, das auf einem modernen JavaScript Framework (Next.js) basiert. Das Ergebnis war ein funktionierender Experten-Chat, den ich innerhalb weniger Stunden funktionstüchtig gemacht habe. Mein verwendeter Code ist öffentlich auf GitHub verfügbar, sodass ihr selbst einen Blick darauf werfen und/oder das Projekt weiterentwickeln könnt.

Das Deployment (Ausrollen der Applikation) erfolgt automatisiert über eine Cloud Plattform (Vercel) und ermöglichte mir, die Anwendung schnell einem breiten Publikum zur Verfügung zu stellen. Dabei hat mir die KI „CoPilot“ (von GitHub) geholfen, den Code möglichst schnell an meine Bedürfnisse anzupassen und zu optimieren.

 

Die Ergebnisse

Hier ein paar Beispiele, wie sich der virtuelle BayernCloud Tourismus-Experte schlägt:

Screenshot mit der Antwort zur Frage "Wie kannst du mir helfen?"

Aber auch wenn wir konkreter werden, kommen gute Antworten, zum Beispiel zu Open Data:

Screenshot mit der Antwort zur Frage "Warum ist Open Data so wichtig und welche Lizenzen sollte ich verwenden?"
Screenshot mit der Antwort zur Frage "Kann ich meine Bilder einfach als Open Data freigeben?"

Aber auch technische Fragen werden zufriedenstellend beantwortet:

Screenshot mit der Antwort zur Frage "Wie kann ich mich für die BCT API freischalten lassen?"

Und natürlich ist sich der Assistent auch nicht zu fein, bei Bedarf oder konkreten Nachfragen auf unsere existierenden Dokumentationen oder unsere Wissensplattform hinzuweisen:

Screenshot mit der Antwort zur Frage "Wo finde ich weitere Informationen?"

Selbst ist der Entwickler

Das Besondere an diesem Projekt ist nicht nur, dass es schnell realisierbar ist, sondern auch, dass es zeigt, wie einfach es heutzutage ist, ein sinnvolles Chat-System zu erstellen. Viele Unternehmen geben immer noch viel Geld für Chatbots aus, die am Ende oft für mehr Frustration als Hilfe sorgen. Dabei ist es möglich, mit einfachen Mitteln selbst ein funktionierendes System aufbauen, das wesentlich besser auf die Bedürfnisse der Nutzenden eingeht. Natürlich handelt es sich bei meinem System nur um eine Demonstration – es gibt noch viel Potenzial für Optimierungen, insbesondere was die Datenbasis und die Antworten des Assistenten angeht. Aber es zeigt eben auch: Schlechte Chatbots müssen nicht mehr sein!

Zum aktuellen Zeitpunkt hat der BayernCloud-Experte noch keinen direkten Zugriff auf die Daten aus der BayernCloud Tourismus. Allerdings kann man in OpenAI-Assistenten mittlerweile auch externe Informationsquellen anbinden und diese integrieren. Das ist vielleicht eine Idee für die nächste Ausbaustufe.

Natürlich ist ein gewisses technisches Grundverständnis notwendig für den beschriebenen Demonstrator, aber den OpenAI-Assistenten selbst kann man auch ohne größere Fachkenntnisse ausprobieren. Dieser Artikel soll euch dazu animieren: probiert es selbst aus, experimentiert mit den verschiedenen KI-Tools und lasst euch davon überraschen, wie viel man in kurzer Zeit erreichen kann – der nächste wirklich hilfreiche Chatbot könnte von euch sein!

 

Ihr wollt den BayernCloud Tourismus-Experten selbst mal ausprobieren?

Jetzt hier testen!

 

Über Feedback und Verbesserungsvorschläge freue ich mich! Bedenkt aber bitte, dass es sich um einen in wenigen Stunden entwickelten Prototypen handelt und nicht um ein fertiges Produkt. Viel Spaß!

Glossar

Jupyter Notebooks

Ein digitales Notizbuch, in dem du Code schreiben und sofort ausführen kannst. Es ist nützlich zum Testen und Dokumentieren von Programmcode.

Retrieval-augmented generation (RAG)

Eine Technik, bei der eine Maschine Daten aus externen Quellen abruft und dann auf Basis dieser Informationen neue Inhalte erstellt.

Prompt Engineering

Der Prozess, präzise Eingaben (Prompts) für KI-Modelle zu formulieren, um hilfreiche und zielgerichtete Antworten zu bekommen.

LLM (Large Language Model)

Ein KI-Modell, das darauf trainiert ist, menschliche Sprache zu verstehen und Texte zu generieren. Es wird mit großen Mengen an Textdaten trainiert.

Vector Datenbank

Eine Datenbank, die Informationen in Form von Vektoren speichert. Vektoren helfen dabei, ähnliche Daten effizient zu finden, zum Beispiel bei der Suche nach ähnlichen Bildern oder Texten.

Next.js

Ein Framework, das auf JavaScript basiert und Entwicklern hilft, moderne Webseiten schnell und einfach zu erstellen.

JavaScript

Eine Programmiersprache, die hauptsächlich verwendet wird, um Webseiten interaktiv zu machen, zum Beispiel durch Klicks oder Eingaben.

GitHub

Eine Plattform, auf der Programmierer Code teilen und gemeinsam daran arbeiten können. Es bietet Funktionen zur Versionskontrolle und Zusammenarbeit.

Deployment

Der Prozess, eine fertige Anwendung oder Webseite auf einem Server verfügbar zu machen, damit Nutzer darauf zugreifen können.

Newsletter

Bleibt auf dem Laufenden! Unser Newsletter und die Netzwerk-Updates informieren euch regelmäßig und kostenlos über relevante Themen, Trends und Termine

Anmelden