Blitzschneller RAG-Chatbot

stolberg avatar
stolberg
Cover for Blitzschneller RAG-Chatbot

Wie wir einen blitzschnellen RAG-Chatbot mit Cloudflare gebaut haben (und warum das wichtig ist)

Bei Blocksoft werden wir ständig gefragt, wie wir so schnell modernste KI-Lösungen liefern. Heute lüften wir das Geheimnis hinter unserer neuesten internen Innovation – einem vollständig am Edge bereitgestellten Retrieval-Augmented Generation (RAG) Knowledge-Chatbot, komplett mit dem Cloudflare-Ökosystem gebaut: Pages, Workers AI, Vectorize und D1.

Hier ist unser Weg – von der Idee und Architektur bis zum Deployment, inklusive Lessons Learned und Profi-Tipps.


🚀 Die Herausforderung

Wir wollten einen intelligenten Assistenten bauen, der:

  • Präzise, halluzinationsfreie Antworten zu unseren Services liefert.
  • Strikt alle Compliance-Vorgaben einhält (z. B. Filterung von Telefonnummern).
  • Ultra-niedrige Latenz erreicht – besonders wichtig für unsere europäischen Kunden.
  • Nahtlos in unseren bestehenden Entwicklungs-Workflow passt: Commit, Push, Deploy.

🔧 Unser Tech-Stack

KomponenteTechnologieWarum wir sie gewählt haben
Vektor-StoreCloudflare VectorizeBlitzschnelle Embedding-Abfragen am Edge
EmbeddingsWorkers AI (bge-base-en)Voll integriert, keine externen API-Calls
Strukturierte DatenCloudflare D1Verwalten dynamischer “Lore”, Logs, Backups effizient
Edge RuntimeCloudflare Pages FunctionsSofortige Antwortzeiten, keine Cold-Starts
CI/CDGitHub Actions → Cloudflare PagesAutomatisiert, zuverlässig, sofort reversibel
FrontendAstro + ReactModernes, skalierbares Frontend mit Streaming-UI

Alle Cloudflare-Bindings werden über wrangler.toml verwaltet – mehr dazu unten.


🧠 Das Training der KI: Unser Ingestion-Workflow

  1. Single-Source Content Management
    Wissensartikel liegen als strukturierte JSON (blocksoft_playbook.json) vor. Autoren können Inhalte ohne Entwicklerhilfe aktualisieren.

  2. Intelligente Chunking-Strategie
    Unser Custom-Tool teilt Artikel in ca. 500-Token-Slices, optimiert die Metadaten-Größe für reibungslose Vectorize-Ingestion.

  3. Effizienter Bulk-Import
    Unser Ingestion-Skript:

// Embedding erzeugen und speichern
async function processContent(text, metadata) {
  const embedding = await aiService.createEmbedding(text);
  await vectorDB.storeVector(embedding, metadata);
}

Jeder Chunk wird gleichzeitig in Cloudflare D1 gesichert.

  1. Continuous Integration
    Inhalts-Updates triggern automatisierte GitHub Actions, die Embeddings bei jedem Commit sofort aktualisieren.

💬 Natürliche Konversation: Dynamische Lore & Prompt Engineering

Statt statischer Prompts lädt unser Chatbot dynamisch Konversations-”Lore” aus Cloudflare D1:

CREATE TABLE lore (
  id TEXT PRIMARY KEY,
  content TEXT NOT NULL,
  created_at TEXT,
  updated_at TEXT
);

Zur Laufzeit:

  • Holt der Chatbot dynamische Lore aus D1
  • Führt semantische Suche aus
  • Generiert kontextreiche Prompts
  • Streamt Antworten via OpenRouter LLM

Anpassungen am Ton oder an Richtlinien sind nahtlos – direkt per SQL, ohne Redeployment.


📊 Effiziente Logging-Strategie

Wir setzen ein Zwei-Ebenen-Logging ein:

  • Detaillierte Chat-Logs: Granulares Tracking für Analysen
  • Snapshot-Konversationslogs: Sitzungszusammenfassungen (maximal 500 Zeichen) für sofortiges Monitoring

Archivierung in Cloudflare R2 sorgt für Compliance und Skalierbarkeit.


🛡️ Sicherheit und Nutzererlebnis

  • Cloudflare Turnstile: Unsichtbares CAPTCHA schützt APIs mühelos.
  • RegEx-basierte Filter: Sensible Infos wie Telefonnummern werden immer bereinigt.
  • Instant Response Streaming: Nutzer erleben nahezu sofortige Antworten (unter 200ms Latenz).

⚙️ Deployment-Magie: Unser GitHub-Actions-Workflow

Automatisierte Deployments laufen bei jedem Commit nahtlos ab:

name: Deploy RAG Chatbot

on:
  push:
    branches: [main, master]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
      - run: npm ci
      - run: npm run build
      - run: npm run setup-rag
      - run: npx wrangler d1 migrations apply DB --remote
      - name: Deploy to Cloudflare Pages
        uses: cloudflare/pages-action@v1
        with:
          apiToken: CLOUDFLARE_API_TOKEN_PLACEHOLDER

Kritische Zugangsdaten landen nie im Code – alles wird sicher über GitHub-Secrets verwaltet.


🗃️ Entwicklung in Echtzeit: Schnelle Iteration

Unsere agile Commit-Historie – Titel wie “rag_11_improved_formatting” und “cf fix 19” – spiegelt unseren iterativen, feedbackgetriebenen Ansatz wider. Schnelle Deployments bedeuteten sofortiges QA-Feedback und ermöglichten es uns, den Chatbot in Echtzeit zu optimieren.


💡 Lessons Learned

  • Chunk-Größe ist entscheidend: Die richtige Chunk-Größe verhindert Ingestion-Probleme und erhöht die Genauigkeit.
  • Dynamische Lore ist mächtig: Prompts in D1 zu speichern gibt Produktmanagern Flexibilität ohne Entwickleraufwand.
  • Edge-Integration gewinnt: Wenn alle Komponenten (Embedding, Vektoren, SQL, JS) bei Cloudflare laufen, sinken Latenz und Betriebskosten drastisch.
  • Zwei-Ebenen-Logs: Sorgen für umfassende Analysen ohne Performance-Einbußen.
  • Automatisierung ist essenziell: Git-gesteuerte Deployments verhindern Fehler und machen Abläufe effizient.

🚧 Was kommt als Nächstes?

Wir bauen unsere Fähigkeiten aktiv weiter aus:

  • Integration mit Enterprise-SSO-Systemen für sichere Authentifizierung
  • Mehrsprachige Unterstützung für internationale Kunden
  • Erweiterte Personalisierung basierend auf Nutzerverhalten

Haben Sie Fragen zu unserem Ansatz oder möchten Sie mehr über RAG-Chatbots erfahren? Kontaktieren Sie uns - wir helfen gerne weiter!