2.7 KiB
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.0zu nutzen. Diese Version kennt keine Klassen für Schemata. - Lösung: Upgrade auf das moderne
google-genaiPaket (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 indevDependenciesund fehlten im Docker-Container. -> Fix: Verschieben independencies. - Ursache B (Compose): Ein Volume-Mount
- .:/apphat den im Image gebautendist-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-genaiClient. Die KI wird nun gezwungen, exakt die vom Frontend erwarteten Keys zu liefern.
3. Lessons Learned (Zusammenfassung)
- F-STRINGS SIND GIFT für Prompts.
- GOOGLE-GENAI (v1.x) ist der neue Standard. Das alte Paket nicht mehr verwenden.
- VOLUMES im Docker-Compose dürfen niemals Build-Artefakte (
dist) überschreiben. - SCHEMA ENFORCEMENT ist Pflicht, um Frontend-Crashes zu vermeiden.
Dokumentation finalisiert am 10.01.2026 nach erfolgreicher Migration.