This commit is contained in:
2025-05-11 20:06:48 +00:00
parent e4c7d9570c
commit 1677ab058f

View File

@@ -4319,8 +4319,8 @@ class DataProcessor:
self.logger.info(f"Zeile {row_num_in_sheet}: Fuehre CHATGPT Evaluationen aus (Grund: {grund_message})...")
# --- 3a. Branchen-Einstufung (AH, AI, AJ, AK) --- NEUE SPALTENBUCHSTABEN BEACHTEN!
self.logger.debug(" -> Starte Branchen-Einstufung ueber ChatGPT...")
# --- 3a. Branchen-Einstufung (AH, AI, AJ, AK) ---
self.logger.info(f"Zeile {row_num_in_sheet}: Starte Branchen-Einstufung ueber ChatGPT...") # Log-Level auf INFO geändert
try:
branch_result = evaluate_branche_chatgpt(
crm_branche,
@@ -4330,68 +4330,96 @@ class DataProcessor:
website_summary
)
updates.append({'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Chat Vorschlag Branche"] + 1)}{row_num_in_sheet}', 'values': [[branch_result.get("branch", "FEHLER")]]})
self.logger.debug(f"Zeile {row_num_in_sheet}: branch_result von evaluate_branche_chatgpt: {branch_result}") # DEBUG 1
# Update für "Chat Vorschlag Branche"
vorschlag_key = "Chat Vorschlag Branche"
vorschlag_col_idx = COLUMN_MAP.get(vorschlag_key)
if vorschlag_col_idx is not None:
range_str_vorschlag = f'{self.sheet_handler._get_col_letter(vorschlag_col_idx + 1)}{row_num_in_sheet}'
wert_vorschlag = branch_result.get("branch", "FEHLER BRANCH")
updates.append({'range': range_str_vorschlag, 'values': [[wert_vorschlag]]})
self.logger.debug(f"Zeile {row_num_in_sheet}: Update vorbereitet für {vorschlag_key} ({range_str_vorschlag}): '{wert_vorschlag}'")
else:
self.logger.error(f"Zeile {row_num_in_sheet}: Schlüssel '{vorschlag_key}' nicht in COLUMN_MAP gefunden!")
# NEU: Konfidenz-Score speichern
updates.append({'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Chat Branche Konfidenz"] + 1)}{row_num_in_sheet}', 'values': [[branch_result.get("confidence", "N/A")]]})
updates.append({'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Chat Konsistenz Branche"] + 1)}{row_num_in_sheet}', 'values': [[branch_result.get("consistency", "error")]]})
updates.append({'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Chat Begruendung Abweichung Branche"] + 1)}{row_num_in_sheet}', 'values': [[branch_result.get("justification", "Keine Begruendung")]]})
konfidenz_key = "Chat Branche Konfidenz"
konfidenz_col_idx = COLUMN_MAP.get(konfidenz_key)
if konfidenz_col_idx is not None:
range_str_konfidenz = f'{self.sheet_handler._get_col_letter(konfidenz_col_idx + 1)}{row_num_in_sheet}'
wert_konfidenz = branch_result.get("confidence", "N/A CONF")
updates.append({'range': range_str_konfidenz, 'values': [[wert_konfidenz]]})
self.logger.debug(f"Zeile {row_num_in_sheet}: Update vorbereitet für {konfidenz_key} ({range_str_konfidenz}): '{wert_konfidenz}'")
else:
self.logger.error(f"Zeile {row_num_in_sheet}: Schlüssel '{konfidenz_key}' nicht in COLUMN_MAP gefunden!")
# Update für "Chat Konsistenz Branche"
konsistenz_key = "Chat Konsistenz Branche"
konsistenz_col_idx = COLUMN_MAP.get(konsistenz_key)
if konsistenz_col_idx is not None:
range_str_konsistenz = f'{self.sheet_handler._get_col_letter(konsistenz_col_idx + 1)}{row_num_in_sheet}'
wert_konsistenz = branch_result.get("consistency", "error CONS")
updates.append({'range': range_str_konsistenz, 'values': [[wert_konsistenz]]})
self.logger.debug(f"Zeile {row_num_in_sheet}: Update vorbereitet für {konsistenz_key} ({range_str_konsistenz}): '{wert_konsistenz}'")
else:
self.logger.error(f"Zeile {row_num_in_sheet}: Schlüssel '{konsistenz_key}' nicht in COLUMN_MAP gefunden!")
# Update für "Chat Begruendung Abweichung Branche"
begruendung_key = "Chat Begruendung Abweichung Branche"
begruendung_col_idx = COLUMN_MAP.get(begruendung_key)
if begruendung_col_idx is not None:
range_str_begruendung = f'{self.sheet_handler._get_col_letter(begruendung_col_idx + 1)}{row_num_in_sheet}'
wert_begruendung = branch_result.get("justification", "Keine Begruendung JUST")
updates.append({'range': range_str_begruendung, 'values': [[wert_begruendung]]})
self.logger.debug(f"Zeile {row_num_in_sheet}: Update vorbereitet für {begruendung_key} ({range_str_begruendung}): '{str(wert_begruendung)[:50]}...'")
else:
self.logger.error(f"Zeile {row_num_in_sheet}: Schlüssel '{begruendung_key}' nicht in COLUMN_MAP gefunden!")
except Exception as e_branch_eval:
self.logger.error(f"FEHLER bei Branchen-Einstufung ueber ChatGPT fuer Zeile {row_num_in_sheet}: {e_branch_eval}")
self.logger.debug(traceback.format_exc())
error_msg = f"Fehler: {str(e_branch_eval)[:100]}..."
updates.append({'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Chat Vorschlag Branche"] + 1)}{row_num_in_sheet}', 'values': [['FEHLER']]})
updates.append({'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Chat Branche Konfidenz"] + 1)}{row_num_in_sheet}', 'values': [['N/A']]}) # NEU
updates.append({'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Chat Konsistenz Branche"] + 1)}{row_num_in_sheet}', 'values': [['error']]})
updates.append({'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Chat Begruendung Abweichung Branche"] + 1)}{row_num_in_sheet}', 'values': [[error_msg]]})
error_msg = f"Fehler Eval: {str(e_branch_eval)[:100]}..."
# Fehlerwerte für alle relevanten Spalten schreiben
if COLUMN_MAP.get("Chat Vorschlag Branche") is not None:
updates.append({'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Chat Vorschlag Branche"] + 1)}{row_num_in_sheet}', 'values': [['FEHLER']]})
if COLUMN_MAP.get("Chat Branche Konfidenz") is not None:
updates.append({'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Chat Branche Konfidenz"] + 1)}{row_num_in_sheet}', 'values': [['N/A (Eval Fehler)']]})
if COLUMN_MAP.get("Chat Konsistenz Branche") is not None:
updates.append({'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Chat Konsistenz Branche"] + 1)}{row_num_in_sheet}', 'values': [['error']]})
if COLUMN_MAP.get("Chat Begruendung Abweichung Branche") is not None:
updates.append({'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Chat Begruendung Abweichung Branche"] + 1)}{row_num_in_sheet}', 'values': [[error_msg]]})
pass
# --- 3b. FSM Relevanz Bewertung (AL, AM) --- (Platzhalter wie gehabt)
self.logger.debug(" -> Starte FSM Relevanz Bewertung (Platzhalter)...")
# ... (Ihr Platzhalter-Code für FSM) ...
# --- 3c. Mitarbeiterzahl Schaetzung (AN, AO, AP) --- (Platzhalter wie gehabt)
self.logger.debug(" -> Starte Mitarbeiterzahl Schaetzung (Platzhalter)...")
# ... (Ihr Platzhalter-Code für Mitarbeiter) ...
# --- 3d. Umsatz Schaetzung (AS, AT) --- (Platzhalter wie gehabt)
self.logger.debug(" -> Starte Umsatz Schaetzung (Platzhalter)...")
# ... (Ihr Platzhalter-Code für Umsatz) ...
# --- 3e. Konsolidierung Umsatz/Mitarbeiter (AY, AZ) --- NEUE SPALTENBUCHSTABEN!
# Diese Logik wird jetzt direkt hier ausgeführt.
# --- 3e. Konsolidierung Umsatz/Mitarbeiter (AY, AZ) ---
# (Dieser Block bleibt wie im vorherigen Vorschlag, da er gut aussah)
self.logger.debug(" -> Konsolidiere Umsatz (AY) und Mitarbeiter (AZ) (Wiki > CRM Logik)...")
try:
# ... (Logik für Konsolidierung wie gehabt) ...
crm_umsatz_val = self._get_cell_value_safe(row_data, "CRM Umsatz")
wiki_umsatz_val = final_wiki_data.get('umsatz', 'k.A.')
crm_ma_val = self._get_cell_value_safe(row_data, "CRM Anzahl Mitarbeiter")
wiki_ma_val = final_wiki_data.get('mitarbeiter', 'k.A.')
num_crm_umsatz = get_numeric_filter_value(crm_umsatz_val, is_umsatz=True)
num_wiki_umsatz = get_numeric_filter_value(wiki_umsatz_val, is_umsatz=True)
num_crm_ma = get_numeric_filter_value(crm_ma_val, is_umsatz=False)
num_wiki_ma = get_numeric_filter_value(wiki_ma_val, is_umsatz=False)
final_num_umsatz = num_wiki_umsatz if num_wiki_umsatz > 0 else num_crm_umsatz
final_num_ma = num_wiki_ma if num_wiki_ma > 0 else num_crm_ma
final_umsatz_str = str(int(round(final_num_umsatz))) if final_num_umsatz > 0 else 'k.A.'
final_ma_str = str(int(round(final_num_ma))) if final_num_ma > 0 else 'k.A.'
updates.append({'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Finaler Umsatz (Wiki>CRM)"] + 1)}{row_num_in_sheet}', 'values': [[final_umsatz_str]]})
updates.append({'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Finaler Mitarbeiter (Wiki>CRM)"] + 1)}{row_num_in_sheet}', 'values': [[final_ma_str]]})
self.logger.debug(f" -> Konsolidiert: Umsatz={final_umsatz_str}, MA={final_ma_str}")
except Exception as e_consolidate:
self.logger.error(f"FEHLER bei Konsolidierung Umsatz/Mitarbeiter fuer Zeile {row_num_in_sheet}: {e_consolidate}")
self.logger.debug(traceback.format_exc())
updates.append({'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Finaler Umsatz (Wiki>CRM)"] + 1)}{row_num_in_sheet}', 'values': [['FEHLER']]})
updates.append({'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Finaler Mitarbeiter (Wiki>CRM)"] + 1)}{row_num_in_sheet}', 'values': [['FEHLER']]})
updates.append({'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Finaler Umsatz (Wiki>CRM)"] + 1)}{row_num_in_sheet}', 'values': [['FEHLER KONSO']]}) # Deutlicherer Fehler
updates.append({'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Finaler Mitarbeiter (Wiki>CRM)"] + 1)}{row_num_in_sheet}', 'values': [['FEHLER KONSO']]})
pass
# Setze den Timestamp letzte Pruefung (BC - vorher BB), da die ChatGPT-Evaluationen liefen
# Setze den Timestamp letzte Pruefung (BC), da die ChatGPT-Evaluationen liefen
updates.append({'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Timestamp letzte Pruefung"] + 1)}{row_num_in_sheet}', 'values': [[now_timestamp]]})