Commit Graph

467 Commits

Author SHA1 Message Date
a6a3ef7ef7 bugfix 2025-05-12 19:45:20 +00:00
e45623438e v1.7.5: Modus für Plausibilitäts-Checks hinzugefügt
- Neuen Verarbeitungsmodus "plausi_check_data" implementiert.
- Modus führt Plausibilitätsprüfungen für Finanzdaten (Umsatz, Mitarbeiter, Ratio, CRM/Wiki-Abgleich) durch.
- Methode `DataProcessor.run_plausibility_checks_batch` erstellt und in `main()` integriert.
- Spalte "Plausibilität Prüfdatum" wird in diesem Modus gesetzt.
- Ziel: Gezielte Ausführung der Datenqualitäts-Checks für bestehende konsolidierte Werte.
2025-05-12 19:39:55 +00:00
0d54c59ae3 bugfix 2025-05-12 19:32:36 +00:00
75de66550b bugfix 2025-05-12 19:26:33 +00:00
b85008ddc5 bugfix 2025-05-12 19:18:21 +00:00
276e6806d9 bugfix 2025-05-12 19:14:57 +00:00
fb966f172b bugfix 2025-05-12 19:03:26 +00:00
ccf91c472b debug 2025-05-12 18:58:11 +00:00
2a57aa9aa9 bugfix 2025-05-12 18:51:59 +00:00
33aea8e32a bugfix 2025-05-12 18:47:31 +00:00
f797dab1a8 bugfix 2025-05-12 18:45:56 +00:00
cd1faeb46c debug = true 2025-05-12 18:34:20 +00:00
42dea2e033 bugfix 2025-05-12 18:12:29 +00:00
28a869f87d v1.7.5: Spaltenreihenfolge für Timestamps und Plausi-Checks optimiert
- "Contact Search Timestamp" nach "Geschaetzter Techniker Bucket" verschoben.
- 6 Plausibilitäts-Check-Spalten danach eingefügt.
- Neue Spalte "Plausibilität Prüfdatum" hinzugefügt.
- COLUMN_MAP und alignment_demo entsprechend der neuen 64-Spalten-Struktur (A-BL) aktualisiert.
2025-05-12 18:11:08 +00:00
6673ab4b86 bugfix 2025-05-12 14:56:18 +00:00
7e6d3f9714 bugfix 2025-05-12 14:50:58 +00:00
d28effcafd v1.7.5: Plausibilitäts-Check Spalten für Finanzdaten hinzugefügt
- 6 neue Spalten für Plausibilitätsprüfungen (Umsatz, MA, Ratio, Abweichungen CRM/Wiki, Begründung) in COLUMN_MAP und alignment_demo eingefügt.
- Indizes aller nachfolgenden Spalten angepasst.
- Ziel: Detaillierte Kennzeichnung von Datenqualitätsproblemen.
2025-05-12 14:24:56 +00:00
74cf866c1e Reparatur Sitz 2025-05-12 08:22:50 +00:00
2e4759cf8c v1.7.4: Parsing-Logik für Wiki-Sitz (Stadt/Land) optimiert
- Heuristische Mustererkennung in `WikipediaScraper.extract_company_data` für die Trennung von Stadt und Land aus rohen Sitzangaben verbessert.
- Berücksichtigung von Ländercode-Präfixen (z.B. D-PLZ).
- Optimierte Behandlung von Komma-getrennten Angaben und Ländern am Ende des Strings.
- Verfeinerte Logik zur Isolierung des Stadtnamens nach erfolgreicher Länderextraktion.
2025-05-12 05:37:24 +00:00
660a9ddbd2 bugfix 2025-05-11 21:13:31 +00:00
d3d4d15549 bugfix 2025-05-11 21:08:02 +00:00
05ed038862 debug = False 2025-05-11 21:00:48 +00:00
2646485f7e bugfix 2025-05-11 20:42:53 +00:00
3f9e9ba8ef bugfix 2025-05-11 20:29:57 +00:00
3952a985c0 bugfix 2025-05-11 20:22:07 +00:00
fc2f96db00 bugfix 2025-05-11 20:18:02 +00:00
da098c77e6 bugfix 2025-05-11 20:06:48 +00:00
e2241baabf v1.7.4: Spalte für Branchen-KI-Konfidenz hinzugefügt
- Neue Spalte "Chat Branche Konfidenz" (AI) in COLUMN_MAP und alignment_demo eingefügt.
- Nachfolgende Spaltenindizes angepasst.
- Ziel: Speicherung des Konfidenz-Scores der Branchen-KI.
- Prompt für evaluate_branche_chatgpt angepasst, um Konfidenz (Hoch/Mittel/Niedrig) zu erfragen.
- Antwortformat-Anweisung im Prompt um Konfidenz erweitert.
- Parsing-Logik in evaluate_branche_chatgpt erweitert, um Konfidenz zu extrahieren.
- Rückgabewert von evaluate_branche_chatgpt um 'confidence'-Schlüssel erweitert.
- DataProcessor._process_single_row angepasst, um den Branchen-KI-Konfidenz-Score zu speichern.
- Logik zum Berechnen und Speichern von "Finaler Umsatz (Wiki>CRM)" und "Finaler Mitarbeiter (Wiki>CRM)" in _process_single_row integriert.
2025-05-11 19:28:08 +00:00
7eb4c57f02 v1.7.3: Code-Duplikation in DataProcessor entfernt
- Entfernung redundanter Methodendefinitionen am Ende der DataProcessor-Klasse.
- Betroffene Methoden: _predict_technician_bucket, _load_ml_model, prepare_data_for_modeling, train_technician_model, process_website_details, process_wiki_updates_from_chatgpt, process_wiki_reextract_missing_an.
- Redundanten lokalen Import von 'openai' in Config.load_api_keys entfernt. Der globale Import ist ausreichend.
- Temporären Platzhalter für die Validierung von ChatGPT-Wiki-URL-Vorschlägen in 'process_wiki_updates_from_chatgpt' durch Aufruf von 'is_valid_wikipedia_article_url' ersetzt.
2025-05-11 18:43:33 +00:00
78d1b379fd bugfix 2025-05-11 17:24:22 +00:00
9d44b118a4 bugfix 2025-05-11 12:52:07 +00:00
f8c414873b bugfix 2025-05-11 07:19:51 +00:00
a077b222ec bugfix 2025-05-11 06:44:13 +00:00
3831407367 bugfix 2025-05-11 06:22:01 +00:00
6bf9b762c0 bugfix 2025-05-11 06:17:04 +00:00
a42e04d66d bugfix 2025-05-10 22:21:53 +00:00
99277b5e31 v1.7.3 Erweitertes Spaltenschema und Neustrukturierung
Umfangreiche Überarbeitung der Spaltenstruktur im Google Sheet und im Code zur Verbesserung der thematischen Gruppierung und zur Erfassung zusätzlicher Datenpunkte.

**Wesentliche Änderungen:**
- **Neue Spalten eingeführt:**
    - "CRM Land" (F): Für das Land des Unternehmenssitzes laut CRM.
    - "Wiki Sitz Stadt" (O): Für die aus der Wikipedia-Infobox extrahierte Stadt.
    - "Wiki Sitz Land" (P): Für das aus der Wikipedia-Infobox extrahierte Land.
    - "Website Meta-Details" (AE): Für strukturierte Metadaten der Website (Title, Description, H-Tags).
    - "URL Prüfstatus" (AG): Zur Markierung von URLs, die eine erneute Prüfung/Suche benötigen.
- **Spalten neu gruppiert:**
    - Wikipedia-bezogene Timestamps (alt AN, AX, AY) wurden in den Wikipedia-Datenblock (neu V, W, X) verschoben.
    - Website Scrape Timestamp (alt AT) wurde in den Website-Datenblock (neu AF) verschoben.
    - Die Reihenfolge vieler nachfolgender Blöcke (ChatGPT-Evaluationen, LinkedIn, Konsolidierung, ML, restliche System-Timestamps) wurde angepasst, um die neue Struktur widerzuspiegeln.
    - Das Schema umfasst nun 56 Spalten (A-BD).
- **`COLUMN_MAP` aktualisiert:** Die Konstante wurde an die neue Spaltenstruktur mit 56 Einträgen angepasst.
- **`alignment_demo` überarbeitet:** Die Funktion wurde komplett aktualisiert, um alle 56 Spalten mit detaillierten Beschreibungen für Quelle, Feldkategorie, Kurzbeschreibung und Aufgabe/Funktion abzudecken.
- **`WikipediaScraper` erweitert:**
    - `keywords_map` um "sitz" erweitert.
    - `_extract_infobox_value` angepasst, um den rohen Sitz-Text zu extrahieren.
    - `extract_company_data` implementiert eine Heuristik, um aus dem rohen Sitz-Text "Wiki Sitz Stadt" und "Wiki Sitz Land" zu trennen und zurückzugeben.

**Ziel:**
- Schaffung einer logischeren und erweiterbaren Datenstruktur im Google Sheet.
- Ermöglichung der Erfassung und Analyse des Unternehmenslandes für zukünftige Auswertungen (z.B. DACH-Region).
- Konsolidierung der Dokumentation durch eine aktuelle und vollständige `alignment_demo`.

**Nächste Schritte:** Anpassung der `DataProcessor`-Methoden an die neue Spaltenstruktur.
2025-05-10 22:18:19 +00:00
fe9f8baa6d neue Spalten 2025-05-10 20:58:45 +00:00
6ddcdc5fff bugfix 2025-05-10 20:01:29 +00:00
967139d96f bugfix 2025-05-10 08:20:31 +00:00
d83b777e98 bugfix 2025-05-10 08:16:23 +00:00
33f38cb96d Fokusbranchen-Logik in Branchenevaluation integriert
Wiedereinführung und Verbesserung der Funktionalität zur Priorisierung von Fokusbranchen bei der automatisierten Branchenklassifizierung durch ChatGPT.

**Änderungen:**
- **Fokusbranchen aus CSV:**
    - Die Definition von Fokusbranchen erfolgt nun über eine zusätzliche Spalte in der `ziel_Branchenschema.csv`-Datei. Dies ermöglicht eine flexible Konfiguration ohne Code-Änderungen.
    - Die Funktion `load_target_schema` wurde erweitert, um diese Fokus-Markierungen einzulesen und eine separate Liste `FOCUS_TARGET_BRANCHES` sowie einen spezifischen Prompt-Teil `FOCUS_BRANCHES_PROMPT_PART` zu generieren.
- **Angepasste `evaluate_branche_chatgpt` Funktion:**
    - Nutzt nun die global geladenen Listen `ALLOWED_TARGET_BRANCHES` und `FOCUS_TARGET_BRANCHES` sowie die Prompt-Teile `TARGET_SCHEMA_STRING` und `FOCUS_BRANCHES_PROMPT_PART`.
    - Der an ChatGPT gesendete Prompt wurde um einen expliziten Hinweis erweitert, Fokusbranchen bei der Klassifizierung zu priorisieren, falls mehrere Branchen plausibel erscheinen.
    - Die Fallback-Logik für die zu verwendende Beschreibungsquelle (CRM-Beschreibung vs. Website-Zusammenfassung bei fehlenden Wiki-Daten) wurde aus der früheren Funktionsversion übernommen und verfeinert.
    - Die API-Key-Handhabung wurde entfernt, da diese nun global über `Config.API_KEYS` und `call_openai_chat` erfolgt.
    - `debug_print` Aufrufe wurden durch Standard-Logging (`logger.debug`) ersetzt.
- **Globale Variablen:** Neue globale Variablen für Fokusbranchen und deren Prompt-Teil wurden eingeführt.

**Ziel:**
- Erhöhung der Genauigkeit der Branchenklassifizierung, indem vordefinierte, strategisch wichtige Branchen bei der KI-gestützten Bewertung bevorzugt werden.
- Verbesserung der Flexibilität und Wartbarkeit der Fokusbranchen-Definition durch Auslagerung in die zentrale CSV-Datei.
2025-05-10 08:11:41 +00:00
163dc7d220 v1.7.3 Vollständige Alignment Demo für Spaltendoku wiederhergestellt & erweitert
Diese Version stellt die ausführliche `alignment_demo`-Funktion wieder her und erweitert sie, um alle aktuellen Spalten (A-AY) des Google Sheets präzise zu dokumentieren. Dies dient als zentrale Referenz für die Spaltenbedeutungen und -verwendungen im Projekt.

**Änderungen:**
- **`alignment_demo` wiederhergestellt:** Die ursprüngliche, detaillierte Struktur der `alignment_demo`-Funktion mit Beschreibungen für Quelle, Feldkategorie, Kurzbeschreibung und Aufgabe/Funktion pro Spalte wurde re-integriert.
- **Erweiterung für neue Spalten:** Die Dokumentation in `alignment_demo` wurde um die neu hinzugekommenen Spalten AR ("Website Rohtext") bis AY ("SerpAPI Wiki Search Timestamp") ergänzt, inklusive detaillierter Beschreibungen ihrer Herkunft und Funktion.
- **Inhaltliche Anpassungen:** Bestehende Beschreibungen in der `alignment_demo` (insbesondere für Spalten wie V, S) wurden präzisiert, um die aktuelle Code-Logik und die Bedeutung von Statuswerten (z.B. "?") widerzuspiegeln.
- **Konsistenz mit `COLUMN_MAP`:** Sichergestellt, dass die `alignment_demo` alle 51 Spalten abdeckt, die in der aktuellen `COLUMN_MAP`-Konstante definiert sind.
- **Vorbereitung für Modularisierung:** Die `alignment_demo` unterstreicht die Notwendigkeit einer klaren Spaltendefinition, die bei einer zukünftigen Aufteilung des Codes in Module essenziell ist.

**Ziel:**
- Eine klare, aktuelle und umfassende Dokumentation der Spaltenstruktur direkt im Google Sheet über die `alignment_demo`-Funktion.
- Schaffung einer verbindlichen Referenz für die weitere Entwicklung und das Verständnis der Datenverarbeitungsschritte.
2025-05-10 07:47:51 +00:00
e5ca7775a7 bugfix 2025-05-09 07:13:52 +00:00
80e1b60825 v1.7.2: behebung OpenAI Scope, URL-Neusuche
feat: Verbesserte Fehlerbehandlung Website-Scraping & URL-Neusuche (v1.7.2)

Diese Version behebt kritische Fehler im Zusammenhang mit dem OpenAI-Modul und verbessert die Robustheit des Website-Scrapings erheblich.

**Fehlerbehebungen:**
- **OpenAI `NameError`:** Behoben durch expliziten globalen Import von `openai` und Anpassung der Exception-Behandlung im `retry_on_failure`-Decorator. OpenAI-Calls (Zusammenfassung, Branchenbewertung) funktionieren nun korrekt.
- **Wikipedia `TypeError`:** Behoben durch Deaktivieren der internen Ratenbegrenzung der `wikipedia`-Bibliothek, da diese bei der Initialisierung der Ratenbegrenzungsvariablen einen Fehler verursachte.
- **Doppelte Definitionen:** Redundante Codeblöcke entfernt.
- **Klassen-Logger:** Korrekte Initialisierung und Verwendung von `self.logger` in den Klassen `GoogleSheetHandler`, `WikipediaScraper` und `DataProcessor` implementiert, um `NameError` für `logger` zu beheben.
- **Funktionsaufrufe:** Korrektur kleinerer Fehler in Funktionsaufrufen (`summarize_batch_openai`, `_scrape_raw_text_task`, `get_numeric_filter_value`).
- **Tippfehler:** `selflogger` zu `self.logger` korrigiert.

**Neue Features & Verbesserungen:**
- **Verbesserte Fehlerbehandlung `get_website_raw`:**
    - Standardmäßige Deaktivierung der SSL-Zertifikatsprüfung (`verify=False`) für pragmatischeres Scraping.
    - Implementierung von spezifischeren Fehlermeldungen (z.B. "k.A. (Timeout)", "k.A. (SSL Fehler)", "k.A. (HTTP Error 403)") für eine bessere Fehleranalyse direkt im Sheet.
    - Einführung eines Markers `URL_CHECK_NEEDED` für URLs, die beim Scraping auf fundamentale Probleme (ConnectionError, 404) hinweisen.
- **User-Agent Rotation:** Eingeführt in `get_website_raw`, um die Wahrscheinlichkeit von 403-Fehlern durch Bot-Erkennung zu reduzieren.
- **Neuer Modus `check_urls`:**
    - Implementiert in `DataProcessor.process_url_check`.
    - Sucht nach Zeilen mit dem `URL_CHECK_MARKER` oder generischen "k.A. (Fehler...)"-Einträgen in der Rohtext-Spalte (AR), bei denen der AY-Timestamp (SerpAPI Wiki Search Timestamp) noch nicht gesetzt ist.
    - Führt für diese Zeilen `serp_website_lookup` aus, um eine neue URL zu finden.
    - Bei Fund einer *neuen und anderen* URL: Aktualisiert Spalte D, leert AR, setzt ReEval-Flag (A) und löscht abhängige Timestamps (AT, AO, AN, AX, AP) zur erneuten Verarbeitung.
    - Bei identischer oder keiner neuen URL: Aktualisiert AR mit entsprechender Info.
    - Setzt immer den AY-Timestamp, um den Prüfversuch zu dokumentieren.
- **Funktion `is_valid_wikipedia_article_url`:** Globale Hilfsfunktion implementiert, um die Gültigkeit von Wikipedia-URLs zu prüfen (existierender Artikel, keine Begriffsklärung). Wird von `process_wiki_updates_from_chatgpt` verwendet.

**Bekannte offene Punkte:**
- ML-Modell und Imputer-Dateien müssen noch erstellt werden (`technician_decision_tree_model.pkl`, `median_imputer.pkl`). Aktuelle Fehler diesbezüglich sind erwartet.
- Implementierung der Platzhalter-Funktionen für FSM, Mitarbeiter- und Umsatzschätzung via OpenAI steht noch aus.
2025-05-09 06:52:15 +00:00
09d6fc2697 bugfix 2025-05-08 10:56:07 +00:00
8d2dd9d354 bugfix 2025-05-08 10:05:19 +00:00
53c868458a bugfix 2025-05-08 09:25:03 +00:00
6faf623cc4 bugfix 2025-05-08 09:03:29 +00:00
495690f7cd bugfix 2025-05-08 08:52:20 +00:00