contact_grouping.py aktualisiert

- 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.
This commit is contained in:
2025-09-18 07:59:31 +00:00
parent 59d5b1394e
commit cd9a2ffc55

View File

@@ -96,12 +96,14 @@ class ContactGrouper:
top_departments = [dept for dept, score in scores.items() if score == max_score]
if len(top_departments) == 1:
winner = top_departments
# KORREKTUR: Hier wurde vorher die ganze Liste zurückgegeben. Jetzt wird das erste Element extrahiert.
winner = top_departments[0]
self.logger.debug(f"'{job_title}' -> '{winner}' (Stufe 2: Keyword Match, Score {max_score})")
return winner
best_priority = float('inf')
winner = top_departments
# KORREKTUR: Fallback-Gewinner ist jetzt ebenfalls ein String, kein Liste.
winner = top_departments[0]
for department in top_departments:
priority = self.keyword_rules[department].get("priority", 99)
if priority < best_priority: