Entwicklung eines KI-gestützten Kundenservice-Assistenten
TL;DR
Ein Enterprise-Kunde benötigte eine Erweiterung seiner bestehenden Webanwendung um intelligente Kundenservice-Funktionen. Die Lösung: ein moderner KI-gestützter Chat-Assistent, entwickelt mit React und TypeScript im Frontend, unterstützt durch einen FastAPI-Service auf Kubernetes. Durch die Nutzung von AWS Bedrock für LLM-Funktionen und Knowledge Base für RAG-basierte Suche in interner Dokumentation, kombiniert mit Custom Tools für Datenbankabfragen und Rich-UI-Widgets zur Datenvisualisierung, liefert der Assistent präzise, kontextbezogene Antworten und zeigt relevante Kundendaten direkt im Chat-Interface an.
Einleitung
Kundenservice im großen Maßstab stellt eine herausfordernde Balance dar: Nutzer erwarten sofortige, präzise Antworten, während Support-Teams mit wiederkehrenden Anfragen und der Notwendigkeit kämpfen, in mehreren internen Systemen zu suchen. Für diesen Enterprise-Kunden war das Ziel klar: einen KI-Assistenten direkt in die bestehende Webanwendung integrieren, der nicht nur Fragen aus der Dokumentation beantworten, sondern auch Echtzeitdaten aus internen Systemen abrufen und benutzerfreundlich darstellen kann.
Das Projekt erforderte eine enge Integration mit der bestehenden Infrastruktur des Kunden, einschließlich der Confluence-Wissensdatenbank, interner Datenbanken und Authentifizierungssysteme. Der Assistent sollte sich nahtlos in die Anwendung einfügen und dabei Funktionen weit über einen einfachen FAQ-Bot hinaus bieten.
Technische Architektur
Frontend: Modernes Chat-Widget
Das Chat-Interface wurde als React-Komponentenbibliothek mit TypeScript entwickelt, konzipiert für eine nahtlose Integration in die bestehende React-basierte Webanwendung des Kunden.
| Komponente | Technologie | Zweck |
|---|---|---|
| UI-Framework | React + TypeScript | Typsichere, komponentenbasierte Architektur |
| State Management | React Context + Hooks | Konversationsstatus, Nachrichtenverlauf |
| Styling | CSS Modules | Gekapselte Styles, Theming-Unterstützung |
| Rich Widgets | Custom Components | Datenkarten, Charts, interaktive Elemente |
Das Widget unterstützt sowohl Textantworten als auch interaktive Komponenten, die dynamisch basierend auf dem Antworttyp des Assistenten gerendert werden. Wenn das Backend strukturierte Daten zurückgibt (wie Kundeninformationen oder Statistiken), rendert das Frontend entsprechende Visualisierungs-Widgets anstelle von reinem Text.
Backend: FastAPI auf Kubernetes
Der Backend-Service wurde mit FastAPI entwickelt, gewählt wegen seiner Async-Unterstützung, automatischen OpenAPI-Dokumentation und exzellenten Performance-Eigenschaften für KI-Workloads.
ai-assistant-service/
├── app/
│ ├── api/ # API-Routen und Endpoints
│ ├── core/ # Konfiguration, Sicherheit
│ ├── llm/ # Bedrock-Integration, Prompts
│ ├── rag/ # Knowledge-Base-Retrieval
│ ├── tools/ # Custom-Tool-Implementierungen
│ └── widgets/ # Response-Widget-Definitionen
├── k8s/ # Kubernetes-Manifeste
└── tests/ # Test-Suite
Auf Kubernetes deployed profitiert der Service von:
- Horizontalem Pod-Autoscaling basierend auf Request-Last
- Health Checks und automatischen Neustarts
- Secrets Management für AWS-Credentials
- Ressourcenlimits für vorhersagbare Performance
AI/ML: AWS Bedrock Stack
AWS Bedrock stellt die zentralen KI-Funktionen bereit:
| Service | Zweck |
|---|---|
| Bedrock LLM | Natural Language Understanding und Generation |
| Bedrock Knowledge Base | RAG-Indexierung und semantische Suche |
| S3 | Dokumentenspeicher für Knowledge-Base-Quellen |
Systemarchitektur-Überblick
Zentrale technische Herausforderungen
Herausforderung 1: Custom RAG mit mehreren Datenquellen
Problem: Die Dokumentation des Kunden war über mehrere Systeme verteilt: Confluence für interne Wikis, S3 für PDF-Handbücher und verschiedene interne Tools. Traditionelle Keyword-Suche war für Natural-Language-Anfragen nicht ausreichend.
Lösung: AWS Bedrock Knowledge Base wurde mit mehreren Datenquellen-Konnektoren konfiguriert. Der Confluence-Adapter synchronisiert Dokumentation automatisch, während Custom-Ingestion-Pipelines PDF-Dokumente und strukturierte Datenexporte aus anderen Systemen verarbeiten.
Die Knowledge Base übernimmt:
- Automatisches Chunking und Embedding von Dokumenten
- Semantische Ähnlichkeitssuche über alle Quellen
- Quellenattribution für Antwort-Nachvollziehbarkeit
Wenn ein Nutzer eine Frage stellt, ruft das System relevanten Kontext aus allen verbundenen Quellen ab und versorgt das LLM mit umfassenden Informationen für präzise Antworten.
Herausforderung 2: Custom Database Tools
Problem: Nutzer benötigten häufig Echtzeitdaten, die nicht in der Dokumentation existieren: ihren Kontostatus, aktuelle Transaktionen, Support-Ticket-Verlauf und andere dynamische Informationen.
Lösung: Custom Tools wurden nach einem Function-Calling-Pattern implementiert. Das LLM kann diese Tools aufrufen, wenn es feststellt, dass Echtzeitdaten zur Beantwortung einer Anfrage benötigt werden.
Implementierte Tools umfassen:
- Kundensuche: Abruf von Kundenprofil und Kontodetails
- Transaktionssuche: Abfrage aktueller Transaktionen mit Filtern
- Ticket-Verlauf: Abruf von Support-Ticket-Status und -Historie
- Nutzungsstatistiken: Berechnung und Rückgabe von Nutzungsmetriken
Jedes Tool ist mit einem klaren Schema definiert, das Inputs und Outputs beschreibt und dem LLM ermöglicht zu verstehen, wann und wie es verwendet werden soll. Die Tools werden mit den Berechtigungen des authentifizierten Nutzers ausgeführt, um korrekte Zugriffssteuerung zu gewährleisten.
Herausforderung 3: Rich Response Widgets
Problem: Reine Textantworten sind unzureichend, wenn Nutzer komplexe Daten wie Kontozusammenfassungen, Transaktionsverläufe oder Systemstatistiken verstehen müssen.
Lösung: Ein Widget-System wurde entwickelt, das es dem Backend ermöglicht, strukturierte Response-Typen zusammen mit Text zurückzugeben. Das Frontend erkennt diese Widget-Typen und rendert entsprechende Visualisierungen.
Widget-Typen umfassen:
- Kundenkarte: Profilfoto, Name, Kontostatus, Schlüsselmetriken
- Transaktionstabelle: Sortierbare, filterbare Liste aktueller Transaktionen
- Stats-Dashboard: Schlüsselmetriken mit Trend-Indikatoren
- Action-Buttons: Schnellaktionen, die der Nutzer direkt aus dem Chat ausführen kann
Das Widget-System ist erweiterbar: Neue Widget-Typen können durch Definition eines Schemas im Backend und einer entsprechenden React-Komponente im Frontend hinzugefügt werden.
Bereitgestellte Kernfunktionen
Conversational AI
- Natural Language Understanding für Kundenanfragen
- Kontextbewusste Antworten unter Nutzung des Gesprächsverlaufs
- Elegante Behandlung mehrdeutiger oder unklarer Fragen
Wissensabruf
- Semantische Suche über Confluence, PDFs und andere Quellen
- Quellenangaben für Transparenz und Vertrauen
- Automatische Synchronisation der Wissensdatenbank
Echtzeit-Datenzugriff
- Kundenprofil und Kontoinformationen
- Transaktionsverlauf und -details
- Support-Ticket-Status
Rich Visualisierungen
- Kundendatenkarten mit Schlüsselinformationen
- Interaktive Datentabellen
- Statistik- und Metrikanzeigen
- Schnellaktions-Buttons
Enterprise-Integration
- SSO-Authentifizierung
- Rollenbasierter Datenzugriff
- Audit-Logging für Compliance
Ergebnisse
Verbessertes Support-Erlebnis
Der KI-Assistent transformierte die Art, wie Nutzer mit dem Kundenservice interagieren:
- Sofortige Antworten: Nutzer erhalten unmittelbare Antworten auf häufige Fragen, ohne auf menschliche Agenten zu warten
- Self-Service-Datenzugriff: Kunden können ihre eigenen Kontoinformationen, Transaktionsverläufe und Ticket-Status prüfen, ohne den Support zu kontaktieren
- Kontextuelle Hilfe: Der Assistent versteht den aktuellen Kontext des Nutzers und bietet relevante Vorschläge
Reduzierte Support-Last
Durch die Bearbeitung routinemäßiger Anfragen und Datenabfragen ermöglichte der Assistent dem Support-Team, sich auf komplexe Probleme zu konzentrieren, die menschliches Urteilsvermögen erfordern. Häufige Anfragetypen, die jetzt vollständig automatisiert sind:
- Kontostatusanfragen
- Dokumentationsabfragen
- Transaktionsklärungen
- Funktionserklärungen
Skalierbare Architektur
Das Kubernetes-Deployment stellt sicher, dass der Assistent Traffic-Spitzen ohne Degradation bewältigen kann:
- Auto-Scaling reagiert auf Nachfrage
- Stateless Design ermöglicht horizontale Skalierung
- AWS Bedrock übernimmt KI-Compute-Skalierung automatisch
Erkenntnisse
-
RAG-Qualität hängt von der Quellenqualität ab. Der Assistent ist nur so gut wie die Dokumentation, auf die er zugreifen kann. Investitionen in die Bereinigung und Organisation von Confluence-Inhalten zahlten sich in der Antwortgenauigkeit aus.
-
Tool-Design erfordert sorgfältige Abgrenzung. Jedes Tool sollte eine Sache gut machen. Übermäßig komplexe Tools sind für das LLM schwieriger korrekt zu verwenden und schwieriger zu warten.
-
Widget-Antworten benötigen graceful Degradation. Nicht jeder Client kann Rich Widgets rendern. Das System enthält immer einen Text-Fallback neben strukturierten Widget-Daten.
-
Konversationskontext ist entscheidend. Nutzer erwarten, dass sich der Assistent an frühere Gesprächsinhalte erinnert. Die Implementierung einer ordentlichen Gesprächsverlauf-Verwaltung verbesserte die Nutzerzufriedenheit erheblich.
-
Latenz-Budgets sind wichtig. Nutzer erwarten nahezu sofortige Antworten. Sorgfältige Optimierung des RAG-Retrievals und der LLM-Aufrufe war notwendig, um akzeptable Antwortzeiten zu erreichen.
Fazit
Der Aufbau eines KI-gestützten Kundenservice-Assistenten erfordert mehr als nur die Verbindung eines LLM mit einem Chat-Interface. Der echte Wert entsteht durch tiefe Integration mit bestehenden Systemen: Wissensdatenbanken mit institutionellem Wissen, Datenbanken mit Kundendaten und UI-Komponenten, die komplexe Informationen klar darstellen können.
Durch die Kombination der leistungsstarken KI-Funktionen von AWS Bedrock mit Custom Tools und Rich-UI-Widgets lieferte dieses Projekt einen Assistenten, der Nutzern tatsächlich hilft, anstatt nur generische Antworten zu liefern. Das Ergebnis ist ein Support-Erlebnis, das schneller, präziser und zufriedenstellender für Nutzer und Support-Teams ist.