8.6 KiB
Plan: Umsetzung des "B2B Marketing Assistant" Backends
Dieses Dokument beschreibt den Plan zur Umsetzung der Backend-Logik für die React-Anwendung unter /b2b-marketing-assistant als robusten, faktenbasierten Python-Service. Das primäre Ziel ist es, die Konsistenz und Zuverlässigkeit der Analyseergebnisse durch "Grounding" (Verankerung in realen Daten) signifikant zu erhöhen.
1. Zielsetzung & Architektur
- Ziel: Transformation der reinen Frontend-Anwendung in einen Service mit einem Python-Backend, das vor jeder KI-Analyse eine solide Faktenbasis durch Web-Scraping schafft. Dadurch werden die Ergebnisse reproduzierbar und basieren auf den tatsächlichen Inhalten der Unternehmens-Website.
- Architektur: Wir replizieren den bewährten Aufbau des "Market Intelligence" Tools:
- React-Frontend: Die Benutzeroberfläche in
/b2b-marketing-assistantbleibt bestehen, wird aber von direkten KI-Aufrufen befreit. - Node.js API-Brücke (
server.cjs): Ein minimaler Express.js-Server, der Anfragen vom Frontend annimmt und an das Python-Backend weiterleitet. - Python-Orchestrator (
b2b_marketing_orchestrator.py): Das neue Herzstück, das die gesamte Logik kapselt.
- React-Frontend: Die Benutzeroberfläche in
2. Kernprozess mit "Grounding"
Der 6-stufige Prozess der App wird im Backend abgebildet, wobei die ersten Schritte fundamental geändert werden:
-
Schritt 1 (Angebot) & 2 (Zielgruppen):
- Intelligentes Scraping: Das Python-Skript crawlt die gegebene URL und sucht aktiv nach Unterseiten wie "Produkte", "Lösungen", "Branchen" etc.
- Text-Extraktion: Der relevante Inhalt dieser Seiten wird extrahiert und zu einem "Grounding-Dokument" zusammengefasst.
- KI als Extraktions-Engine: Die KI wird angewiesen, ausschließlich auf Basis dieses extrahierten Textes das Angebot und die Zielgruppen zu identifizieren und zu strukturieren. Halluzinationen werden so unterbunden.
-
Schritt 3-6 (Personas, Pains, Gains, Messages):
- Diese Schritte bauen auf den validierten, faktenbasierten Ergebnissen aus Schritt 1 & 2 auf. Die gesamte Logikkette wird dadurch stabiler und konsistenter.
3. Strategische Vision: Integration der Tools
Dieses Projekt ist der erste Schritt zur Schaffung eines einheitlichen "Strategy & Audit"-Workflows.
- Phase 1 (Aktuelles Projekt): Wir bauen den "B2B Marketing Assistant" als eigenständigen Service mit einem modularen Python-Backend.
- Phase 2 (Zukünftig): Die wiederverwendbaren Python-Module (Scraping, API-Handler etc.) werden mit dem
market_intel_orchestrator.pyzu einem einzigen, leistungsfähigen Backend verschmolzen. Der Workflow wäre dann nahtlos:- Strategie definieren: Mit dem B2B Marketing Assistant eine Tiefenanalyse eines Referenzkunden durchführen.
- Markt auditieren: Die erstellte Strategie direkt nutzen, um Lookalikes zu finden und zu bewerten.
4. Fortschritts-Log
Phase 1: Initialisierung & Planung
-
Anforderungsanalyse und Zieldefinition (Grounding, Konsistenz).
-
Architektur nach Vorbild
market-intel-backendfestgelegt. -
Diesen Schlachtplan in
b2b_marketing_assistant_plan.mderstellt. -
Aufbau der Grundstruktur: Erstellen der
b2b_marketing_orchestrator.py, derserver.cjsin/b2b-marketing-assistantund desDockerfile. -
Erstellung von
package.jsonundrequirements.txt. -
Anpassung des Frontends (
App.tsx) für die Kommunikation mit dem neuen Backend. -
Entfernen von Frontend-Dateien und -Inhalten, die nicht mehr benötigt werden (
parser.ts, Prompts ausconstants.ts). -
Implementierung der
start_generation-Logik im Python-Backend (Scraping, Grounding, initialer Gemini-Aufruf für Schritt 1). -
Implementierung der
next_step-Logik im Python-Backend (mehrstufige Gemini-Aufrufe für Schritte 2-6, Kontext-Management). -
Fehlerbehebung: Alle Python-Syntaxfehler (Encoding, Strings) behoben.
-
Validierung: Das Tool lädt das Frontend und führt das Web-Scraping erfolgreich durch.
-
API-Fix: Umstellung auf Gemini v1 API und Modell
gemini-2.5-flash(1M Token Context).
Phase 2: Validierung & Optimierung (Abgeschlossen)
-
Docker-Container gebaut und gestartet.
-
Zugriff auf die UI über Port 3004 erfolgreich.
-
Grounding Upgrade: Umstellung von Plain-Text auf "Sanitized HTML" (H1-H6, Links erhalten) für präzise Produkterkennung.
-
Kontext-Erweiterung: Entfernung des 30.000 Zeichen Limits für vollständige Website-Analyse.
-
Robustheit: Implementierung von Retry-Logik (Exponential Backoff) und Timeout-Erhöhung (600s) für komplexe Analysen.
-
Frontend Fixes:
-
Robuster "Copy Table" Button (Fallback für Non-HTTPS).
-
PDF-Export optimiert (Landscape, keine Scrollbalken).
-
"Schritt 6 Wiederholen"-Funktion eingebaut.
-
-
Prozess-Optimierung: Schritt 6 fokussiert nun automatisch auf die Top-Branche, um Token-Limits und Lesezeit zu optimieren.
-
Logging: Detailliertes File-Logging (
Log_from_docker) für Prompts und Antworten implementiert.
5. Deployment & Betrieb (Konsolidierte Architektur)
Die Anwendung ist nun vollständig in die zentrale Docker-Compose-Architektur des Projekts integriert. Das separate Bauen und Starten einzelner Container ist nicht mehr notwendig.
Zentraler Start via Docker Compose
Der gesamte Anwendungs-Stack (Proxy, Dashboard, B2B Assistant, Market Intelligence) wird über die docker-compose.yml-Datei im Hauptverzeichnis des Projekts verwaltet und gestartet.
- Navigieren Sie in das Projekt-Hauptverzeichnis.
- Starten Sie alle Dienste:
Der
docker-compose up -d --build--build-Parameter sorgt dafür, dass alle Docker-Images neu erstellt werden. Dies ist bei Änderungen am Frontend (App.tsx), an denDockerfilen oder denrequirements.txt/package.jsonnotwendig.
Zugriff
- Das zentrale Dashboard ist unter
http://<Server-IP>:8090erreichbar. - Der B2B Marketing Assistant ist direkt über das Unterverzeichnis
http://<Server-IP>:8090/b2b/zugänglich. - Der Zugang ist durch Basic Authentication geschützt (Benutzer:
admin, Passwort:gemini).
Entwicklung (Sideloading)
Für eine schnelle Entwicklung ist "Sideloading" für die Python-Logik aktiviert. Das bedeutet, die b2b_marketing_orchestrator.py wird als Volume in den Container gemountet.
- Nach Änderungen am Python-Skript: Ein einfacher Neustart des Containers genügt, um die Änderungen zu übernehmen. Ein kompletter Rebuild ist nicht erforderlich.
docker-compose restart b2b-app
6. Roadmap: Nächste Erweiterungen
Priorität 1: Integration der SQLite-Datenbank (Portierung)
-
Status: Technologie bereit (aus Market Intelligence v2.2). Muss nun auf den B2B Assistant übertragen werden.
-
Backend: Kopieren von
market_db_manager.pyin den B2B-Container. -
API: Erweiterung der
b2b-marketing-assistant/server.cjsum die DB-Routen (/projects,/save-project). -
Frontend: Implementierung des "Load History" Modals und Auto-Save in
b2b-marketing-assistant/App.tsx. -
Ziel: Einheitliche Persistenzschicht für beide Tools.
Priorität 2: Asset Factory (Schritt 7)
-
UI: Neuer Bereich "Assets generieren" nach Abschluss von Schritt 6.
-
Funktion: Auswahl einer Persona und eines Formats (z.B. "LinkedIn Vernetzungsanfrage", "Cold Mail Sequenz").
-
Output: Generierung von Copy-Paste-fertigen Texten basierend auf den Painpoints/Gains der Analyse.
-
Export: Als separater "Marketing Kit" Download oder Anhang im Markdown.
Priorität 3: Erweiterung des Finalen Reports [ABGESCHLOSSEN]
-
Status: Vollständig in den Workflow integriert.
-
Search Strategy Beschreibung ICP: Detaillierte Profile werden generiert.
-
Digital Signals: Konkrete Signale (Technographic, Growth, Strategy) identifiziert.
-
Target Pages: Relevante URLs für die Akquise im Report gelistet.
Status: Produktionsbereit (Version 2.2)
Das System ist nun hochgradig robust und bietet volle Transparenz sowie Persistenz.
-
Grounding (HTML-Parsing) & Gemini 2.5 Flash / Pro
-
Robustheit (Nginx Timeouts 600s, Scraping Fallback "Digital Footprint Mode")
-
Persistenz (SQLite DB für alle Projekte)
-
UI-Optimierung (History Modal, On-Demand Outreach Generation)
-
Logging (Detailliertes Trace-Logging im Container)