Docs: Add documentation for extract_insights.py

- Beschreibt die Hauptfunktion und den Zweck des Moduls.

- Dokumentiert die wichtigsten öffentlichen Methoden.
This commit is contained in:
2025-11-07 15:55:51 +01:00
parent 6973b5c205
commit 2dda388874

View File

@@ -156,7 +156,7 @@ Die Klasse `DataProcessor` ist das Herzstück der Anreicherungslogik und enthäl
- **Output:** Aktualisiert die Spalten zur KI-basierten Brancheneinstufung ("Chat Vorschlag Branche", Konfidenz, Begründung etc.) im Google Sheet.
### `process_wiki_verify(...)`
- **Zweck:** Verifiziert in einem Batch-Prozess, ob der in einer Zeile hinterlegte Wikipedia-Artikel thematisch zum Unternehmen passt. Nutzt KI, um die Konsistenz zu prüfen und ggf. einen passenderen Artikel vorzuschlagen.
- **Zweck:** Verifiziert in einem Batch-Prozess, ob der in einer Zeile hinterlegter Wikipedia-Artikel thematisch zum Unternehmen passt. Nutzt KI, um die Konsistenz zu prüfen und ggf. einen passenderen Artikel vorzuschlagen.
- **Input:** `start_sheet_row`, `end_sheet_row`, `limit`. Verarbeitet Zeilen, die eine Wiki-URL, aber noch keinen Verifizierungs-Timestamp haben.
- **Output:** Schreibt das Ergebnis der KI-Prüfung (OK, X), eine Begründung und ggf. einen Alternativvorschlag in die entsprechenden Spalten im Google Sheet.
@@ -495,3 +495,26 @@ Das Modul `expand_knowledge_base.py` dient dazu, eine bestehende Wissensbasis (`
4. **Dossier-Generierung & Extraktion:** Führt für jede neue Branche den zweistufigen Prozess aus: Zuerst wird das Dossier generiert und als Textdatei gespeichert, danach werden die strukturierten Daten extrahiert.
5. **Aktualisierung:** Fügt die neu extrahierten Daten zur in-memory-Version der Wissensbasis hinzu.
6. **Speichern:** Schreibt die erweiterte und nun vollständige Wissensbasis in eine neue Zieldatei (`marketing_wissen_komplett.yaml`).
## extract_insights.py
### Hauptfunktion
Das Modul `extract_insights.py` ist ein Werkzeug zur automatisierten Erstellung einer Wissensbasis aus unstrukturierten Word-Dokumenten (`.docx`). Es liest Branchenanalysen aus einem spezifizierten Ordner, sendet deren Inhalt an eine KI und extrahiert gezielt strukturierte Informationen wie operative "Pain Points", branchenspezifische Fachbegriffe und eine Management-Zusammenfassung. Diese extrahierten Daten werden in einer einzigen, strukturierten YAML-Datei (`marketing_wissen_v1.yaml`) zusammengefasst, die als Grundlage für weitere Marketing-Automatisierungen dient.
### Methodenbeschreibung
- `call_openai_with_retry(prompt, ...)`: Eine robuste Wrapper-Funktion für OpenAI-API-Aufrufe, die eine Wiederholungslogik bei Fehlern implementiert.
- `read_docx_content(filepath)`: Eine Hilfsfunktion, die eine `.docx`-Datei einliest und deren gesamten Textinhalt, einschließlich Absätzen und Tabellen, als einzelnen String zurückgibt.
- `extract_yaml_from_response(response_text)`: Eine wichtige Bereinigungsfunktion, die sicherstellt, dass aus der oft mit Markdown-Formatierungen (` ```yaml ... ``` `) versehenen KI-Antwort nur der reine YAML-Code extrahiert wird, um Parsing-Fehler zu vermeiden.
- `generate_extraction_prompt(content, data_to_extract)`: Erstellt hochspezialisierte Prompts für die KI. Je nachdem, welche Information extrahiert werden soll (`pain_points`, `key_terms` oder `summary`), wird der KI eine andere Rolle und ein anderer Auftrag zugewiesen, um die Qualität und Relevanz der extrahierten Daten zu maximieren.
- `main()`: Die Hauptfunktion, die den gesamten ETL-Prozess (Extract, Transform, Load) steuert:
1. **Initialisierung:** Lädt die API-Schlüssel und prüft, ob der Quellordner mit den Word-Dokumenten existiert.
2. **Dokumenten-Loop:** Iteriert über alle `.docx`-Dateien im Quellordner.
3. **Text-Extraktion:** Liest den Inhalt jedes Dokuments mit `read_docx_content`.
4. **Iterative KI-Extraktion:** Führt für jedes Dokument drei separate KI-Aufrufe durch (einen für "Pain Points", einen für "Key Terms" und einen für "Summary"), um die Genauigkeit zu erhöhen.
5. **Daten-Aggregation:** Sammelt die extrahierten und geparsten YAML-Daten für jede Branche in einer zentralen `knowledge_base`-Struktur.
6. **Speichern:** Schreibt die finale, aggregierte Wissensbasis in die `marketing_wissen_v1.yaml`-Datei.