feat(notion): Implement relational Competitive Radar import

- Added import_relational_radar.py for bidirectional database structure in Notion.
- Added refresh_references.py to populate analysis data with grounded facts via scraping.
- Updated documentation for Competitive Radar v2.0.
This commit is contained in:
2026-01-11 11:57:43 +00:00
parent 193c9b9539
commit e1b6a0ad5c
5 changed files with 482 additions and 11 deletions

View File

@@ -69,12 +69,15 @@ Die App ist unter `/ca/` voll funktionsfähig und verfügt nun über eine "Groun
* **Map-Reduce:** Statt eines Riesen-Prompts werden Konkurrenten parallel einzeln analysiert. Das skaliert linear.
* **Logging:** Ein spezieller `log_debug` Helper schreibt direkt in `/app/Log_from_docker`, um Python-Logging-Probleme zu umgehen.
### Lessons Learned für die Ewigkeit
### 📊 Relationaler Notion Import (Competitive Radar v2.0)
Um die Analyse-Ergebnisse optimal nutzbar zu machen, wurde ein bidirektionaler Import-Prozess nach Notion implementiert (`import_relational_radar.py`).
* **Architektur:** Statt Textblöcken werden drei vernetzte Datenbanken erstellt:
1. **📦 Companies (Hub):** Stammdaten, USPs, Portfolio.
2. **💣 Landmines (Satellite):** Einzelfragen und Angriffsvektoren, verknüpft mit der Company.
3. **🏆 References (Satellite):** Konkrete Kundenprojekte, verknüpft mit der Company.
* **Dual-Way Relations:** Dank `dual_property` Konfiguration sind die Verknüpfungen in Notion sofort in beide Richtungen navigierbar (z.B. sieht man auf der Company-Seite sofort alle zugehörigen Landmines).
* **Daten-Qualität:** Durch die Map-Reduce Analyse und das gezielte Reference-Scraping werden nun echte Fakten statt KI-Halluzinationen importiert.
1. **F-STRINGS SIND VERBOTEN** für Prompts und komplexe Listen-Operationen.
2. **TRIPLE RAW QUOTES (`r"""..."""`)** sind der einzige sichere Weg für Strings in Docker-Umgebungen.
3. **DUAL SDK STRATEGY:** Legacy SDK für Stabilität (`gemini-2.0-flash`), Modern SDK für Spezial-Features.
4. **MAP-REDUCE:** Bei Listen > 3 Elementen niemals das LLM bitten, "alle auf einmal" zu bearbeiten. Immer zerlegen (Map) und aggregieren (Reduce).
5. **SCHEMA FIRST:** Frontend (`types.ts`) und Backend (`Pydantic`) müssen *vorher* abgeglichen werden. `422` bedeutet fast immer Schema-Mismatch.
---
*Dokumentation aktualisiert am 11.01.2026 nach erfolgreicher Skalierung auf 9+ Konkurrenten.*
*Dokumentation aktualisiert am 11.01.2026 nach Implementierung des relationalen Competitive Radars.*