Commit Graph

211 Commits

Author SHA1 Message Date
1a894da4a7 bugfix 2025-04-10 06:13:53 +00:00
d557ecce88 1.5.2: Ergänzung heuristischer E-Mail-Generierung und Spaltenanpassung im Contacts-Blatt
- 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
2025-04-10 06:11:28 +00:00
2377149d76 bugfix 2025-04-10 05:53:53 +00:00
33c9f76460 1.5.1: Integrierter hybrider Geschlechtsdetektor & aktualisierte Kontakte-Spalten
- 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
2025-04-10 05:49:56 +00:00
3e89898477 bugfix 2025-04-09 17:20:40 +00:00
e3c043e4ed bugfix 2025-04-09 17:14:57 +00:00
46050e30b7 bugfix 2025-04-09 17:01:48 +00:00
0d53325ecb Version 1.5.0 – Verbesserung der Website-Detail-Extraktion und Kontaktsuche
- **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.
2025-04-09 13:28:40 +00:00
7a374f1d4e Bigfix 2025-04-09 13:03:42 +00:00
c8956242b7 bugfix 2025-04-09 12:25:21 +00:00
990d7ef7b4 v1.4.9: Verbesserte Wikipedia-Konsistenzprüfung und erweiterte Log-Ausgaben für Website-Scraping
- 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.
2025-04-09 12:07:18 +00:00
599881adbe debug 2025-04-09 10:00:03 +00:00
c8b9d0e4e9 bugfix 2025-04-09 09:45:54 +00:00
55797e7257 bugfix 2025-04-09 09:39:28 +00:00
6fbab98257 bugfix 2025-04-09 09:28:52 +00:00
36e6e59a38 bugfix 2025-04-09 09:19:40 +00:00
c391fbc0de bugfix 2025-04-09 09:14:50 +00:00
417850b31e bugfix 2025-04-09 09:05:21 +00:00
7eb1473e43 bugfix 2025-04-09 08:39:26 +00:00
a3263f4f75 bugfix 2025-04-09 08:26:50 +00:00
4be5b0bedf bugfix 2025-04-09 08:21:59 +00:00
05baa7fe2b bugfix 2025-04-09 08:15:24 +00:00
654c45d3be v1.4.7.1 Verbesserter Website-Scraper: User-Agent gesetzt und SSL-Verifikation optional
- 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.
2025-04-09 07:46:03 +00:00
9f45231a74 bugfix 2025-04-09 07:31:23 +00:00
3acb6cf3dc bugfix 2025-04-09 07:21:20 +00:00
9007ddffe2 v1.4.7 Fallback Website-Details: Mehr Logging & Fallback in Branchenbewertung
- 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.
2025-04-09 07:04:45 +00:00
dda14ccbf7 v1.4.6 Erweiterte Modi: Neuer Modus 23 Website-Detail Extraction + SERP Lookup
- 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.
2025-04-09 06:36:35 +00:00
927def7266 URL normalisierung 2025-04-09 05:27:31 +00:00
9ae2c51591 bugfix 2025-04-08 19:39:55 +00:00
1d11ed3ef0 bugfix 2025-04-08 19:37:22 +00:00
4b374192b1 bugfix 2025-04-08 19:31:38 +00:00
a2ea4cf21e Bugfix 2025-04-08 19:26:05 +00:00
d6d28a0616 bugfix 2025-04-08 19:20:34 +00:00
80c930b097 v1.4.6 Neue Website-Funktionen: SERP Lookup & Detail-Scraper integriert
- 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
2025-04-08 18:24:46 +00:00
d52533348a v1.4.6 Neue Betriebsmodi: Untermodi für Re-Evaluation, Website, SERP, ChatGPT implementiert
- 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
2025-04-08 17:58:02 +00:00
0dad95c036 v1.4.5 Timestamp-Skip und URL-Scheme ergänzt, Website-Fallback bleibt, Alignment Demo vollständig be
- 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.
2025-04-08 14:43:32 +00:00
de51bd76f7 bugfix 2025-04-08 14:15:55 +00:00
4b349f66a8 bugfix 2025-04-08 14:05:57 +00:00
a0703f2a14 v1.4.4 Fallback über Website-Startseite integriert, Anpassung Branchenprompt, Zeilenabfrage in Modus
- 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.
2025-04-08 13:51:14 +00:00
308f94b697 bugfix 2025-04-08 12:05:59 +00:00
c45cffd2e5 bugfix 2025-04-08 11:55:23 +00:00
5eeddc1669 Update brancheneinstufung.py 2025-04-08 09:56:03 +00:00
dea6e47eb5 bugfix
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.
2025-04-08 09:55:19 +00:00
b394dc8d6c v1.4.3 Anpassung Branchenbewertung im Batch, Ziel-Branchenschema streng prüfen, Zeilenabfrage in Mod
- 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.
2025-04-08 08:56:03 +00:00
328525f930 v1.4.2 Branchenbewertung im Batch, Wikipedia k.A.-Handling optimiert, Zeilenabfrage in Modus 51
- 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.
2025-04-08 08:36:04 +00:00
1355190cbe v1.4.1 Anpassung Spaltenzuordnung, erneute Suche bei k.A. und Zeilenabfrage im Modus 51
- 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.
2025-04-08 08:10:13 +00:00
467c436458 debug 2025-04-08 05:48:17 +00:00
75166c60b4 v1.4.0 Erweiterung Betriebsmodi, robuste ChatGPT-Verarbeitung, Logging-Verbesserungen
- 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
2025-04-08 05:20:10 +00:00
fd67a4c9c3 bugfix 2025-04-07 19:10:01 +00:00
50f319e2a2 1.4.0 von 4.o 2025-04-07 19:06:22 +00:00