Bigfix
This commit is contained in:
@@ -1256,21 +1256,20 @@ def _process_single_row(self, row_num, row_data, process_wiki=True, process_chat
|
|||||||
if website_url.strip() != "" and website_url.strip().lower() != "k.a.":
|
if website_url.strip() != "" and website_url.strip().lower() != "k.a.":
|
||||||
website_raw = get_website_raw(website_url)
|
website_raw = get_website_raw(website_url)
|
||||||
website_summary = summarize_website_content(website_raw)
|
website_summary = summarize_website_content(website_raw)
|
||||||
try:
|
debug_print(f"Zeile {row_num}: Website-Daten gescrapt. Rohtext (Länge {len(website_raw)}): {website_raw[:100]}..., Zusammenfassung: {website_summary}")
|
||||||
self.sheet_handler.sheet.update(values=[[website_raw]], range_name=f"AR{row_num}")
|
|
||||||
debug_print(f"Zeile {row_num}: Spalte AR Update erfolgreich – Auszug: {website_raw[:100]}...")
|
|
||||||
except Exception as e:
|
|
||||||
debug_print(f"Zeile {row_num}: Fehler beim Update von Spalte AR: {e}")
|
|
||||||
try:
|
|
||||||
self.sheet_handler.sheet.update(values=[[website_summary]], range_name=f"AS{row_num}")
|
|
||||||
debug_print(f"Zeile {row_num}: Spalte AS Update erfolgreich – Zusammenfassung: {website_summary}")
|
|
||||||
except Exception as e:
|
|
||||||
debug_print(f"Zeile {row_num}: Fehler beim Update von Spalte AS: {e}")
|
|
||||||
debug_print(f"Zeile {row_num}: Website-Daten gescrapt. Rohtext Länge: {len(website_raw)}, Zusammenfassung: {website_summary}")
|
|
||||||
else:
|
else:
|
||||||
debug_print(f"Zeile {row_num}: Kein gültiger Website-URL vorhanden, Website-Scraping wird übersprungen.")
|
debug_print(f"Zeile {row_num}: Kein gültiger Website-URL vorhanden, Website-Scraping wird übersprungen.")
|
||||||
|
|
||||||
# Wikipedia-Verarbeitung (falls process_wiki True)
|
# Erstelle einen Dict mit allen Werten, die in dieser Zeile aktualisiert werden sollen.
|
||||||
|
# Dadurch können wir alle Updates in einem einzigen Aufruf zusammenfassen.
|
||||||
|
updates = {}
|
||||||
|
|
||||||
|
# Spalte AR: Website Rohtext
|
||||||
|
updates[f"AR{row_num}"] = website_raw
|
||||||
|
# Spalte AS: Website Zusammenfassung
|
||||||
|
updates[f"AS{row_num}"] = website_summary
|
||||||
|
|
||||||
|
# Weiterer Verarbeitungsteil: Wikipedia-Verarbeitung (falls process_wiki True)
|
||||||
wiki_update_range = f"L{row_num}:R{row_num}"
|
wiki_update_range = f"L{row_num}:R{row_num}"
|
||||||
dt_wiki_range = f"AN{row_num}"
|
dt_wiki_range = f"AN{row_num}"
|
||||||
company_data = {}
|
company_data = {}
|
||||||
@@ -1295,16 +1294,16 @@ def _process_single_row(self, row_num, row_data, process_wiki=True, process_chat
|
|||||||
'umsatz': 'k.A.', 'mitarbeiter': 'k.A.', 'categories': 'k.A.',
|
'umsatz': 'k.A.', 'mitarbeiter': 'k.A.', 'categories': 'k.A.',
|
||||||
'full_infobox': 'k.A.'
|
'full_infobox': 'k.A.'
|
||||||
}
|
}
|
||||||
self.sheet_handler.sheet.update(values=[[
|
updates.update({
|
||||||
row_data[11] if len(row_data) > 11 and row_data[11].strip() not in ["", "k.A."] else "k.A.",
|
f"L{row_num}": row_data[11] if len(row_data) > 11 and row_data[11].strip() not in ["", "k.A."] else "k.A.",
|
||||||
company_data.get('url', 'k.A.'),
|
f"M{row_num}": company_data.get('url', 'k.A.'),
|
||||||
company_data.get('first_paragraph', 'k.A.'),
|
f"N{row_num}": company_data.get('first_paragraph', 'k.A.'),
|
||||||
company_data.get('branche', 'k.A.'),
|
f"O{row_num}": company_data.get('branche', 'k.A.'),
|
||||||
company_data.get('umsatz', 'k.A.'),
|
f"P{row_num}": company_data.get('umsatz', 'k.A.'),
|
||||||
company_data.get('mitarbeiter', 'k.A.'),
|
f"Q{row_num}": company_data.get('mitarbeiter', 'k.A.'),
|
||||||
company_data.get('categories', 'k.A.')
|
f"R{row_num}": company_data.get('categories', 'k.A.')
|
||||||
]], range_name=wiki_update_range)
|
})
|
||||||
self.sheet_handler.sheet.update(values=[[datetime.now().strftime("%Y-%m-%d %H:%M:%S")]], range_name=dt_wiki_range)
|
updates[dt_wiki_range] = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
||||||
else:
|
else:
|
||||||
debug_print(f"Zeile {row_num}: Wikipedia-Timestamp bereits gesetzt – überspringe Wiki-Auswertung.")
|
debug_print(f"Zeile {row_num}: Wikipedia-Timestamp bereits gesetzt – überspringe Wiki-Auswertung.")
|
||||||
|
|
||||||
@@ -1315,16 +1314,20 @@ def _process_single_row(self, row_num, row_data, process_wiki=True, process_chat
|
|||||||
if len(row_data) <= 40 or row_data[40].strip() == "":
|
if len(row_data) <= 40 or row_data[40].strip() == "":
|
||||||
crm_umsatz = row_data[8] if len(row_data) > 8 else "k.A."
|
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.'))
|
abgleich_result = compare_umsatz_values(crm_umsatz, company_data.get('umsatz', 'k.A.'))
|
||||||
self.sheet_handler.sheet.update(values=[[abgleich_result]], range_name=f"AG{row_num}")
|
updates[f"AG{row_num}"] = abgleich_result
|
||||||
|
|
||||||
crm_data = ";".join(row_data[1:10])
|
crm_data = ";".join(row_data[1:10])
|
||||||
wiki_data_str = ";".join(row_data[11:18])
|
wiki_data_str = ";".join(row_data[11:18])
|
||||||
valid_result = process_wiki_verification(crm_data, wiki_data_str)
|
valid_result = process_wiki_verification(crm_data, wiki_data_str)
|
||||||
self.sheet_handler.sheet.update(values=[[valid_result]], range_name=f"R{row_num}")
|
updates[f"R{row_num}"] = valid_result
|
||||||
|
|
||||||
fsm_result = evaluate_fsm_suitability(company_name, company_data)
|
fsm_result = evaluate_fsm_suitability(company_name, company_data)
|
||||||
self.sheet_handler.sheet.update(values=[[fsm_result["suitability"]]], range_name=f"Y{row_num}")
|
updates[f"Y{row_num}"] = fsm_result["suitability"]
|
||||||
self.sheet_handler.sheet.update(values=[[fsm_result["justification"]]], range_name=f"Z{row_num}")
|
updates[f"Z{row_num}"] = fsm_result["justification"]
|
||||||
|
|
||||||
st_estimate = evaluate_servicetechnicians_estimate(company_name, company_data)
|
st_estimate = evaluate_servicetechnicians_estimate(company_name, company_data)
|
||||||
self.sheet_handler.sheet.update(values=[[st_estimate]], range_name=f"AD{row_num}")
|
updates[f"AD{row_num}"] = st_estimate
|
||||||
|
|
||||||
internal_value = row_data[7] if len(row_data) > 7 else "k.A."
|
internal_value = row_data[7] if len(row_data) > 7 else "k.A."
|
||||||
internal_category = map_internal_technicians(internal_value) if internal_value != "k.A." else "k.A."
|
internal_category = map_internal_technicians(internal_value) if internal_value != "k.A." else "k.A."
|
||||||
if internal_category != "k.A." and st_estimate != internal_category:
|
if internal_category != "k.A." and st_estimate != internal_category:
|
||||||
@@ -1332,25 +1335,43 @@ def _process_single_row(self, row_num, row_data, process_wiki=True, process_chat
|
|||||||
discrepancy = explanation
|
discrepancy = explanation
|
||||||
else:
|
else:
|
||||||
discrepancy = "ok"
|
discrepancy = "ok"
|
||||||
self.sheet_handler.sheet.update(values=[[discrepancy]], range_name=f"AF{row_num}")
|
updates[f"AF{row_num}"] = discrepancy
|
||||||
|
|
||||||
crm_employee = row_data[10] if len(row_data) > 10 else "k.A."
|
crm_employee = row_data[10] if len(row_data) > 10 else "k.A."
|
||||||
wiki_employee = company_data.get('mitarbeiter', 'k.A.')
|
wiki_employee = company_data.get('mitarbeiter', 'k.A.')
|
||||||
emp_estimate = process_employee_estimation(company_name, company_data.get('first_paragraph', 'k.A.'), crm_employee)
|
emp_estimate = process_employee_estimation(company_name, company_data.get('first_paragraph', 'k.A.'), crm_employee)
|
||||||
emp_consistency = process_employee_consistency(crm_employee, wiki_employee, emp_estimate)
|
emp_consistency = process_employee_consistency(crm_employee, wiki_employee, emp_estimate)
|
||||||
self.sheet_handler.sheet.update(values=[[emp_estimate]], range_name=f"AB{row_num}")
|
updates[f"AB{row_num}"] = emp_estimate
|
||||||
self.sheet_handler.sheet.update(values=[[emp_consistency]], range_name=f"AC{row_num}")
|
updates[f"AC{row_num}"] = emp_consistency
|
||||||
|
|
||||||
revenue_result = evaluate_umsatz_chatgpt(company_name, company_data.get('umsatz', 'k.A.'))
|
revenue_result = evaluate_umsatz_chatgpt(company_name, company_data.get('umsatz', 'k.A.'))
|
||||||
self.sheet_handler.sheet.update(values=[[revenue_result]], range_name=f"AG{row_num}")
|
updates[f"AG{row_num}"] = revenue_result
|
||||||
|
|
||||||
total_tokens = f"Wiki: {token_count(str(company_data.get('first_paragraph', '')))}, Chat: {token_count(crm_data + wiki_data_str)}, Emp: {token_count(str(emp_estimate))}"
|
total_tokens = f"Wiki: {token_count(str(company_data.get('first_paragraph', '')))}, Chat: {token_count(crm_data + wiki_data_str)}, Emp: {token_count(str(emp_estimate))}"
|
||||||
self.sheet_handler.sheet.update(values=[[total_tokens]], range_name=f"AQ{row_num}")
|
updates[f"AQ{row_num}"] = total_tokens
|
||||||
self.sheet_handler.sheet.update(values=[[datetime.now().strftime('%Y-%m-%d %H:%M:%S')]], range_name=dt_chat_range)
|
updates[dt_chat_range] = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
||||||
else:
|
else:
|
||||||
debug_print(f"Zeile {row_num}: ChatGPT-Timestamp bereits gesetzt – überspringe ChatGPT-Auswertung.")
|
debug_print(f"Zeile {row_num}: ChatGPT-Timestamp bereits gesetzt – überspringe ChatGPT-Auswertung.")
|
||||||
|
|
||||||
# Aktualisiere Timestamp und Version
|
# Abschließende Updates: Timestamp für letzte Prüfung und Version
|
||||||
current_dt = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
current_dt = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
||||||
self.sheet_handler.sheet.update(values=[[current_dt]], range_name=ver_range)
|
updates[ver_range] = current_dt
|
||||||
self.sheet_handler.sheet.update(values=[[Config.VERSION]], range_name=ver_range)
|
updates["AP" + str(row_num)] = Config.VERSION
|
||||||
|
|
||||||
|
# Führe ein Batch-Update aller gesammelten Werte für diese Zeile durch
|
||||||
|
try:
|
||||||
|
batch_updates = []
|
||||||
|
for cell, value in updates.items():
|
||||||
|
batch_updates.append({
|
||||||
|
"range": cell,
|
||||||
|
"values": [[value]]
|
||||||
|
})
|
||||||
|
# Verwende die batch_update-Methode von gspread
|
||||||
|
self.sheet_handler.sheet.batch_update(batch_updates)
|
||||||
|
debug_print(f"Zeile {row_num}: Batch-Update erfolgreich durchgeführt. Geschriebene Werte: {updates}")
|
||||||
|
except Exception as e:
|
||||||
|
debug_print(f"Zeile {row_num}: Fehler beim Batch-Update: {e}")
|
||||||
|
|
||||||
debug_print(f"Zeile {row_num} abgeschlossen. URL: {company_data.get('url', 'k.A.')}, "
|
debug_print(f"Zeile {row_num} abgeschlossen. URL: {company_data.get('url', 'k.A.')}, "
|
||||||
f"Branche: {company_data.get('branche', 'k.A.')}, Umsatz-Abgleich: {abgleich_result}, "
|
f"Branche: {company_data.get('branche', 'k.A.')}, Umsatz-Abgleich: {abgleich_result}, "
|
||||||
f"Validierung: {valid_result}, FSM: {fsm_result['suitability']}, "
|
f"Validierung: {valid_result}, FSM: {fsm_result['suitability']}, "
|
||||||
@@ -1360,7 +1381,6 @@ def _process_single_row(self, row_num, row_data, process_wiki=True, process_chat
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# ==================== ALIGNMENT DEMO FÜR HAUPTBLATT UND CONTACTS ====================
|
# ==================== ALIGNMENT DEMO FÜR HAUPTBLATT UND CONTACTS ====================
|
||||||
def alignment_demo_full():
|
def alignment_demo_full():
|
||||||
alignment_demo(GoogleSheetHandler().sheet)
|
alignment_demo(GoogleSheetHandler().sheet)
|
||||||
|
|||||||
Reference in New Issue
Block a user