Commit Graph

1422 Commits

Author SHA1 Message Date
b2cd644c37 gemini.Dockerfile hinzugefügt 2025-11-06 14:32:49 +00:00
1dd86d8e3e duplicate_checker_old.py aktualisiert 2025-11-06 14:00:44 +00:00
0a729f2df7 duplicate_checker_old.py aktualisiert 2025-11-06 13:56:14 +00:00
a67615ad55 duplicate_checker_old.py aktualisiert 2025-11-06 10:14:36 +00:00
2df8441b4f duplicate?checker_old.py hinzugefügt 2025-11-06 10:13:39 +00:00
12ac707001 requirements.txt aktualisiert 2025-09-24 19:29:27 +00:00
e052933704 train_model.py aktualisiert 2025-09-24 19:21:45 +00:00
1e996a0023 train_model.py aktualisiert 2025-09-24 15:47:22 +00:00
da9d97dae7 duplicate_checker.py aktualisiert 2025-09-24 15:37:12 +00:00
c2184dd004 train_model.py aktualisiert 2025-09-24 14:31:17 +00:00
fa58a870bc duplicate_checker.py aktualisiert 2025-09-24 14:23:45 +00:00
9ff6f97513 train_model.py aktualisiert 2025-09-24 14:23:15 +00:00
894d6f50df train_model.py aktualisiert 2025-09-24 14:17:29 +00:00
3ef2465cdc requirements_diskstation.txt hinzugefügt 2025-09-24 14:14:39 +00:00
2b2d25c111 train_model.py aktualisiert 2025-09-24 14:11:12 +00:00
673fe18347 train_model.py aktualisiert 2025-09-24 14:06:54 +00:00
c91dbd6246 v1.2.4 - Priorisierung nach Geschäfts-Relevanz & Keyword-Optimierung
- Das Priorisierungsmodell wurde grundlegend überarbeitet und orientiert sich nun an der tatsächlichen Häufigkeit und Relevanz der Departments, anstatt an semantischer Eindeutigkeit.
- Die `STOP_WORDS`-Liste wurde signifikant angepasst. Wichtige Signalwörter wie 'service', 'customer', 'care' und 'support' wurden entfernt, um die Erkennungsrate für 'Field Service Management' drastisch zu verbessern.
- Dies korrigiert systematische Fehlzuordnungen und stellt sicher, dass die generierte Wissensbasis die Geschäftsrealität korrekt abbildet.
2025-09-19 08:58:06 +00:00
dbe65b993d contact_grouping.py aktualisiert 2025-09-18 13:48:28 +00:00
89de7e22de knowledge_base_builder.py aktualisiert 2025-09-18 13:45:27 +00:00
5cf6e22006 v1.2.3 - Bugfix SyntaxError bei KI-Beispiel-Generierung
- Bugfix: Behebt einen `SyntaxError: invalid syntax` in der Funktion `_generate_ai_examples`.
- Die fehlerhafte f-String-Formatierung, die einen Backslash innerhalb eines Ausdrucks enthielt, wurde durch eine robuste String-Verkettung ersetzt.
- Dies stellt die Lauffähigkeit des Skripts auf allen Python-Versionen sicher.
2025-09-18 13:43:56 +00:00
317212f225 v1.2.2 - Kalibrierung der Branchen-Logik
- Passt den Schwellenwert für die Branchenspezifität (`BRANCH_SPECIFICITY_THRESHOLD`) von 70% auf 60% an.
- Diese Anpassung basiert auf den Analyse-Ergebnissen der Log-Dateien und stellt sicher, dass hoch-konzentrierte Departments wie 'Baustofflogistik' und 'Production Maintenance' nun korrekt als branchenspezifisch erkannt werden.
- Die Regel für die minimale Sample-Anzahl bleibt bei 5, um statistisch irrelevante Regeln zu vermeiden.
2025-09-18 12:35:39 +00:00
eab19f69bf v1.2.1 - Bugfix Silent Logging & Robuste Konfiguration
- Bugfix: Behebt das Problem, bei dem keine Log-Ausgaben im Terminal oder in der Log-Datei erschienen sind.
- Die Skript-Struktur wurde angepasst, um eine robuste `setup_logging`-Funktion zu implementieren, die eine implizite Standard-Konfiguration durch importierte Module erkennt und überschreibt.
- Stellt sicher, dass die benutzerdefinierte Logging-Konfiguration (DEBUG-Level, File-Handler) zuverlässig angewendet wird.
- Das Skript protokolliert nun alle Prozessschritte wie vorgesehen, insbesondere die Analyse der Branchen-Spezifität.
2025-09-18 12:30:57 +00:00
785c9f9c9c v1.2.0 - Bugfix & Robuste Branchen-Regel-Erkennung
- Bugfix: Behebt den Fehler, bei dem keine branchenspezifischen Regeln generiert wurden, weil die Schwellenwerte zu restriktiv waren.
- Die Schwellenwerte für die minimale Sample-Anzahl und die prozentuale Branchen-Reinheit wurden gelockert und sind nun am Anfang des Skripts konfigurierbar.
- Verbessertes Logging: Das Skript gibt nun detailliert Auskunft, warum ein Department als branchenspezifisch eingestuft oder warum es verworfen wurde.
2025-09-18 12:22:33 +00:00
98f079f064 v1.2.2 - Dynamische Branchen-Regeln & Kontext-KI
- 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.
2025-09-18 12:01:22 +00:00
b05d44af2f v1.2.1 - Feature: Automatische & Skalierbare Branchen-Regeln
- Feature: Erstellt nun automatisch kontext-sensitive Branchen-Regeln direkt in der `keyword_rules.json`.
- Das Skript liest die neue Spalte 'Branche' aus dem 'CRM_Jobtitles'-Sheet.
- NEU: Eine zentrale `BRANCH_GROUP_RULES` Konfiguration wurde hinzugefügt, um Branchen zu logischen Gruppen (z.B. "Bau", "Versorger") zusammenzufassen.
- NEU: Das Skript analysiert die Verteilung der Jobtitel pro Department über die Branchen-Gruppen.
- Wenn ein Department eine hohe Konzentration (Standard >80%) in einer Branchen-Gruppe aufweist, wird es als "branchenspezifisch" markiert.
- Die relevanten Keywords der Branchen-Gruppe werden dann automatisch in den neuen `required_branch_keywords`-Eintrag in der `keyword_rules.json` geschrieben.
- Entfernt die Notwendigkeit, Branchen-Regeln manuell im Code zu pflegen.
2025-09-18 12:00:04 +00:00
b80a123e8a v1.1.8 - Stabilitäts-Update: KI-Batch-Verarbeitung
- 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...").
2025-09-18 08:40:14 +00:00
e1ce63a7d1 v1.1.7 - Bugfix KI-Prompt & Zuverlässigkeit
- 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.
2025-09-18 08:20:01 +00:00
731377e3b7 v1.1.6 - Bugfix Silent Logging & Robuste Konfiguration
- 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.
2025-09-18 08:10:30 +00:00
cd9a2ffc55 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.
2025-09-18 07:59:31 +00:00
59d5b1394e v1.1.3 - Bugfix Robuste KI-Antwortverarbeitung
- 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.
2025-09-18 07:54:18 +00:00
83a5d181e7 v1.1.2 - Bugfix Startup-Verhalten & verbessertes Feedback
- 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.
2025-09-18 07:50:40 +00:00
ac62a3a8a8 contact_grouping.py aktualisiert 2025-09-18 07:44:30 +00:00
2615203b62 v1.1.0 - Intelligente Lernfunktion & Verbessertes Logging
- 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.
2025-09-18 07:37:16 +00:00
63d2388bf8 contact_grouping.py hinzugefügt 2025-09-18 07:28:31 +00:00
248ab1787b knowledge_base_builder.py aktualisiert 2025-09-18 07:12:43 +00:00
e73cd71617 knowledge_base_builder.py hinzugefügt 2025-09-17 12:47:27 +00:00
8e5d0350c8 requirements.txt aktualisiert 2025-09-10 20:03:36 +00:00
5fa5a29250 duplicate_checker.py aktualisiert 2025-09-10 11:26:28 +00:00
601d1ab848 train_model.py aktualisiert 2025-09-10 08:25:50 +00:00
db6965927f duplicate_checker.py aktualisiert 2025-09-10 08:13:02 +00:00
2254409f26 train_model.py aktualisiert 2025-09-10 08:12:31 +00:00
b13b610be4 train_model.py aktualisiert 2025-09-08 18:36:52 +00:00
b8d491f0fc train_model.py aktualisiert 2025-09-08 18:27:12 +00:00
c1867fa2f1 train_model.py aktualisiert 2025-09-08 18:04:36 +00:00
1b29cfb6a3 train_model.py aktualisiert 2025-09-08 12:29:47 +00:00
a3a5bb049f train_model.py hinzugefügt 2025-09-08 12:27:57 +00:00
804b40d6c2 create_weights.py hinzugefügt 2025-09-08 11:31:53 +00:00
27bc508b86 xgb_model.json hinzugefügt 2025-09-08 11:30:45 +00:00
ae975367ad NEU: Integration eines trainierten Machine-Learning-Modells (XGBoost) für die Match-Entscheidung
--- FEATURES v5.0 ---
- NEU: Integration eines trainierten Machine-Learning-Modells (XGBoost) für die Match-Entscheidung.
- Das Modell wurde auf dem vom Benutzer bereitgestellten "Gold-Standard"-Datensatz trainiert.
- Feature Engineering: Für jeden Vergleich werden ~15 Merkmale berechnet, die dem Modell als Input dienen.
- Die alte, heuristische Scoring-Logik wurde vollständig durch das ML-Modell ersetzt.
- Ergebnis ist eine datengetriebene, hochpräzise Duplikatserkennung mit >80% Trefferquote.
2025-09-08 11:24:01 +00:00
24e32da53c duplicate_checker.py aktualisiert
- NEU: Mehrstufiges Entscheidungsmodell für höhere Präzision und "Großzügigkeit".
- Stufe 1: "Golden Match" für exakte Treffer.
- Stufe 2: "Kernidentitäts-Bonus & Tie-Breaker" zur korrekten Zuordnung von Konzerngesellschaften.
- Stufe 3: Neu kalibrierter, gewichteter Score für alle anderen Fälle.
- Intelligenter Tie-Breaker, der nur bei wirklich guten und engen Kandidaten greift.
2025-09-05 11:40:52 +00:00