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):
Labyrinthgenerierung: Es wird ein „perfektes“ Labyrinth erstellt (ohne Schleifen), das dennoch Sackgassen enthalten kann.
Steuerung: Mit den Pfeiltasten bewegst Du den Ball, wobei vor jedem Schritt geprüft wird, ob eine Wand den Weg blockiert.
Timer & Anzeige: Vor Spielstart bleibt das Labyrinth unsichtbar. Erst nach Drücken der Leertaste wird es angezeigt und der Timer startet.
Debug-Ausgabe im Verifizierungsmodus zeigt jetzt die Zeilennummern und Firmennamen des aktuellen Batches.
In allen relevanten Modi wird nun abgefragt, wieviele Zeilen verarbeitet werden sollen (Batch-Modus erwartet Vielfaches von 10).
Alle sonstigen Funktionen bleiben erhalten – die Spaltenpositionen müssen unverändert sein, um den Code nicht anzupassen.
Modus 51 wurde so angepasst, dass im Batch jeweils 10 Einträge aggregiert werden.
Für jeden Eintrag wird aus ChatGPT das Ergebnis verarbeitet:
– Spalte S erhält „OK“ (falls passend) oder bleibt leer.
– Falls ein alternativer Artikel vorgeschlagen wird, wird die URL in Spalte U und die Begründung in Spalte V geschrieben; bei fehlendem Artikel wird in Spalte U „Kein Wikipedia-Eintrag vorhanden.“ eingetragen.
Der Branchenvorschlag (basierend auf den Branchenangaben in Spalte G, H, O, R) wird in Spalte W geschrieben und das Konsistenzresultat in Spalte Y.
Der Verifizierungs‑Timestamp wird in Spalte AO, die Version in Spalte AP und der Batch Token Count in Spalte AQ eingetragen.
In Modus 51 werden nun jeweils 10 Einträge in einem Batch aggregiert und an ChatGPT gesendet.
Die Antwort wird so geparst, dass in Spalte W der Branchenvorschlag, in Spalte X der Konsistenzstatus und in Spalte Y die Begründung bei Abweichung eingetragen wird.
Zusätzlich wird die Token-Zahl des aggregierten Prompts in Spalte AQ geschrieben.
Es wurden separate Startindex-Funktionen implementiert, um Wiki- und ChatGPT-Runs über unterschiedliche Spalten zu steuern.
- Neuer Modus 8 implementiert, der 10 Zeilen-Batches bildet, einen aggregierten Prompt erstellt und mit tiktoken die Tokenanzahl schätzt.
- Der ermittelte Tokenwert wird in Spalte AQ für alle Zeilen des Batches eingetragen.
- Alle Spalten wurden um +1 verschoben (Kurzform in Spalte C, Website in D, etc.).
- Bestehende Modi (1,2,3,4,5,6,7,51) bleiben erhalten.
- Neuer Modus 51 implementiert, der ausschließlich die Wikipedia-Daten extrahiert und die Brancheneinordnung (bis Spalte Y) vornimmt.
- FSM- und Servicetechniker-Bewertungen werden in diesem Modus übersprungen.
- Alle Spalten wurden um +1 verschoben; Kurzform des Firmennamens ist nun in Spalte C.
- Update-Aufrufe wurden entsprechend angepasst.
- Neue Header: Spalte C enthält jetzt die Kurzform des Firmennamens.
- Website verschoben auf Spalte D, und alle nachfolgenden Spalten um +1.
- Alle Code-Referenzen (Update-Ranges, Indexe in _process_single_row, get_start_index, process_contacts, process_contact_research) wurden entsprechend angepasst.
- Für LinkedIn-Suchen wird jetzt die Kurzform (Spalte C) bevorzugt verwendet.
- Regulärer Modus (1): Bearbeitet nur Zeilen ohne Wikipedia- (Spalte AM) bzw. ChatGPT-Timestamp (Spalte AN)
- Re-Evaluierungsmodus (2): Verarbeitet nur Zeilen mit "x" in Spalte A
- Alignment-Demo (3): Schreibt neuen Header in Haupt- und Contacts-Blatt
- Modus 4: Nur Wikipedia-Suche, Modus 5: Nur ChatGPT-Bewertung
- Modus 6: Contact Research via SerpAPI; Spalten AH-AK aktualisieren und AL als Timestamp setzen
- Neue Header-Spalten: AH (Serviceleiter), AI (IT-Leiter), AJ (Management), AK (Disponent), AL (Contact Search Timestamp), AM (Wikipedia Timestamp), AN (ChatGPT Timestamp), AO (Version)
- Alle bisherigen Funktionen bleiben erhalten
- Neuer Modus 5 (contacts_alignment_demo) führt einen Schreibtest auf dem Contacts-Sheet durch
- Spalten AH und AI werden nun getrennt als Timestamp für Wiki-Update bzw. ChatGPT-Bewertung geführt; restliche Spalten um eine Position verschoben
- Debug-Ausgaben wurden erweitert, um den Ablauf und die Ergebnisse besser nachvollziehen zu können
- Beibehaltung aller Funktionen aus früheren Versionen (Modi 1-3, LinkedIn Contacts)
- Neuer Modus 4 implementiert, der ausschließlich Wikipedia-Suchen ausführt und keine ChatGPT-Anfragen stellt
- Debug-Ausgaben wurden verbessert, um den Ablauf und die Ergebnisse besser nachvollziehen zu können
- Startindex wird anhand des letzten Timestamps in Spalte AH korrekt ermittelt, sodass bestehende Datensätze nicht überschrieben werden
- Alle bisherigen Funktionen aus v1.3.6 bleiben erhalten
- Neuer Modus 4 wurde implementiert, der ausschließlich Wikipedia-Suchen durchführt ohne ChatGPT-Anfragen
- Modus 5 ermöglicht die LinkedIn-Kontaktsuche via SerpApi
- Debug-Ausgaben wurden in allen Funktionen verbessert, sodass der Ablauf und die Ergebnisse besser nachvollzogen werden können
- Der Startindex wird anhand des letzten Timestamps in Spalte AH korrekt ermittelt, sodass bestehende Datensätze nicht überschrieben werden
- Implemented new mode 4 that performs only Wikipedia searches without ChatGPT requests
- process_wikipedia_only() updates columns K–Q, AH, and AI in the main sheet
- Retained existing functions for modes 1–3 and improved debug output for tracing
- Provided complete commit summary and description format with "- " as prefix
Ersetze in deinem Skript den bisherigen Codeabschnitt, der den neuen Modus für die LinkedIn-Kontaktsuche (Modus 4) implementiert hat – also den gesamten Bereich ab der Definition von def search_linkedin_contact(...) bis zum Ende der Funktion def process_contacts(): – durch den oben stehenden Code.
Diese Funktionen liegen in der Sektion „NEUER MODUS: CONTACTS“ (ungefähr im mittleren Bereich deines Skripts, direkt vor dem Main-Programm).
Die zusätzlichen Debug-Ausgaben sorgen dafür, dass du in der Konsole und in der Log-Datei siehst, welche Firmen gerade verarbeitet werden, welche Suchanfragen erstellt werden und welche Ergebnisse (bzw. ob ein Kontakt gefunden wurde) zurückkommen.
Neuer Modus (4) zur Suche von LinkedIn-Kontakten via SerpApi, Ausgabe im Tabellenblatt "Contacts" mit den Spalten Firmenname, Website, Vorname, Nachname, Position.
Bugfix: Im regulären Modus (1) wird jetzt ab dem letzten Timestamp in Spalte AH nur noch die angegebene Anzahl an Zeilen verarbeitet.
Bugfix: Bestehende Datensätze (mit Timestamp in AH) werden nicht überschrieben, es wird ab der ersten leeren Zeile gestartet.
Weitere Anpassungen bei den bisherigen Funktionen (FSM, Servicetechniker-Schätzung) bleiben erhalten.
Der Dekorator retry_on_failure wurde oben im Code definiert.
Wikipedia-Artikelvorschlag aus Spalte K wird bevorzugt genutzt.
Nach dem Schreiben der Wiki-Daten wird geprüft, ob das Update abgeschlossen ist, mit einer 3‑Sekunden-Pause.
Der FSM-Eignungsparser wurde flexibler angepasst, sodass auch freie Antworten erkannt werden.
Bei Abweichungen in der Servicetechniker-Schätzung wird jetzt zusätzlich eine detaillierte Erklärung von ChatGPT angefordert.
Die Spalten AF und AG werden mit "XX" befüllt.
Alle Debug-Ausgaben werden automatisch in einer Log-Datei im Ordner "Log" gespeichert, deren Name Datum, Uhrzeit und Versionsnummer enthält.
Wikipedia-Artikelvorschlag aus Spalte K wird bevorzugt genutzt.
Nach dem Schreiben der Wikipedia-Daten wird überprüft, ob das Update abgeschlossen ist (mit einer max. 5‑s‑Wartezeit) und es folgt eine 3‑s Pause.
Der FSM-Eignungsparser wurde angepasst, um auch freiere Antworten zu verarbeiten.
Bei Diskrepanzen in der Servicetechniker-Schätzung wird nun zusätzlich eine detaillierte Erklärung von ChatGPT angefordert.
Die Spalten AF und AG werden vorerst mit "XX" befüllt.
Alle Debug-Ausgaben werden automatisch in einer Log-Datei im Ordner "Log" mit Datum und Versionsnummer gespeichert.
Bevorzugter Wikipedia-Artikel aus Spalte K wird genutzt.
Nach dem Schreiben der Wiki-Daten erfolgt eine 3-Sekunden-Pause.
Neue Funktion zur FSM-Eignungsprüfung (Spalte Y/Z) integriert.
Neue Servicetechniker-Schätzung (Spalte AD) und Vergleich mit interner Angabe (Spalte AE) hinzugefügt.
Versionsnummer wurde auf v1.3.4 aktualisiert.
Neue Funktion zur Branchenzuordnung hinzugefügt. ChatGPT bewertet basierend auf CRM, Wikipedia-Daten und Fokusbranchen. Spalten V, W und X werden entsprechend aktualisiert. Versionsnummer wurde auf v1.3.2 aktualisiert.
Validierung:
Eine neue Funktion validate_company_data erstellt einen Prompt für die ChatGPT-API, in dem die relevanten CRM- und Wikipedia-Daten (Firmenname, Umsatz, Mitarbeiter, Branche) verglichen werden. Je nach Antwort wird „OK“ oder „X“ sowie eine Begründung zurückgegeben.
Alternative Suche:
Falls eine Inkonsistenz festgestellt wird (Validierung ergibt „X“), wird in der Funktion find_alternative_wikipedia_article nach einem alternativen Wikipedia-Artikel gesucht und dessen URL in Spalte T geschrieben.
Spalten R, S, T:
Die Ergebnisse der Validierung (Flag und Begründung) werden in Spalte R und S ausgegeben, während bei Inkonsistenz der alternative Artikel in Spalte T hinterlegt wird.