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
Komponente | Technologie | Warum wir sie gewählt haben |
---|---|---|
Vektor-Store | Cloudflare Vectorize | Blitzschnelle Embedding-Abfragen am Edge |
Embeddings | Workers AI (bge-base-en) | Voll integriert, keine externen API-Calls |
Strukturierte Daten | Cloudflare D1 | Verwalten dynamischer “Lore”, Logs, Backups effizient |
Edge Runtime | Cloudflare Pages Functions | Sofortige Antwortzeiten, keine Cold-Starts |
CI/CD | GitHub Actions → Cloudflare Pages | Automatisiert, zuverlässig, sofort reversibel |
Frontend | Astro + React | Modernes, skalierbares Frontend mit Streaming-UI |
Alle Cloudflare-Bindings werden über wrangler.toml verwaltet – mehr dazu unten.
🧠 Das Training der KI: Unser Ingestion-Workflow
Single-Source Content Management
Wissensartikel liegen als strukturierte JSON (blocksoft_playbook.json) vor. Autoren können Inhalte ohne Entwicklerhilfe aktualisieren.Intelligente Chunking-Strategie
Unser Custom-Tool teilt Artikel in ca. 500-Token-Slices, optimiert die Metadaten-Größe für reibungslose Vectorize-Ingestion.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.
- 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!