Einheit 5 / 11

Assistentenarchitektur, die mit Unternehmensdaten kommuniziert

Gewinne:

  • Entwerfen der Komponenten und des Datenflusses eines End-to-End-RAG-Assistenten für Unternehmen
  • Kombination von Daten aus mehreren Quellen (Wiki, Ticket, PDF, Datenbank) in einem einzigen Assistenten
  • Treffen Sie architektonische Entscheidungen hinsichtlich Skalierbarkeit, Caching und Latenz

In den vorherigen Einheiten haben wir die Teile nacheinander gelernt: Einbettung, Vektordatenbank, Chunking, Abrufen. Lassen Sie uns diese nun kombinieren und eine End-to-End-Architektur eines Assistenten erstellen, der mit Ihren eigenen Unternehmensdaten kommuniziert. Das Ziel besteht darin, dass ein Mitarbeiter fragt: „Was ist unsere Urlaubsregelung?“ Ein System, in dem Menschen Fragen stellen können. Die Antworten basieren auf echten internen Dokumenten und Zitaten und kombinieren mehrere Datenquellen. Diese Einheit verarbeitet die gesamte Architektur, den Datenfluss und Entscheidungen auf Produktionsebene.

End-to-End-Komponenten

Ein Unternehmens-RAG-Assistent besteht aus zwei separaten Zeilen. Die Indexierungslinie (offline) bereitet die Daten auf; Die Abfragezeile (online) beantwortet die Frage.

Komponenten der Indexierungslinie:

  1. Konnektoren: Konnektoren, die Daten aus Quellen abrufen – Wiki, Ticketsystem, Dateispeicher, Datenbank, E-Mail.
  2. Normalisierung: Konvertieren verschiedener Formate (PDF, HTML, DOCX) in sauberen Text; Kopf-/Fußzeilenreinigung.
  3. Chunking + Metadaten: Chunking und Tagging (Quelle, Datum, Autorität).
  4. Einbetten + Laden: Vektoren und Metadaten in die Vektordatenbank schreiben.

Pipeline-Komponenten abfragen:

  1. Abfragevorverarbeitung: Umschreiben, Dezentralisierung.
  2. Abruf: Hybridsuche + Metadatenfilter + Neuranking.
  3. Erstellung von Eingabeaufforderungen: Platzieren von Kontext + Frage + Anweisungen in der Vorlage.
  4. Generierung: Fundierte (kontextbezogene) Antwort aus dem Modell + Quellen.
  5. Nachbearbeitung: Zitierformatierung, Sicherheitsprüfung, Protokollierung.
Tipp: Trennen Sie die Indexierungszeile physisch von der Abfragezeile. Die Indizierung ist langsam und periodisch (wird stapelweise über Nacht ausgeführt); Die Anfrage sollte locker und unmittelbar sein. Das Mischen der beiden Zeilen erzwingt eine umfangreiche Verarbeitung, während der Benutzer wartet.

Visualisierung des Datenflusses

[INDEXIEREN – offline]Ressourcen → Normalisieren → Chunk+Metadaten → Einbetten → Vektor-DB (Wiki, Ticket, PDF, DB)[ABFRAGE – online]Benutzerfrage → Vorverarbeitung → Abruf (Hybrid+Filter+Neurankung) → Eingabeaufforderung (Kontext+Frage+Anweisung) → Modell → Antwort+Quelle → Benutzer

Kombinieren von Daten aus mehreren Quellen

In echten Unternehmen hört die Antwort nicht an einem Ort auf. „Wie kann ich einem Kunden eine Rückerstattung veranlassen?“ Die Antwort auf die Frage finden Sie sowohl im Hilfeartikel (Vorgehensweise), im Ticketverlauf (reale Beispiele) als auch im Richtlinien-PDF (Regeln). Der Assistent sollte alle in einem Pool durchsuchen.

Kritischer Punkt: Bei der Kombination von Ressourcen in einem einzigen Vektorspeicher muss jeder Shard die Metadaten „source_tour“ enthalten. Sie können sie also alle durchsuchen und bei Bedarf filtern, z. B. „Nur offizielle Policen mitbringen“. Außerdem weisen verschiedene Quellen unterschiedliche Zuverlässigkeitsgrade auf: offizielle Richtlinie > Hilfeartikel > Ticketnotiz eines Mitarbeiters. Sie können diese Priorität beim Neuranking oder bei der Eingabeaufforderung angeben.

Quelle

Inhaltstyp

Vertrauen

Aktualisierungshäufigkeit

Richtlinien-PDF

offizielle Regel

hoch

monatlich

Hilfeartikel

Vorgehensweise

mittelhoch

wöchentlich

Ticketverlauf

echte probe

mittel

Kontinuierlich

Wiki

Gemischte/aktuelle Notiz

Variabel

Kontinuierlich

Skalierbarkeit, Cache und Latenz

Bei der Produktion fallen drei Probleme auf. Latenz: Das Erlebnis verschlechtert sich, wenn der Benutzer länger als 2 Sekunden wartet. Lösung: Zeigen Sie die Antwort in Streaming-Form an – sie wird auf den Bildschirm gegossen, während das Modell schreibt. Cache: Bei häufig gestellten Fragen und sich wiederholenden Kontexten erhöht der Cache sowohl die Geschwindigkeit als auch die Kosten. Skalierung: Mit zunehmender Benutzerzahl ist es notwendig, Abruf- und Modellaufrufe horizontal skalieren zu können.

Faustregel auf der Kostenseite: Der teuerste Schritt ist in der Regel die Anzahl der Token, die an das größere Modell gehen. Daher verbessert die Reduzierung des Kontexts auf vier gute Teile durch eine Neubewertung sowohl die Qualität als auch die Kosten. Ein gängiges Design besteht darin, ein kleineres/schnelleres Modell für die einfache Klassifizierung oder Weiterleitung und ein leistungsfähigeres Modell für die endgültige Antwort zu verwenden (z. B. claude-opus-4-8).

Achtung: Richten Sie die Indizierung nicht nach dem Prinzip „Einmal machen, vergessen“ ein. Dokumente werden geändert, gelöscht, hinzugefügt. Legen Sie eine Neuindizierungsstrategie fest: Erkennen Sie geänderte Dokumente und verarbeiten Sie nur diese erneut. Der veraltete Index erzeugt eine Antwort, die aktuell erscheint, aber falsch ist.

Schwache Architektur / Starke Architektur

Schwach (einzelnes Skript, alles gemischt):

Wenn der Benutzer fragt: Lesen Sie die Dokumente in diesem Moment, schreddern Sie sie, betten Sie sie ein, durchsuchen Sie sie, beantworten Sie sie.# Problem: Die gesamte Indizierung wird für jede Frage wiederholt; Sekunden Verzögerung, # keine Quellentrennung, kein Filter, keine Aktualisierung.

Leistungsstark (Split Pipes + Metadaten + Cache + Streaming):

Indizierung: Batch-Läufe in der Nacht, Aktualisierung geänderter Dokumente. Abfrage: Lightweight Line – Vorverarbeitung → Hybrid-Abruf + Filter → Reranking → Eingabeaufforderung → Modell (Streaming) → Zitat → Protokoll. Häufig gestellte Fragen und Quellen werden zwischengespeichert.

Drei Mini-Hüllen

Fall 1 – Verwirrte Leitung, starke Verzögerung. Ein Startup hat ein Skript geschrieben, das PDFs bei jeder Frage neu verarbeitet. Jede Antwort dauerte durchschnittlich 11 Sekunden. Bei Trennung der Indexierungsleitung und vorheriger Übertragung der Daten in den Vektorspeicher verringerte sich die Abfragezeit auf 1,3 Sekunden und beim Streaming erschien das „erste Wort“ nach 400 ms.

Fall 2 – Zu viele Ressourcen, falsche Priorität. Ein Support-Assistent gab dem Richtlinien-PDF und den alten Ticketnotizen die gleiche Bedeutung; Teilweise stellte das Modell als offizielle Regel die falsche Bewertung eines Mitarbeiters von vor zwei Jahren dar. Als der Eingabeaufforderung die Metadaten „source_tour“ und die Anweisung „Offizielle Richtlinie im Falle eines Konflikts berücksichtigen“ hinzugefügt wurden, wurden Fehler mit falscher Priorität um 89 % reduziert.

Fall 3 – Veralteter Index. Ein HR-Assistent arbeitete mit einem Index, der drei Monate lang nicht aktualisiert wurde; Die Urlaubsregelung hat sich geändert, aber der Assistent sprach von den alten Zeiten. Wenn die tägliche Aktualisierung installiert wurde, die geänderte Dateien erkennt, stieg die aktuelle Antwortrate von 70 % auf 99 %.

Häufige Fehler

  • Mischen von Indizierungs- und Abfragezeilen: Während der Benutzer wartet, wird eine umfangreiche Verarbeitung durchgeführt. Die Verzögerung explodiert.
  • Der Quelltyp wird nicht in die Metadaten eingefügt: Keine Priorisierung und Filterung; Die nicht vertrauenswürdige Quelle scheint offiziell zu sein.
  • Es wird keine Aktualisierungsstrategie festgelegt: Der Index wird veraltet; Es entstehen falsche Antworten, die aktuell erscheinen.
  • Streaming überspringen: Der Benutzer sieht einen leeren Bildschirm; Die wahrgenommene Verzögerung wird hoch.
  • Bei jedem Schritt das größte Modell verwenden: Die Kosten steigen unnötig; Überlassen Sie die Lenkung dem kleineren Modell.

Zusammenfassend

  • Der Unternehmens-RAG-Assistent besteht aus zwei separaten Zeilen: Offline-Indizierung und Online-Abfrage; trennen Sie sie physisch.
  • Indizierung = Connector + Normalisieren + Chunk/Metadaten + Einbetten/Hochladen; Abfrage = Vorverarbeitung + Abruf + Eingabeaufforderung + Generieren + Nachverarbeitung.
  • Daten aus mehreren Quellen werden in einem einzigen Repository zusammengefasst, die Metadaten des Quelltyps und die Vertrauenspriorität bleiben jedoch erhalten.
  • Streaming und Cache für Latenz, Kontextdrosselung und Modellauswahl für Kosten sind entscheidend.
  • Ohne Neuindizierung wird der Index veraltet; Ändern Sie Dokumente regelmäßig neu.

Anwendungsaufgabe

Zeichnen Sie ein Architekturdiagramm eines Assistenten für Ihr eigenes Team. (1) Identifizieren Sie mindestens drei echte Datenquellen und notieren Sie für jede den Connector-Bedarf, die Aktualisierungshäufigkeit und den Vertrauensgrad. (2) Zeichnen Sie die Indizierungs- und Abfragezeilen separat mit einem Kasten-Pfeil-Diagramm. (3) „Wo kann ich in diesem Assistenten Latenz und Kosten reduzieren?“ Schreiben Sie zu der Frage mindestens zwei konkrete Entscheidungen. (4) Beschreiben Sie Ihre Aktualisierungsstrategie in einem Satz: Welche Ressource wird wie oft neu indiziert?

Checkliste

  • [ ] Ich kann die Indizierungs- und Abfragezeilen separat und mit den richtigen Komponenten zeichnen.
  • [ ] Ich kann Daten aus mehreren Quellen mit Quelltyp und Vertrauenspriorität kombinieren.
  • [ ] Ich kann Streaming-/Cache-Entscheidungen für die Latenz und Modellauswahl für die Kosten treffen.
  • [ ] Ich weiß, warum eine Neuindizierungsstrategie unerlässlich ist.
  • [ ] Ich behalte im Hinterkopf, dass der teuerste Schritt in meiner Architektur normalerweise der Token ist, der an das größere Modell geht.