- Benchling betreibt seine Cloud-Infrastruktur über mehrere Regionen und Umgebungen
- Mehr als 160.000 Ressourcen werden mit Terraform Cloud verwaltet, und im Laufe eines Monats geben rund 50 Engineers Infrastrukturänderungen frei
- Es gibt umfangreiche FAQ-Dokumentation (20 Seiten) und Slack-Thread-Verläufe, aber das Problem ist die "ineffiziente Suche".
- Um dies zu lösen, wurde ein Slackbot auf Basis von RAG und LLM aufgebaut
Aufbauziel
- Entwicklung eines internen Slackbots zur Beantwortung von Terraform Cloud-Fragen in Echtzeit.
- Bereitstellung von Antworten über eine benutzerfreundliche Slack-Oberfläche durch die Kombination interner und externer Datenquellen.
- Anwendungsfälle:
- Beantwortung von HR-Fragen
- Suche nach Kunden-Problembehebungsfällen
- Erklärung von Software-Fehlercodes
Funktionsprinzip
- Analyse der Benutzeranfrage: Relevante Informationen werden aus der Datenbank gesucht.
- LLM-Prompt-Erstellung: Die Antwort wird unter Einbeziehung von Suchergebnissen und Richtlinien generiert.
Tech Stack
- RAG-Modell: Einsatz von Amazon Bedrock.
- Aufbau einer Knowledge Base mit einer OpenSearch Serverless-Datenbank.
- Antwortgenerierung mit dem Modell Claude 3.5 Sonnet v2.
Datenquellen
- Confluence: Terraform Cloud FAQ (als PDF gespeichert und in S3 hochgeladen).
- Web: Terraform Cloud- und Terraform-Dokumentation von HashiCorp.
- Slack: Threads mit bereits gelösten Terraform Cloud-Issues (POC wurde manuell zusammengestellt).
- Die Daten werden in einer Vektordatenbank gespeichert und sind bei Abfragen durchsuchbar.
Implementierungsarchitektur
- Komponenten:
- Slack App
- AWS API Gateway
- AWS Lambda (Python)
- AWS Bedrock
- OpenSearch Serverless (Vektordatenbank)
- Modellnutzung:
- Amazon Titan Text Embeddings v2 (Erstellung von Embeddings)
- Claude 3.5 Sonnet v2 (Antwortgenerierung)
Einschränkungen und Verbesserungsmöglichkeiten
Einschränkungen
- Keine Bildverarbeitung: Bildbasierte Architekturdiagramme oder Screenshots sind nicht enthalten.
- Unzureichende Terraform-Unterstützung: Derzeit unterstützt der Terraform AWS Provider keine Bedrock-Ressourcen.
Verbesserungsmöglichkeiten
- Quellenlinks ergänzen: Dokumentquellen in Slack-Antworten aufnehmen.
- Automatisches Speichern von Slack-Threads: Aktualisierung der Datenbank über den Befehl
@help-terraform-cloud 기억해줘.
- Automatisierte Datensynchronisierung: Wöchentliche Synchronisierung mit CloudWatch Events.
- Nutzung der Confluence API: Übergang vom manuellen PDF-Upload zur API-Anbindung.
- Mehrfachdialog-Unterstützung: Kontinuierliche Unterhaltungskontexte mit Nutzern halten.
Lernpunkte aus dem Aufbau
- Datenchunking-Strategie:
- Anfangs wurde eine Größe von 300 Tokens (ca. 1 Absatz) genutzt, später auf 1500 Tokens (ca. 5 Absätze), um zu lange Antworten nicht abzuschneiden.
- Effizienz beim PDF-Parsing:
- Bilder wurden ausgeschlossen, textbasierte Daten konnten zuverlässig extrahiert werden.
- Einfachheit beim Einrichten der Knowledge Base:
- Mit Amazon Bedrock ist die Einrichtung innerhalb weniger Minuten möglich.
Use Cases
- Abfrage von FAQ und Fehlercodes.
- Automatische Antwort auf wiederkehrende Fragen.
- Nutzung teamgetrennter Datensätze:
- Gesprächsverläufe, öffentliche Dokumente usw.
Sicherheitsaspekte
- Bewertung der Datenempfindlichkeit und des Risikos ungenauer Ergebnisse.
- Sicherstellung, dass das von der Organisation freigegebene Modell verwendet wird.
Fazit
- Der LLM-basierte Slackbot zeigt, dass sich Prototypen schnell entwickeln lassen.
- Durch neue technische Experimente lassen sich Effizienz und Produktivität steigern.
- Auf Basis dieses Beispiels können auch Sie LLM-basierte Tools aufbauen!
Noch keine Kommentare.