Schlagwort: Vector Database

  • Einen Marketing-Kritiker in die Hosentasche packen: Wie ich Oliver Voss als KI-Chatbot klonte

    Überblick

    Jeder in der Marketing-Bubble kommt irgendwann an Oliver Voss nicht vorbei. Auf Instagram bewertet er Plakate und Werbung auf eine Art und Weise, die einzigartig ist – direkt, fachkundig und mit einer Prise Humor, die Marketer entweder lieben oder hassen.

    Genau diese unique Art und Weise in einem Spaßprojekt synthetisch mit KI herzustellen, war die Idee dahinter. Das Ergebnis ist ein hyperpersonalisierter Chatbot, der auf den gesamten Instagram-Content von Oliver Voss zurückgreifen kann und sowohl auf Fragen antwortet als auch proaktiv Werbematerialien bewertet – als hätte man einen persönlichen Marketing-Kritiker in der Hosentasche.

    Was der Chatbot kann

    Der Bot arbeitet intelligent kontextabhängig: Je nachdem, welchen Input der User liefert, trifft das System selbstständig die Entscheidung, wie es agieren soll. Stellt man eine Frage wie „Was hat dir am letzten DM-Plakat nicht gefallen?“, zieht es relevante Transkripte aus der Vektordatenbank heran und antwortet basierend auf tatsächlichen Bewertungen. Lädt man hingegen ein Plakat-Layout hoch, wechselt es in den Bewertungsmodus und gibt direktes Feedback zu Headline, Bildaufteilung, Farbwahl – mit genau der Tonalität, die Oliver Voss ausmacht.

    Diese Entscheidungslogik wird übrigens in Langfuse getrackt, sodass nachvollziehbar ist, welche Aktionen das Modell wann und warum ausführt. Das Ganze funktioniert sowohl für Text als auch für Bilder. Werbetexte, Social-Media-Posts, komplette Kampagnen – alles kann bewertet werden. Und natürlich mit der gewissen Humorfarbe, die das Original auszeichnet.

    Technische Architektur

    Die Plattform ist eine Next.js-App, die API-Anfragen an OpenAI schickt. Im Hintergrund arbeitet GPT-4o als Hauptmodell. Die eigentliche Magie liegt aber nicht im LLM selbst, sondern in der Datenpipeline, die dafür sorgt, dass der Bot tatsächlich wie Oliver Voss denkt und argumentiert.

    Data Scraping und mehrstufige Aufbereitung

    Phase 1: Content-Extraktion mit n8n

    Der erste Schritt war die Extraktion aller relevanten Daten vom Instagram-Account. Über einen Scraper wurden Videos, Bilder, Captions und alle verfügbaren Metadaten geladen. Diese Rohdaten mussten dann in eine Form gebracht werden, die für die Vektorisierung geeignet ist.

    Phase 2: Intelligente Content-Verarbeitung

    Die Aufbereitung erfolgte mehrstufig über n8n-Workflows. Im ersten Schritt wurden Videos transkribiert – Oliver Voss\‘ Content ist primär video-basiert, und die gesprochenen Worte sind das Herzstück seiner Bewertungen. Aus diesen Transkripten wurden im zweiten Schritt Zusammenfassungen mit Key Takeaways erstellt. Das reduziert nicht nur die Datenmenge, sondern destilliert die wichtigsten Aussagen heraus.

    Phase 3: Marken- und Tag-Erkennung

    Ein kritischer Aspekt für spätere Suchanfragen: Welche Marke wird im Video bewertet? Es wurde geprüft, ob ein Markenname im Transkript oder in der Zusammenfassung erkennbar war. Sollte kein Name genannt worden sein, wurden Screenshots aus dem Video analysiert, um Logos oder Markennamen visuell zu identifizieren. Erst wenn auch das fehlschlug, wurde einfach keine Marke hinterlegt.

    Zusätzlich wurde ein Tag-System implementiert, das sich aus Beschreibungen und Zusammenfassungen automatisch Tags extrahiert hat – etwa „Plakat“, „Social Media“, „Print“, „Headline“, „Bildsprache“ etc. Diese Tags ermöglichen später präzisere Suchen in der Vektordatenbank.

    Phase 4: Strukturierte Datentabelle

    Am Ende dieser Pipeline stand eine umfassende Datentabelle mit Transkripten, Zusammenfassungen, Marken, Tags und Metadaten. Diese strukturierte Grundlage war entscheidend für die nächste Phase: die Vektorisierung.

    Vektorisierung mit semantischer Segmentierung

    Die Transkripte und Zusammenfassungen wurden in eine selbst gehostete Open-Source-Vektordatenbank überführt. Dabei wurde nicht einfach nach fixen Token-Längen abgeschnitten – ein häufiger Fehler bei RAG-Systemen. Stattdessen erfolgte eine semantische Segmentierung: Absätze wurden logisch getrennt, sodass zusammenhängende Gedankengänge nicht mittendrin abgeschnitten werden.

    Die Metadaten – Marken, Tags, Video-IDs – wurden direkt in die Vektorisierung integriert. Das ermöglicht später hybride Suchen: Man kann sowohl semantisch suchen („Wie bewertet er Headlines?“) als auch strukturiert filtern („Zeig mir alle Bewertungen zu McDonald\’s“).

    Diese Vektordatenbank wurde dann als Tool dem LLM über die OpenAI API zur Verfügung gestellt. Das bedeutet: GPT-4o kann bei Bedarf eigenständig entscheiden, ob es Suchen in der Vektordatenbank durchführen muss, und die relevantesten Inhalte für seine Antwort heranziehen.

    Prompt Engineering und Iterative Optimierung

    Ein hyperpersonalisierter Chatbot steht und fällt mit dem Prompt. Es reicht nicht, einfach zu schreiben „Antworte wie Oliver Voss“ – die Tonalität, der Humor, die fachlichen Schwerpunkte müssen präzise definiert werden.

    Das Prompt Engineering lief über Langfuse, das zentrale Prompt-Management ermöglicht. Versionierte Prompts mit vollständiger Historie machten es möglich, verschiedene Formulierungen zu testen und iterativ zu optimieren. Welche Systemprompt-Variante führt zu den authentischsten Antworten? Wie viel Kontext braucht das Modell? Wann sollte es proaktiv nachfragen?

    LLM as a Judge: Automatisierte Qualitätssicherung

    Hier wird es besonders interessant: Um die Antwortqualität systematisch zu bewerten, wurde ein „LLM as a Judge“-Prinzip implementiert. Ein kleineres, spezialisiertes Modell prüft die Antworten des Chatbots anhand konkreter Kriterien:

    • Entspricht die Tonalität dem Original?
    • Sind die fachlichen Aussagen korrekt und relevant?
    • Wird auf die Nutzerfrage präzise eingegangen?
    • Ist die Antwort weder zu kurz noch zu ausschweifend?

    Jede Antwort erhält einen Score. Die besten Antworten wurden herausgefiltert und dienten als Benchmark für weitere Optimierungen. Dieses automatisierte Feedback-System ist deutlich skalierbarer als manuelle Reviews und ermöglicht kontinuierliche Verbesserung.

    Performance-Monitoring mit Langfuse

    Jede Chatnachricht, die vom Nutzer abgeschickt wird, wird in Langfuse erfasst. Das schafft vollständige Transparenz darüber, wie die KI sich verhält:

    • Wie lange dauert eine Antwort insgesamt?
    • Wie lange dauert ein Tool Call zur Vektordatenbank?
    • Welche Metadaten wurden für die Suche verwendet?
    • Wie viele Tokens wurden verbraucht?
    • Welche Prompt-Version wurde verwendet?

    Diese Metriken sind nicht nur für Debugging wertvoll, sondern auch für strategische Optimierungen. Wenn Vektorsuchen zu lange dauern, liegt das am Query-Embedding oder an der Datenbank-Konfiguration? Wenn Antworten zu lang sind, liegt es am Modell oder am Prompt?

    Das Performance-Monitoring ermöglicht datengetriebene Entscheidungen statt Bauchgefühl.

    Deployment auf Vercel

    Die gesamte App wurde auf Vercel deployed, was nahtlose Integration mit dem Next.js-Framework bietet. Automatische Deployments bei jedem Push, Edge Functions für niedrige Latenz und einfaches Umgebungsvariablen-Management machen Vercel zur idealen Plattform für diesen Use Case.

    Was das Projekt zeigt

    Auf den ersten Blick ist es ein Spaßprojekt. Auf den zweiten Blick ist es ein vollständiges RAG-System mit mehrstufiger Datenpipeline, semantischer Vektorisierung, automatisierter Qualitätssicherung und umfassendem Performance-Monitoring.

    Die Herausforderung lag nicht darin, einen generischen Chatbot zu bauen – das kann jeder mit der OpenAI API in einer Stunde. Die Herausforderung lag darin, einen Chatbot zu bauen, der tatsächlich wie eine spezifische Person denkt, argumentiert und bewertet. Das erfordert sorgfältige Datenaufbereitung, intelligente Vektorisierung und präzises Prompt Engineering.

    Und genau das macht das Projekt zu einem spannenden Showcase für hyperpersonalisierte KI-Systeme.