diff --git a/brancheneinstufung.py b/brancheneinstufung.py index 5a86d555..d10d83c0 100644 --- a/brancheneinstufung.py +++ b/brancheneinstufung.py @@ -14,7 +14,7 @@ import csv # ==================== KONFIGURATION ==================== class Config: - VERSION = "v1.2.4" # v1.2.4: Integriert ChatGPT API zur Umsatzbewertung, neuer Vergleich CRM vs. Wikipedia Umsatz + VERSION = "v1.2.5" # v1.2.5: Umsatzvergleich verbessert; 1 Sekunde Pause + zusätzliche Debug-Ausgabe LANG = "de" CREDENTIALS_FILE = "service_account.json" SHEET_URL = "https://docs.google.com/spreadsheets/d/1u_gHr9JUfmV1-iviRzbSe3575QEp7KLhK5jFV_gJcgo" @@ -75,6 +75,8 @@ def extract_numeric_value(raw_value, is_umsatz=False): raw_value = raw_value.strip() if not raw_value: return "k.A." + # Entferne gängige Zusätze wie "ca.", "circa", "über" etc. + raw_value = re.sub(r'\b(ca\.?|circa|über)\b', '', raw_value, flags=re.IGNORECASE) raw = raw_value.lower().replace("\xa0", " ") match = re.search(r'([\d.,]+)', raw, flags=re.UNICODE) if not match or not match.group(1).strip(): @@ -107,10 +109,12 @@ def extract_numeric_value(raw_value, is_umsatz=False): return str(int(round(num))) def compare_umsatz_values(crm, wiki): + debug_print(f"Vergleich CRM Umsatz: '{crm}' mit Wikipedia Umsatz: '{wiki}'") try: crm_val = float(crm) wiki_val = float(wiki) - except Exception: + except Exception as e: + debug_print(f"Fehler beim Umwandeln der Werte: CRM='{crm}', Wiki='{wiki}': {e}") return "Daten unvollständig" if crm_val == 0: return "CRM Umsatz 0" @@ -139,6 +143,7 @@ def evaluate_umsatz_chatgpt(company_name, wiki_umsatz): temperature=0.0 ) result = response.choices[0].message.content.strip() + debug_print(f"ChatGPT Antwort: '{result}'") try: value = float(result.replace(',', '.')) return str(int(round(value))) @@ -398,12 +403,12 @@ class DataProcessor: if i >= self.sheet_handler.get_start_index(): self._process_single_row(i, row) def _process_single_row(self, row_num, row_data): - # Neues Schema: + # Neues Schema: # B: Firmenname, C: Website # Wikipedia-Daten: Spalten K bis Q # ChatGPT Umsatz: Spalte AF - # CRM Umsatz (bestehend) in Spalte I (Index 8) - # Umsatz-Abgleich: Ergebnis in Spalte AG + # CRM Umsatz in Spalte I (Index 8) + # Umsatz-Abgleich: Spalte AG # Timestamp in Spalte AH, Version in Spalte AI. company_name = row_data[1] if len(row_data) > 1 else "" website = row_data[2] if len(row_data) > 2 else "" @@ -436,6 +441,8 @@ class DataProcessor: company_data.get('categories', 'k.A.') ] self.sheet_handler.sheet.update(values=[wiki_values], range_name=wiki_update_range) + # Pause einbauen, damit die Werte in Google Sheets aktualisiert werden. + time.sleep(1) # ChatGPT API: Umsatzbewertung basierend auf Firmenname und Wikipedia-Umsatz wiki_umsatz = company_data.get('umsatz', 'k.A.') if wiki_umsatz != "k.A.": @@ -443,7 +450,7 @@ class DataProcessor: else: chatgpt_umsatz = "k.A." self.sheet_handler.sheet.update(values=[[chatgpt_umsatz]], range_name=chatgpt_range) - # Umsatz-Abgleich zwischen CRM-Umsatz (Spalte I) und Wikipedia-Umsatz (aus company_data) + # Umsatz-Abgleich: CRM-Umsatz aus Spalte I und Wikipedia-Umsatz crm_umsatz = row_data[8] if len(row_data) > 8 else "k.A." abgleich_result = compare_umsatz_values(crm_umsatz, company_data.get('umsatz', 'k.A.')) self.sheet_handler.sheet.update(values=[[abgleich_result]], range_name=abgleich_range)