9 Punkte von GN⁺ 2024-12-25 | Noch keine Kommentare. | Auf WhatsApp teilen
  • 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

  1. Analyse der Benutzeranfrage: Relevante Informationen werden aus der Datenbank gesucht.
  2. 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

  1. Quellenlinks ergänzen: Dokumentquellen in Slack-Antworten aufnehmen.
  2. Automatisches Speichern von Slack-Threads: Aktualisierung der Datenbank über den Befehl @help-terraform-cloud 기억해줘.
  3. Automatisierte Datensynchronisierung: Wöchentliche Synchronisierung mit CloudWatch Events.
  4. Nutzung der Confluence API: Übergang vom manuellen PDF-Upload zur API-Anbindung.
  5. Mehrfachdialog-Unterstützung: Kontinuierliche Unterhaltungskontexte mit Nutzern halten.

Lernpunkte aus dem Aufbau

  1. 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.
  2. Effizienz beim PDF-Parsing:
    • Bilder wurden ausgeschlossen, textbasierte Daten konnten zuverlässig extrahiert werden.
  3. 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.

Noch keine Kommentare.