- Neuer run_dispatcher, der den Startpunkt (erste Zeile ohne Zeitstempel in AO ab Zeile 7)
ermittelt und den verarbeitenden Bereich (z. B. 50 Zeilen) definiert.
- Separate Batch-Funktionen: process_wiki_batch (Spalten S–Y), process_website_batch (Spalten AR/AS)
und process_branch_batch (Spalten W–Y) werden je nach Modus aufgerufen.
- Erlaubt getrennte oder kombinierte Durchläufe via Modus-Parameter.
- Verbesserte Log-Ausgaben unterstützen die Fehleranalyse.
- Anpassbare Batchgröße (Config.BATCH_SIZE, z. B. 10 Zeilen) zur Bündelung von ChatGPT-Anfragen.
- Aggregierte Prompts werden pro Batch erstellt und zeilenweise ausgewertet, mit erweitertem Logging.
- Ergebnisse der Aggregation werden als Paket verarbeitet und Google Sheets effizient aktualisiert.
- Alignment-Demo als eigenständiger Funktionsbaustein (alignment_demo_full) wiederhergestellt.
- Neue Funktion get_email_address zur Erzeugung der E-Mail-Adresse im Format vorname.nachname@domain.tld
- Anpassung von process_contact_research: E-Mail-Adresse in Spalte I eingetragen, LinkedIn-Link und Timestamp entsprechend verschoben
- Integration der E-Mail-Generierung in den bestehenden Kontaktverarbeitungs-Workflow, bestehende Funktionen weitgehend unverändert
- Umstellung der Geschlechtsbestimmung: Zuerst gender-guesser, Fallback zu Genderize API
- Geschlecht wird jetzt in Spalte D gespeichert (alle folgenden Felder rutschen um eine Spalte nach rechts)
- Aktualisierte Header und Kontaktzeilen im Contacts-Blatt, inklusive API-Key aus "genderize_API_Key.txt"
- Anpassung der Contact Research-Funktion zur Verarbeitung der geänderten Spalten
- **Website-Extraktion verbessert:**
- Fix: Ausgabe in Spalte AR (Website Rohtext) und AS (Website Zusammenfassung) wird nun zwingend in jedem Datensatz geschrieben – dabei wird nun *unabhängig* vom Vorhandensein eines "x" in Spalte A gearbeitet.
- Erweiterte Debug-Ausgaben: Zusätzliche Log-Meldungen protokollieren nun explizit, welchen Text (insb. die ersten 100 Zeichen) der Website extrahiert wurde und welcher Zusammenfassungstext generiert wird. Dies erleichtert die Fehlersuche und bestätigt, was in Spalte AR/AS geschrieben wird.
- User-Agent-Header und optionale SSL-Überprüfung wurden in `get_website_raw()` implementiert, um Blockierungen zu vermeiden und Fehler besser zu diagnostizieren.
- **Kontaktsuche (Modus 6) optimiert:**
- Überarbeitet: Die Suche nutzt nun explizit die CRM-Kurzform (Spalte C) als Filter, sodass nur Ergebnisse berücksichtigt werden, bei denen diese als Teil des Titels enthalten ist.
- Es wird in ein separates Arbeitsblatt "Contacts" geschrieben und die gefundenen Kontakte werden mit detaillierten Debug-Ausgaben protokolliert – dabei wird außerdem die Anzahl der Treffer pro Position (Serviceleiter, IT-Leiter, Geschäftsführer, Disponent) im Hauptblatt aktualisiert.
- Es wird nun darauf geachtet, dass der Suchlauf ohne Überschreiben bereits vorhandener Zeitstempel (ab Zeile AM7) durchgeführt wird.
- **Allgemeine Verbesserungen und Debugging:**
- Detaillierte Log-Ausgaben in allen kritischen Funktionen (Web-Extraktion, LinkedIn-Suche, Branchenabgleich) wurden erweitert, um Nachvollziehbarkeit zu gewährleisten.
- Debug-Ausgaben wurden verbessert, um exakte Abfragen, Ergebnisse und die daraus resultierenden Schreibvorgänge in den jeweiligen Spalten (z. B. für die Branchenbewertung in den Spalten W–Y) zu protokollieren.
- Anpassungen im Code haben sicher gestellt, dass keine wichtigen Funktionen entfernt wurden – Fokus lag ausschließlich auf den von Dir beanstandeten Bereichen.
Dieser Commit stellt sicher, dass die Website-Daten korrekt in den vorgesehenen Spalten abgelegt werden und die Kontaktsuche präziser und robuster arbeitet.
- Implementiert die Funktion is_valid_company_article(), die Wikipedia-Kategorien auf
das Stichwort "unternehmen" (und Synonyme) überprüft.
- In evaluate_branche_chatgpt() wird nun geprüft, ob Wiki-Kategorien "unternehmen" enthalten;
falls nicht, wird die Website-Zusammenfassung als Fallback genutzt.
- Debug-Ausgaben im Website-Scraping-Bereich (_process_single_row) wurden erweitert,
um den extrahierten Rohtext (erste 100 Zeichen) aus Spalte AR und die Zusammenfassung in AS zu protokollieren.
- Dies soll helfen, falsche Wikipedia-Artikel zu erkennen und den Fallback-Mechanismus zu verbessern.
- In get_website_raw() wurde ein User-Agent-Header hinzugefügt, um Blockaden zu vermeiden.
- SSL-Zertifikatüberprüfung kann jetzt optional durch den Parameter verify_cert deaktiviert werden (Standard: False).
- Zusätzliche Debug-Ausgaben protokollieren den Statuscode und erste 100 Zeichen des extrahierten Textes.
- Damit wird sichergestellt, dass beim Fehlen eines Wikipedia-Eintrags der Website-Fallback besser analysiert werden kann.
- In evaluate_branche_chatgpt() wird geprüft, ob sowohl Wiki- als auch externe Beschreibung 'k.A.' sind.
- Falls ja, wird der Website-Zusammenfassungstext als Fallback zur Branchenbewertung genutzt.
- Zusätzliche debug_print()-Ausgaben wurden eingefügt, um anzuzeigen, welche Informationen für die Entscheidungsfindung herangezogen wurden.
- Nach der ChatGPT-Antwort wird das Endergebnis ebenfalls geloggt.
- Neuer Modus 23 implementiert: Website Detail Extraction für Zeilen mit "x" in Spalte A.
- scrape_website_details() extrahiert Seitentitel, Meta-Description und h1/h2/h3 aus der Startseite.
- SERP-API Website Lookup (Modus 22) integriert: Fehlt in Spalte D eine Website, wird diese ermittelt und normalisiert.
- Alignment Demo bleibt unverändert; neue Spalten AR (Website Rohtext) und AS (Website Zusammenfassung) werden beibehalten.
- Main-Funktion und DataProcessor entsprechend der neuen Betriebsmodi angepasst.
- Modus 22: Neue Funktion 'serp_website_lookup' ermittelt per SERPAPI die Website, wenn CRM-Daten fehlen.
- Neue Funktion 'scrape_website_details' extrahiert Seitentitel, Meta-Description und h1/h2/h3-Überschriften.
- Beide Funktionen werden als Testmodule bereitgestellt und können in das Gesamtworkflow integriert werden.
- Main und Betriebsmodus-Menü wurden um die neuen Modi ergänzt.
- Alignment-Demo um neue Spalten erweitert
- Umstellung des Modus-Menüs auf ein neues Zahlensystem (1, 11, 21, 22, 31, 41, 51, 6)
- Modus 11: Re-Evaluation markierter Zeilen (ehemals Modus 2)
- Modus 21: Testmodus Website-Scraping (nur Website-Rohtext & Zusammenfassung)
- Modus 22: SERP-API basierter Website Lookup
- Modus 31: Vollständige ChatGPT-Auswertung
- Modus 41: Nur Wikipedia-Scraping
- Re-Evaluation-Untermodi (z. B. 11.1) können bei Bedarf später hinzugefügt werden
- Main-Funktion angepasst, um neue Modusauswahl zu ermöglichen
- In _process_single_row() und process_verification_only() wird nun geprüft, ob in Spalte AO bereits ein Timestamp steht – in diesem Fall wird die Zeile übersprungen.
- In get_website_raw() wird vor dem Abruf geprüft, ob der URL mit "http" beginnt; andernfalls wird "https://" vorangestellt.
- Ansonsten bleibt die bisherige Logik (inklusive Website-Extraktion und -Zusammenfassung, Fallback in evaluate_branche_chatgpt und vollständige Alignment Demo) unverändert.