- 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.
- Falls weder Wikipedia-Branche noch externe Branchenbeschreibung vorliegen, wird der Website-Inhalt (Startseite, Spalte D) ausgelesen.
- Eine neue Funktion `get_website_summary(url)` extrahiert den Text der Startseite (bis 1000 Zeichen) und übernimmt diesen als externe Information, falls nötig.
- Die Funktion `evaluate_branche_chatgpt()` wurde um einen Parameter `website_url` erweitert und prüft, ob bei fehlender Wikipedia-Branche und fehlender externer Beschreibung der Website-Text verwendet wird.
- In der Batch-Verarbeitung (Modus 51) wird der Website-URL aus Spalte D als fünfter Parameter übergeben.
- Die Alignment Demo bleibt ansonsten unverändert.
Ergänzung der Fallunterscheidung:
Falls wiki_branche "k.A." ist, wird der Prompt so generiert, dass nur die Angaben aus CRM (Spalte G) und externe Branchenbeschreibung (Spalte H) verwendet werden. Andernfalls werden auch die Werte aus Wikipedia (Spalte N und Q) herangezogen.
Erhaltung der Fokus-Branchen:
Die Focus-Liste wird beibehalten, sodass die Entscheidungsfindung über den endgültigen Vorschlag weiterhin auch diese Branchen berücksichtigt.
Postprocessing:
Nach der Antwort werden Ergebnisse geprüft, und sofern der von ChatGPT vorgeschlagene Branchentext nicht exakt im Ziel-Branchenschema enthalten ist, wird „k.A.“ mit Konsistenz "X" zurückgegeben. Stimmt der Vorschlag exakt mit der in CRM (Spalte G) überein, wird die Begründung geleert und die Konsistenz auf "ok" gesetzt.
- Alignment Demo (Zeilen A1–AQ5) wurde exakt wie in der Ausgangsversion integriert.
- Im Batch-Modus (Modus 51) wird nun zusätzlich die Branchenbewertung (bis Spalte Y) ausgeführt:
• Spalte W: Chat Vorschlag Branche
• Spalte X: Chat Konsistenz Branche
• Spalte Y: Chat Begründung Abweichung Branche
- In evaluate_branche_chatgpt wird überprüft, ob der von ChatGPT vorgeschlagene Branchentext exakt im Ziel-Branchenschema enthalten ist.
Falls nicht, wird „k.A.“ mit Konsistenz "X" und entsprechender Begründung zurückgegeben.
- Wenn der Vorschlag mit der in CRM festgelegten Branche übereinstimmt, wird keine Begründung (leere Zeichenkette) ausgegeben.
- Vor Start im Batch wird abgefragt, wieviele Zeilen verarbeitet werden sollen.
- Bei Wikipedia: Wird _nicht_ erneut gesucht, wenn first_paragraph "k.A." ist.
- Alignment Demo (Zeilen A1–AQ5) exakt gemäß der vorgegebenen Ausgangsversion eingebaut.
- Im Batch-Prozess (Modus 51) wird jetzt zusätzlich die Branchenbewertung (bis einschließlich Spalte Y) durchgeführt.
- Spalte W: Chat Vorschlag Branche
- Spalte X: Chat Konsistenz Branche
- Spalte Y: Chat Begründung Abweichung Branche
- Wenn der extrahierte Wikipedia-Artikel "k.A." enthält, wird nicht erneut nach einem Artikel gesucht; stattdessen bleibt der Wert "k.A.".
- Vor Start im Batch (Modus 51) wird abgefragt, wie viele Zeilen verarbeitet werden sollen.
- Weitere Schritte im Vollverarbeitungsmodus (insb. Mitarbeiter‑Schätzung und Kontaktsuche) sind vorerst noch nicht vollständig implementiert.
- Wikipedia-Daten werden nun von Spalte L bis R geschrieben (statt von K bis Q).
- Falls Wikipedia-Daten "k.A." liefern, wird eine erneute Suche durchgeführt und ChatGPT soll den Artikel recherchieren.
- Im Modus 51 wird nun abgefragt, wieviele Zeilen verarbeitet werden sollen.
- Konsistenzprüfung mit der Alignment Demo sichergestellt.
- Betriebsmodus wird im Dateinamen integriert (z.B. 02-04-2025_16-51_v14_Modus4.txt)
- Logfile startet mit der Anzeige der gewählten Modus-Auswahl und einer Übersicht der verwendeten Prompts
- Umbenennung der Funktion "validate_article_with_chatgpt" in "process_wiki_verification" (inkl. Prüfung auf "k.A.")
- Neue Funktionen process_employee_estimation und process_employee_consistency zur robusten Mitarbeiterschätzung und -vergleich
- Separates Token-Counting pro Modul (Wiki, Chat, Mitarbeiter) und Ausgabe in Spalte AQ
- Timestamp-Prüfung: Vor jedem Verarbeitungsschritt wird geprüft, ob bereits ein Timestamp gesetzt wurde (sodass doppelte Verarbeitung verhindert wird)
- Weitere Anpassungen in den Betriebsmodi (Modus 1, 2, 3, 4, 5, 51, 6 und Batch-Modus 8) gemäß Abstimmung
- Betriebsmodus im Dateinamen ergänzt, inkl. Beginn des Logs mit Modusauswahl
- Funktion 'Chat Vorschlag Wiki Artikel' umbenannt für bessere Lesbarkeit
- ChatGPT Mitarbeiter-Schätzung robust, 'k.A.' wird als fehlender Artikel interpretiert
- ChatGPT Konsistenzprüfung Mitarbeiterzahl mit Begründung für abweichende Werte
- Token-Zählung pro Modul ergänzt für detaillierte Auswertung
- Batch-Modus bleibt bestehen, Optimierung später geplant
- Branchenvorschlag wird immer ausgegeben, unabhängig vom Batch-Modus
- Timestamp-Prüfung integriert, um doppelte Bearbeitung zu vermeiden
- Alle Betriebsmodi geprüft, Modus 1 funktionsfähig bestätigt
Es wurden feste Spaltenzuweisungen im Alignment Demo definiert.
- Die Header werden in Zeile 11200 von Spalte A bis AA gesetzt.
- Nur die für den Hauptprozess relevanten Spalten werden zugewiesen.
- Zusätzliche Spalten (z. B. für Kontakte oder spezifische Verifizierungen) sind bewusst nicht enthalten, da sie in separaten Modi oder zukünftigen Versionen ergänzt werden.
Hier ist eine aktualisierte Version, die alle oben beschriebenen Anpassungen berücksichtigt. Ich habe Folgendes vorgenommen:
Versionsupdate: Die Versionsnummer wurde auf v1.3.16 gesetzt.
Neue Modi integriert:
Modus 8 (Batch-Token-Zählung in Spalte AQ)
Modus 51 (Verifizierung: Nur Wikipedia + Brancheneinordnung in einem Batch-Prozess)
Die bestehenden Modi (1, 2, 3, 4, 5, 6, 7) bleiben erhalten.
Verbesserte Header-Definitionen: Sowohl im Hauptblatt als auch im „Contacts“-Blatt.
Verbesserte Fehlerbehandlung und Logging: Kleinere Anpassungen beim Logging und beim Warten auf Updates.
Im Folgenden findest Du den vollständigen, aktualisierten Code (v1.3.16):