Files
Brancheneinstufung2/MIGRATION_REPORT_COMPETITOR_ANALYSIS.md

2.7 KiB

Migration Report: Competitor Analysis Agent

Status: Jan 10, 2026 - FINAL SUCCESS

Die Migration ist abgeschlossen. Die App ist unter /ca/ voll funktionsfähig.

🚨 Die Odyssee: Chronologie der Fehler & Lösungen

Wir haben 4 Stunden für eine Aufgabe benötigt, die 10 Minuten dauern sollte. Hier ist das Protokoll des Scheiterns, damit es nie wieder passiert:

1. Der Python-Syntax-Albtraum (Stunde 1)

  • Fehler: SyntaxError: unterminated string literal.
  • Ursache: Verwendung von f"""...""" für Gemini-Prompts. Das Apostroph in "competitor's" oder geschweifte Klammern im JSON-Teil sprengten den String.
  • Lösung: Umstellung auf Raw Strings r"""...""" und die .format() Methode.

2. Das SDK-Versions-Dilemma (Stunde 2)

  • Fehler: ImportError: cannot import name 'Schema'.
  • Ursache: Versuch, moderne SDK-Features mit google-generativeai==0.3.0 zu nutzen. Diese Version kennt keine Klassen für Schemata.
  • Lösung: Upgrade auf das moderne google-genai Paket (v1.x) und Umstellung des gesamten Orchestrators auf den neuen Client.

3. Die 404-Falle (Stunde 2.5)

  • Fehler: Website nicht erreichbar, obwohl der Python-Server lief.
  • Ursache A (Build): Build-Tools (vite) waren in devDependencies und fehlten im Docker-Container. -> Fix: Verschieben in dependencies.
  • Ursache B (Compose): Ein Volume-Mount - .:/app hat den im Image gebauten dist-Ordner mit dem leeren lokalen Ordner überschrieben. -> Fix: Nur die Orchestrator-Datei mounten.

4. Der "Modell nicht gefunden" Fehler (Stunde 3)

  • Fehler: 404 models/gemini-1.5-pro is not found for API version v1beta.
  • Ursache: Das alte SDK nutzte veraltete Endpunkte, die die neuen 1.5/2.0 Modelle nicht sauber auflösen konnten.
  • Lösung: Vollständige Migration auf den neuen genai.Client. Dieser nutzt die stabilen API-Pfade.

5. Der finale "map of undefined" Fehler (Stunde 4)

  • Fehler: Frontend lädt, crasht aber bei der Datenanzeige.
  • Ursache: Backend lieferte target_industries (Snake Case), Frontend erwartete das Schema aber strikt so, wie es die KI ohne Schema-Zwang lieferte.
  • Lösung: Aktivierung von strikten JSON-Schemata im google-genai Client. Die KI wird nun gezwungen, exakt die vom Frontend erwarteten Keys zu liefern.

3. Lessons Learned (Zusammenfassung)

  1. F-STRINGS SIND GIFT für Prompts.
  2. GOOGLE-GENAI (v1.x) ist der neue Standard. Das alte Paket nicht mehr verwenden.
  3. VOLUMES im Docker-Compose dürfen niemals Build-Artefakte (dist) überschreiben.
  4. SCHEMA ENFORCEMENT ist Pflicht, um Frontend-Crashes zu vermeiden.

Dokumentation finalisiert am 10.01.2026 nach erfolgreicher Migration.