- Passt die Logik an die neue, erweiterte Struktur der `keyword_rules.json` an.
- Liest die `required_branch_keywords` dynamisch aus der Wissensbasis, anstatt eine hartcodierte Liste zu verwenden.
- Die KI-Klassifizierung wurde aufgewertet: Sie erhält nun Branchenkontext und Beispiele für eine präzisere Zuordnung.
- Das gesamte System ist nun vollständig über die Wissensbasis und Konfigurationsdateien steuerbar.
- Führt eine Batch-Verarbeitung (Chunking) für Anfragen an die OpenAI API ein, um die Stabilität und Zuverlässigkeit zu erhöhen.
- Anstatt alle 'Undefined'-Fälle in einer einzigen großen Anfrage zu senden, werden diese nun in kleinere Pakete (Standard: 200 Titel pro Anfrage) aufgeteilt.
- Dies reduziert das Risiko von API-Timeouts, umgeht potenzielle Token-Limits und verbessert die Fehlertoleranz.
- Fügt Logging hinzu, das den Fortschritt der Batch-Verarbeitung anzeigt (z.B. "Verarbeite Batch 1/2...").
- Bugfix: Behebt das Problem, bei dem die OpenAI API eine textuelle Antwort anstelle eines JSON-Arrays zurückgab.
- Der Prompt für die KI-Klassifizierung (Stufe 3) wurde grundlegend überarbeitet, um Missverständnisse durch die KI zu verhindern.
- Die KI wird nun als "Datenverarbeitungstool" instruiert und erhält einen unmissverständlichen Befehl mit strikten Ausgabe-Formatierungsregeln.
- Dies erhöht die Zuverlässigkeit der KI-gestützten Klassifizierung erheblich und stellt sicher, dass die Antwort maschinell verarbeitbar ist.
- Bugfix: Behebt ein Problem, bei dem keine Log-Ausgaben im Terminal oder in der Log-Datei erschienen sind.
- Die `setup_logging`-Funktion wurde überarbeitet, um eine implizite Standard-Konfiguration durch die `helpers.py` zu erkennen und zu überschreiben.
- Stellt sicher, dass die benutzerdefinierte Logging-Konfiguration (DEBUG-Level, File-Handler) zuverlässig angewendet wird.
- Das Skript ist nun wieder "gesprächig" und protokolliert alle Prozessschritte wie vorgesehen.
- Detailliertere Log-Ausgaben während des gesamten Prozesses für eine bessere Nachvollziehbarkeit.
- Loggt die Anzahl der Zeilen direkt nach dem erfolgreichen Laden aus dem Google Sheet.
- Fügt explizite Start- und End-Meldungen für die regel-basierte Zuordnung (Stufe 1 & 2) hinzu.
- Loggt die genaue Anzahl der 'Undefined'-Fälle, die an die KI zur Klassifizierung gesendet werden.
- Gibt eine klare Meldung aus, wenn keine KI-Anfrage nötig ist, weil alle Fälle durch Regeln gelöst wurden.
- Verbessert die allgemeine Klarheit der Log-Nachrichten, um die Analyse von Laufzeitverhalten und potenziellen Fehlern zu erleichtern.
- Bugfix: Behebt einen kritischen APIError [400] 'Invalid list_value', der beim Zurückschreiben der Daten in das Google Sheet auftrat.
- Die Funktion `_find_best_match` gab in manchen Fällen fälschlicherweise eine Liste anstelle eines einzelnen Strings als Department zurück.
- Die Rückgabewerte der Funktion wurden korrigiert, um sicherzustellen, dass immer ein String übergeben wird.
- Dies stellt die Kompatibilität mit der Google Sheets API wieder her und macht den Schreibvorgang robust.
- Bugfix: Behebt einen `JSONDecodeError`, der auftrat, wenn die OpenAI API eine Antwort mit einleitendem Text oder ohne JSON-Array zurückgab.
- Die JSON-Extraktion in der KI-Klassifizierung wurde von einer einfachen String-Suche auf eine robuste Regex-Suche umgestellt.
- Verbessertes Fehler-Logging: Bei einem Fehler bei der KI-Klassifizierung wird nun die vollständige, rohe API-Antwort ins Log geschrieben, um die Fehlersuche zu erleichtern.
- Bugfix: Behebt ein Problem, bei dem das Skript beim Start zu hängen schien, weil große Wissensbasis-Dateien blockierend geladen wurden.
- Die Initialisierung der `ContactGrouper`-Klasse wurde verschlankt und lädt die JSON-Dateien nicht mehr automatisch.
- Eine neue Methode `load_knowledge_base()` wurde eingeführt, um das Laden der Dateien explizit und mit Logging-Feedback zu steuern.
- Das Skript gibt nun sofort nach dem Start eine Rückmeldung auf der Konsole und im Logfile, bevor zeitaufwändige Operationen beginnen.
- Verbesserte Fehlerbehandlung, falls die Wissensbasis nicht geladen werden kann.
- Erweitertes Logging mit DEBUG-Level und Logfile-Erstellung.
- Zusammenfassende Statistik der Department-Zuweisungen am Ende des Laufs.
- NEU: Stufe 3 - KI-Klassifizierung für unklare Fälle ('Undefined').
- Jobtitel, die nicht durch Stufe 1 oder 2 zugeordnet werden können, werden an die OpenAI API zur Klassifizierung gesendet.
- NEU: Lern-Mechanismus - Die von der KI ermittelten Zuordnungen werden automatisch in das 'CRM_Jobtitles'-Sheet zurückgeschrieben.
- Das System verbessert sich dadurch selbst für zukünftige Durchläufe.