Commit Graph

431 Commits

Author SHA1 Message Date
5776f2b4d7 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
57f6be7d8d neue Spalten 2025-05-10 20:58:45 +00:00
93a0122b86 bugfix 2025-05-10 20:01:29 +00:00
615d4ac2df bugfix 2025-05-10 08:20:31 +00:00
62b8cc4341 bugfix 2025-05-10 08:16:23 +00:00
f724cbba73 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
cae103d601 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
b8caacd5c7 bugfix 2025-05-09 07:13:52 +00:00
921dde309c 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
2784f91175 bugfix 2025-05-08 10:56:07 +00:00
a5b0845d9b bugfix 2025-05-08 10:05:19 +00:00
e92eb49dc1 bugfix 2025-05-08 09:25:03 +00:00
a3584d94a8 bugfix 2025-05-08 09:03:29 +00:00
d54c41688c bugfix 2025-05-08 08:52:20 +00:00
1134e8167d v. 1.7.1: Große Überarbeitung neuer Chat 2025-05-08 08:03:00 +00:00
ba5f9220bf bugfix 2025-05-07 13:10:16 +00:00
8b5f321f18 bugfix 2025-05-07 12:34:50 +00:00
f9d2d40d64 bugfix 2025-05-07 12:32:11 +00:00
bc0553b038 bugfix 2025-05-07 11:25:11 +00:00
4cb40d51b6 bugfix 2025-05-07 10:42:37 +00:00
e0582fe5e6 bugfix 2025-05-07 10:20:40 +00:00
04619a60b1 bugfix 2025-05-07 10:19:33 +00:00
61f258468c bugfix 2025-05-07 09:52:50 +00:00
921e595196 bugfix 2025-05-07 09:47:46 +00:00
54cc2eba92 bugfix 2025-05-07 09:40:58 +00:00
c5bcc9c834 bugfix 2025-05-07 09:19:20 +00:00
b7dd8fe141 bugfix 2025-05-07 09:08:05 +00:00
c700359569 bugfix 2025-05-07 08:42:28 +00:00
854929d10d bugfix 2025-05-07 08:28:09 +00:00
145981dc70 bugfix 2025-05-07 06:33:21 +00:00
263049342b v1.7.1 Re-Import der neu erstellten Version
Re-Import der neu erstellten Version
2025-05-07 06:00:42 +00:00
fd57db914d bugfix 2025-05-06 12:53:53 +00:00
589b4757b9 bugfix 2025-05-06 12:32:51 +00:00
5ca839608f bugfix 2025-05-06 12:30:09 +00:00
bc028371d2 bugfix 2025-05-06 06:52:01 +00:00
1e61c16936 bugfix 2025-05-05 14:50:21 +00:00
59fac9a964 bugfix 2025-05-05 13:55:58 +00:00
7a47c516d5 Reset 2025-05-05 13:12:55 +00:00
1814922a07 bugfix 2025-04-25 13:05:14 +00:00
6217f1c299 bugfix 2025-04-25 12:55:53 +00:00
f5cda2d6ac bugfix 2025-04-25 12:44:42 +00:00
8d35dfbc8a v1.7.0: Refactor into modular classes & flexible UI
- Restructured codebase into modular classes (DataProcessor, Handlers)
- Centralized processing logic in DataProcessor class
- Implemented flexible step selection via flags in single row processing
- Added detailed timestamp/status checks for conditional step execution
- Integrated batch processing methods into DataProcessor
- Developed robust CLI/interactive user interface for mode selection
- Added new modes: find_wiki_serp, website_details, wiki_reextract_missing_an, combined_all
- Enhanced reeval & full_run modes with granular step control
- Improved logging with file output and better detail
- Consolidated & refined helper functions and external API calls
- Updated column mapping with new timestamps
- Revised ML model loading, prediction, and training data prep
2025-04-25 12:40:18 +00:00
db9a5fd976 bugfix 2025-04-24 18:27:41 +00:00
5cfa10c28e bugfix 2025-04-24 18:24:43 +00:00
2664a830b7 bugfix 2025-04-24 18:20:15 +00:00
79245057b3 bugfix 2025-04-24 18:12:21 +00:00
c83ddf85df bugfix 2025-04-24 18:10:23 +00:00
f6a38eaf86 bugfix 2025-04-24 18:08:24 +00:00
63565e32e3 bugfix 2025-04-24 18:06:28 +00:00
2f293d2302 bugfix 2025-04-24 18:04:30 +00:00