3.5 KiB
3.5 KiB
Migration Report: Competitor Analysis Agent
Status: Jan 10, 2026 - ✅ FINAL SUCCESS
Die App ist unter /ca/ voll funktionsfähig und verfügt nun über eine "Grounded Truth" Engine (Scraping + SerpAPI). Diese Migration dauerte aufgrund einer extremen Fehlerverkettung über 5 Stunden.
🚨 Vollständige Chronik der Fehler & Lösungen
-
Problem: 404 auf
/ca/- Ursache: Der Container startete aufgrund von Syntaxfehlern nicht, was Nginx mit einem 404 (später 502) quittierte.
-
Problem:
SyntaxError: unterminated string literal(Runde 1)- Ursache: Verwendung von
f"""..."""für komplexe Prompts. - Lösung: Umstellung auf
.format(). Wichtig: Docker-Volumes synchronisierten nicht zuverlässig, was zu "Phantom-Fehlern" führte. Einbuild --no-cachewar nötig.
- Ursache: Verwendung von
-
Problem:
ImportError: cannot import name 'Schema'- Ursache: Uralte SDK-Version
google-generativeai==0.3.0inrequirements.txt. - Lösung: Umstellung auf Dictionaries, später komplettes SDK-Upgrade.
- Ursache: Uralte SDK-Version
-
Problem:
404 models/gemini-1.5-pro ... for API version v1beta- Ursache: Das alte SDK nutzte veraltete Endpunkte.
- Lösung: Migration auf das moderne
google-genaiPaket (v1.x) und Nutzung des neuengenai.Client.
-
Problem:
TypeError: unexpected keyword argument 'client_options'- Analyse: Obwohl das SDK in
requirements.txtaktualisiert wurde, installierte Docker auf der Diskstation hartnäckig eine alte Version. - Lösung: Erzwingen der Version
google-genai>=1.2.0.
- Analyse: Obwohl das SDK in
-
Problem: Das "Grounding Upgrade" & Die Syntax-Hölle (Runde 2)
- Aufgabe: Einbau von echtem Web-Scraping und SerpAPI zur Qualitätssteigerung.
- Fehler:
SyntaxError: f-string: expecting '}'in komplexen Listen-Generatoren (z.B.c_sum). - Ursache: Python 3.11 erlaubt keine geschachtelten Anführungszeichen in F-Strings, wenn diese Backslashes oder komplexe Ausdrücke enthalten.
- Lösung: RADIKALER VERZICHT auf F-Strings in allen kritischen Logik-Bereichen. Umstellung auf einfache Schleifen und
.format().
-
Problem:
unterminated string literal (detected at line 203)- Ursache: Einfache Anführungszeichen
'in Kombination mit\nwurden im Container-Kontext falsch interpretiert. - Lösung: ULTIMATIVE SYNTAX: Verwendung von Triple Raw Quotes (
r"""...""") für jeden einzelnen String, der Variablen oder Sonderzeichen enthält.
- Ursache: Einfache Anführungszeichen
🛡️ Die finale "Grounded" Architektur
- Scraping: Nutzt
requestsundBeautifulSoup, um nicht nur die Homepage, sondern auch Produkt- und Branchen-Unterseiten zu lesen. - Discovery: Findet relevante Links automatisch auf der Homepage.
- SerpAPI: Sucht via Google (
site:domain.com) nach den tiefsten Fakten, bevor die KI gefragt wird. - Logging: Jede KI-Anfrage und jede Antwort wird im
DEBUG-Level vollständig protokolliert.
Lessons Learned für die Ewigkeit
- F-STRINGS SIND VERBOTEN für Prompts und komplexe Listen-Operationen.
- TRIPLE RAW QUOTES (
r"""...""") sind der einzige sichere Weg für Strings in Docker-Umgebungen. - DUAL SDK STRATEGY: Legacy SDK für Stabilität (
gemini-2.0-flash), Modern SDK für Spezial-Features. - API KEY LOADING: Immer
/app/gemini_api_key.txtZUERST prüfen, dann Environment.
Dokumentation finalisiert am 10.01.2026 nach erfolgreicher Migration und Grounding-Implementierung.