bugfix
This commit is contained in:
@@ -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]]})
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user