Erstellen Sie eine Chatbot-Wissensdatenbank durch das Scrapen einer Website: Crawlen, Chunking, Zitieren

Ein Support-Bot ist nur so gut wie das, womit er gefüttert wird. Richten Sie ihn auf Ihre eigene Website aus – Dokumentationen, FAQs, Hilfecenter – indem Sie sie crawlen, in sauberes Markdown umwandeln und in Chunks für die Abfrage aufteilen. Hier ist die Pipeline, die Antworten fundiert und zitiert hält.

Ein Support-Chatbot ist nur so gut wie das, womit er gefüttert wird, und das Beste, womit man ihn füttern kann, ist in der Regel die eigene Website – die Dokumentationen, FAQs und Hilfecenter-Artikel, die Sie bereits pflegen. Der Haken ist, dass ein Bot eine Website nicht so lesen kann wie ein Mensch; er benötigt sauberen, gechunkten, abrufbaren Text mit der Quelle an jedem Stück. Diese Anleitung ist die vollständige Pipeline: Crawlen Sie die Seite zu Markdown, chunken Sie sie, betten Sie sie in einen Vektorspeicher ein und rufen Sie zitierten Kontext zur Abfragezeit ab – eine fundierte Wissensdatenbank, die genau bleibt, während sich Ihre Website ändert.

Warum RAG, nicht ein Fine-Tune

Sie könnten ein Modell auf Ihren Inhalt feinabstimmen, aber für einen Support-Bot ist das das falsche Werkzeug: Das Neutrainieren ist langsam, teuer und veraltet in dem Moment, in dem Sie ein Dokument bearbeiten. Retrieval-augmented generation (RAG) hält das Wissen außerhalb des Modells – chunken Sie Ihren Inhalt, betten Sie ihn ein, und rufen Sie zur Fragezeit die relevantesten Stücke ab und geben Sie sie dem Modell als Kontext. Aktualisieren Sie ein Dokument, crawlen Sie es erneut, und das Wissen des Bots aktualisiert sich damit. Die Nachfrage ist real: Der Chatbot-Markt soll bis 2030 mit einer CAGR von 23,3 % wachsen, eine KPMG-Studie ergab, dass 69 % der Menschen bereits Chatbots nutzen, und eine Stanford- und MIT-Studie mit 5.179 Support-Mitarbeitern ergab einen durchschnittlichen Produktivitätsanstieg von 14 % durch generative KI-Unterstützung – 35 % für die neuesten Mitarbeiter.

Schritt 1: Crawlen Sie die Seite zu sauberem Markdown

Das Füttern von rohem HTML in eine RAG-Pipeline vergiftet sie mit Navigation, Cookie-Bannern und Skript-Tags. Crawlen Sie stattdessen direkt zu Markdown – es bewahrt Überschriften, Listen und Tabellen, während es das Präsentationsrauschen entfernt, was genau das ist, was ein LLM am besten aufnimmt. Eine Scraper API mit einem Crawl-Modus durchläuft die Seite und gibt jede Seite als sauberes Markdown zurück:

import requests

resp = requests.post(
    "https://api.quantumproxies.io/crawl",
    json={"url": "https://docs.example.com", "limit": 300, "format": "markdown"},
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    timeout=120,
)
pages = resp.json()["pages"]  # each: {"url": ..., "markdown": ...}

Das Crawlen Ihrer eigenen Seite ist unkompliziert; das Crawlen von Dokumenten hinter Geo- oder Ratenbeschränkungen ist der Punkt, an dem das Routing über die richtigen IPs wichtig wird, damit das Crawlen abgeschlossen wird, anstatt auf halbem Weg zu stocken. Markdown-first ist das gleiche Prinzip wie beim Füttern von LLMs mit frischen Webdaten.

Schritt 2: Chunking nach Überschrift, Quelle behalten

Betten Sie keine ganzen Seiten ein – die Abfrage funktioniert am besten mit fokussierten Chunks. Teilen Sie jede Seite an ihren Überschriften auf, sodass jeder Chunk ein kohärentes Thema ist, und führen Sie die Quell-URL an jedem mit, damit Sie sie später zitieren können. Hier zahlt sich auch ein gutes Quelldokument aus: Artikel mit klaren Überschriften, einer Idee pro Chunk, und Fragen, die im Text wiedergegeben werden, chunking viel besser als eine Textwand (ein Bot kann keinen Kontext ableiten, den ein Mensch verstehen würde):

def chunk_markdown(md, source_url):
    chunks, cur = [], {"heading": "", "text": ""}
    for line in md.splitlines():
        if line.startswith("#"):
            if cur["text"].strip():
                chunks.append({**cur, "source": source_url})
            cur = {"heading": line.lstrip("# ").strip(), "text": ""}
        else:
            cur["text"] += line + "\n"
    if cur["text"].strip():
        chunks.append({**cur, "source": source_url})
    return chunks

all_chunks = [c for p in pages for c in chunk_markdown(p["markdown"], p["url"])]
RAG-Pipeline, die eine Website in einen Support-Bot verwandelt: Crawlen zu Markdown, Chunking nach Überschrift, Einbetten in eine Vektordatenbank, Abrufen und Zitieren
Rufen Sie zitierte Chunks zur Abfragezeit ab, anstatt die gesamte Website in den Prompt zu stopfen – fundiert und überprüfbar.

Schritt 3: Einbetten, speichern und mit Zitaten abrufen

Betten Sie jeden Chunk in einen Vektor ein und fügen Sie ihn in eine Vektordatenbank mit der Quell-URL als Metadaten ein. Zur Abfragezeit betten Sie die Frage des Benutzers ein, ziehen die besten Übereinstimmungen heraus und geben deren Text dem Modell als Kontext – und zeigen die Quelllinks an, damit die Antwort überprüfbar ist, nicht eine Blackbox:

# index each chunk with its source as metadata
for c in all_chunks:
    vec = embed(c["heading"] + "\n" + c["text"])
    index.upsert(id=uid(c), values=vec,
                 metadata={"source": c["source"], "text": c["text"]})

# at query time: retrieve, ground, and cite
hits = index.query(embed(user_question), top_k=4)
context = "\n\n".join(h.metadata["text"] for h in hits)
citations = list({h.metadata["source"] for h in hits})
answer = llm(f"Answer using only this context:\n{context}", question=user_question)

Das Modell im abgerufenen Kontext zu verankern – und ihm zu sagen, dass es nur aus diesem Kontext antworten soll – verhindert, dass ein Support-Bot selbstbewusst Richtlinien erfindet. Die Zitate erfüllen eine doppelte Funktion: Sie ermöglichen es den Benutzern zu überprüfen, und sie ermöglichen es Ihnen zu erkennen, wann der Bot nach dem falschen Dokument greift. Für die tieferen Mechaniken geht unser Leitfaden zu RAG-Pipelines, die nicht veraltet sind, weiter auf Chunking und Abfrage ein.

Schritt 4: Aktualisieren, oder es verrottet

Eine Wissensdatenbank ist ein lebendiges Ding. Dokumente werden umgeschrieben, Preise ändern sich, neue Artikel erscheinen – und ein Bot, der aus dem Crawl des letzten Monats antwortet, gibt falsche Antworten mit voller Überzeugung. Planen Sie einen erneuten Crawl, vergleichen Sie jede Seite mit ihrer letzten Version und betten Sie nur das neu ein, was sich geändert hat, damit die Aktualisierung günstig bleibt. Halten Sie ein Abrufdatum auf jedem Chunk, damit Sie immer wissen, wie aktuell die Quelle der Antwort ist. Wenn Sie lieber einen verwalteten, immer aktuellen Feed konsumieren möchten, anstatt den Crawl und die Aktualisierung selbst durchzuführen, kümmert sich Webdaten für LLMs um die Sammlung.

Statistiken zu Wissensdatenbank-Chatbots: 23,3 % Markt-CAGR, 69 % der Menschen nutzen Chatbots, und 14-35 % Produktivitätssteigerungen im Support
Der Wandel hin zu Support-Bots ist in vollem Gange; eine fundierte, zitierte Wissensdatenbank ist das, was einen vertrauenswürdig macht.

Crawlen Sie jede Seite zu sauberem Markdown für Ihren Bot

Häufig gestellte Fragen

Wie erstelle ich eine Chatbot-Wissensdatenbank aus einer Website?

Crawlen Sie die Seite zu sauberem Markdown, teilen Sie jede Seite in Überschrift-basierte Chunks mit der Quell-URL auf, betten Sie die Chunks in eine Vektordatenbank ein, und rufen Sie zur Abfragezeit die relevantesten Chunks ab, um die Antwort des Modells zu fundieren. Planen Sie einen erneuten Crawl, um sie aktuell zu halten. Dieser RAG-Ansatz bedeutet, dass das Bearbeiten eines Dokuments das Wissen des Bots ohne Neutrainieren aktualisiert.

Muss ich ein Modell auf meinen Inhalt trainieren?

Nein – und für einen Support-Bot sollten Sie das nicht. Fine-Tuning ist langsam, teuer und veraltet, sobald sich Ihr Inhalt ändert. Retrieval-augmented generation hält das Wissen in einem Vektorspeicher außerhalb des Modells, sodass der Bot immer aus dem aktuellen Crawl antwortet. Sie müssen nur erneut crawlen und einbetten, wenn sich der Inhalt ändert, was weit günstiger ist als Neutrainieren.

Warum zu Markdown crawlen statt zu HTML?

Rohes HTML enthält Navigation, Werbung, Cookie-Banner und Skripte, die Rauschen hinzufügen und Ihr Einbettungsbudget verschwenden. Markdown bewahrt die sinnvolle Struktur – Überschriften, Listen, Tabellen – während es die Präsentationsebene entfernt, was LLMs am saubersten aufnehmen. Sauberer Input bedeutet relevantere Abfrage und weniger verwirrte Antworten. Bots können auch keine Bilder oder Videos lesen, daher sollten Sie wichtige Informationen im Text halten.

Wie halte ich die Wissensdatenbank aktuell?

Planen Sie regelmäßige erneute Crawls, erkennen Sie, welche Seiten sich geändert haben, und betten Sie nur diese erneut ein – vollständige erneute Crawls verschwenden Bandbreite und Rechenleistung. Speichern Sie ein Abrufdatum auf jedem Chunk, damit Sie sehen können, wie aktuell die Quelle einer Antwort ist, und versionieren Sie den Index, damit Sie zurückgehen können, wenn ein schlechter Crawl die Abfrage verschlechtert. Inkrementelle Aktualisierung hält die Kosten proportional zur tatsächlichen Änderung.

Die Pipeline ist hier das Produkt: Crawlen zu Markdown, Chunking nach Überschrift, Einbetten mit Quellen, Abrufen und Zitieren, dann nach einem Zeitplan aktualisieren. Tun Sie das, und Ihr Support-Bot antwortet aus Ihrem echten Inhalt, verlinkt seine Quellen und bleibt aktuell, während sich Ihre Website entwickelt – der Unterschied zwischen einem Bot, dem die Leute vertrauen, und einem, den sie umgehen lernen. Um einem KI-Agenten Live-Zugriff auf dieselben Daten über eine Standard-Schnittstelle zu geben, sehen Sie unseren Leitfaden zum QuantumProxies MCP-Server.

Füttern Sie Ihren Bot mit immer aktuellen Webdaten