RAG-Wissensbot auf der BTP
Worum es geht
Ein Modell – egal ob Claude, GPT oder Llama – hat ein Trainings-Schnittdatum und keine Kenntnis Ihrer internen Dokumente. Wenn Sie einen Mitarbeiter fragen, wo die Reisekostenrichtlinie steht, ein Modell ohne RAG erfindet eine Antwort, die plausibel klingt, aber falsch ist. RAG (Retrieval Augmented Generation) löst das, indem das Modell bei jeder Frage erst Ihre Quellen durchsucht, dann die Antwort daraus formuliert – mit Verweis.
Architektur
mermaid
flowchart TD
Q[User-Frage]
E[Anfrage-Embedding]
V[Vektorsuche]
F[Volltextsuche]
RR[Re-Ranking]
S[Top-5 Quellen-Snippets]
L[LLM-Call via AI Hub]
A[Antwort mit Quellen-Liste]
Q --> E
E --> V
E --> F
V --> RR
F --> RR
RR --> S
S --> L
L --> A
click Q call mmdInfo() "Die Frage des Users – kann frei formuliert sein, mehrsprachig oder umgangssprachlich. Wir behandeln sie als Suchanfrage, nicht als Kommando. Vor dem Embedding läuft optional ein Anfrage-Reformulierer, der zu kurze oder mehrdeutige Fragen verfeinert."
click E call mmdInfo() "Die Frage wird mit text-embedding-3-large in einen 3072-dimensionalen Vektor übersetzt. Dieser Vektor codiert semantische Bedeutung – ähnliche Fragen liefern ähnliche Vektoren, auch wenn sie andere Wörter benutzen. Das ist die Basis für die Vektorsuche."
click V call mmdInfo() "Die HANA Cloud Vector Engine sucht die zwanzig semantisch ähnlichsten Dokument-Chunks. Cosine-Similarity gegen alle indexierten Embeddings, in Millisekunden. Stark bei Synonymen und Umschreibungen – Reise findet auch Geschäftsreise und Travel."
click F call mmdInfo() "Klassische Volltextsuche mit BM25 in HANA. Stark bei eindeutigen Bezeichnern wie Materialnummern, IBAN, SAP-Hinweis-IDs oder Auftragsnummern. Wo Vektoren scheitern, treffen Volltext-Indexe. Beide Verfahren laufen parallel."
click RR call mmdInfo() "Ein Cross-Encoder bewertet jedes Treffer-Paar (Frage, Snippet) im Kontext und sortiert die Top-Fünf neu. Genauer als die initialen Vektor- und Volltext-Scores, aber teurer pro Vergleich. Deshalb wird Re-Ranking nur auf den ersten zwanzig Treffern angewendet."
click S call mmdInfo() "Die fünf relevantesten Quellen-Snippets – jeder mit Dokument-ID, Seitenzahl und letztem Änderungsdatum. Diese Metadaten ermöglichen klickbare Quellverweise im UI und einen Audit-Trail für Compliance."
click L call mmdInfo() "Der eigentliche LLM-Call läuft über den AI Hub auf der BTP. Das System-Prompt ist streng: Antworte NUR aus den gelieferten Quellen, bei Lücken sage 'kein Hinweis in den Quellen'. Das Modell bekommt Frage und Snippets – kein Halluzinations-Spielraum."
click A call mmdInfo() "Die finale Antwort enthält den Antworttext, eine Liste der genutzten Quellen mit klickbarem Verweis und einen Confidence-Wert. Der User kann jederzeit zur Originalquelle springen – keine Black-Box, sondern ein nachvollziehbarer Wissensdienst."
Wo Hybrid-Search den Unterschied macht
Pure Vektorsuche ist toll für semantische Treffer ("Reise" findet auch "Geschäftsreise", "Dienstreise", "Travel"). Aber sie schlägt bei eindeutigen Bezeichnern manchmal fehl – Materialnummern, IBAN, SAP-Hinweise-IDs, Auftragsnummern.
| Frage | Vektor allein | Hybrid |
|---|---|---|
| "Reisekostenpauschale" | gut | gut |
| "Material 1234567" | mittelmässig | gut |
| "SAP-Hinweis 3217098" | schlecht | gut |
| "Kunde mit IBAN CH93 0076 ..." | schlecht | gut |
| "Wie unterschieden sich A und B?" | gut | gut |
Hybrid-Search kombiniert beide Welten und re-ranked dann mit einem Cross-Encoder, der die Frage und jeden Treffer paarweise bewertet – präziser als die initiale Vektorsuche.
Quellen-Pipeline
Wissen ist nur so gut wie seine Pflege. Wir bauen die Pipeline so, dass Quellen automatisch aktualisiert werden:
1. Quellen-Inventar
Pro Wissensdomäne dokumentieren wir, welche Quellen relevant sind:
- SharePoint-Dokumentenbibliothek X
- Confluence-Space Y
- SAP-Hinweis-Datenbank für Modul Z
- Internes Wiki, betrieblich gepflegt
- SAP-Stammdaten via OData
2. Ingestion-Worker
Ein BTP-Service holt regelmässig die Quellen ab:
- Document Information Extraction für PDFs, Office-Dokumente
- Splitter zerteilt lange Dokumente in semantisch sinnvolle Chunks (300-1500 Tokens, mit 100-Token-Overlap)
- Embedder erzeugt Vektoren via AI Hub
- Indexer schreibt in HANA Cloud Vector Engine
Jeder Chunk trägt Metadaten: Quell-URL, Last-Modified, Section, Sprache, Audience (öffentlich vs. intern), Owner.
3. Lifecycle
- Versionierung: jede Wissensquelle hat eine Version. Bei
Änderung wird neu eingespielt; alte Version wird auf
supersededgesetzt, nicht gelöscht. - Veraltung: Chunks mit
last_modifiedälter als ein konfigurierbares Alter werden mit Warnflag versehen - Lösch-Pipeline: Quellen, die im Source-System gelöscht werden, werden auch im Index entfernt (sonst antwortet der Bot mit Wissen, das offiziell nicht mehr existiert)
Confidence und Halluzinations-Mitigation
Die Antwort kommt mit drei Signalen:
- Source-Coverage – wie viele der genutzten Tokens aus den Quellen-Snippets kamen vs. aus Modell-Wissen
- Citation-Density – wie häufig im Antworttext explizit auf Quellen verwiesen wird
- Self-Critique – ein zweiter Model-Call prüft die Antwort gegen die Quellen und meldet Inkonsistenzen
Bei niedrigem Score → der Bot sagt: "Keine eindeutige Antwort in den verfügbaren Quellen. Möchten Sie an die Fachstelle X weiterleiten?"
Drei reale Anwendungsbereiche
a) Onboarding-Bot für neue Mitarbeitende
Wissensbasis: HR-Richtlinien, Office-Manual, Onboarding-Checkliste, Code-of-Conduct, IT-Policies. Reduziert First-Level-Anfragen ans HR um 40-60% in den ersten 90 Tagen.
b) Field-Service-Knowledge
Wissensbasis: Service-Manuals, Hersteller-Dokumentation, frühere Service-Reports, SAP Plant Maintenance Notifications. Service- Techniker können auch ohne aktuelle Erfahrung mit einem Anlagentyp fundiert reagieren.
c) Compliance-Q&A für Fachbereiche
Wissensbasis: ISMS, Datenschutz-Richtlinie, Reise- und Spesenrichtlinie, Beschaffungsrichtlinien, FINMA-Rundschreiben (für Banken). Mitarbeitende bekommen Antworten in Sekunden statt Anrufe an die Compliance-Abteilung.
KPIs
| Kennzahl | Ziel-Korridor |
|---|---|
| Source-Hit-Rate | > 85 % |
| Halluzinations-Rate (Stichprobe) | < 3 % |
| First-Response-Latency | < 3 s P95 |
| User-Satisfaction (CSAT) | ≥ 4.3 / 5 |
| Quote der "kein Hinweis"-Antworten | 5–15 % |
| Cost-per-Query (avg) | < 0.02 CHF |
Was wir transparent halten
- Welche Quellen zur Antwort beigetragen haben (Doc-ID, Section, Last-Modified)
- Welches Modell geantwortet hat (Provider + Version)
- Welcher Region der Call durchgelaufen ist (CH / EU / US)
- Wie der Confidence-Score zustande kommt
Was wir nicht versprechen
- 100 % Halluzinations-Freiheit. Selbst mit Source-Verweisen kann ein Modell Quellen falsch interpretieren. Wir halten die Restquote unter 3% messbar.
- Sofort-Wissens-Pflege. Quellen müssen organisatorisch gepflegt werden – der Bot kann gepflegtes Wissen liefern, aber nicht Inhalte für Sie pflegen.
- Kosten-Stabilität bei beliebigem Wachstum. Vector-Storage und Re-Ranking-Calls skalieren mit Quellen und Anfragen.
Stand: 2026-05-10
