From 599881adbe686f5da41620041918e62551ccb01f Mon Sep 17 00:00:00 2001 From: Floke Date: Wed, 9 Apr 2025 10:00:03 +0000 Subject: [PATCH] debug --- brancheneinstufung.py | 61 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 51 insertions(+), 10 deletions(-) diff --git a/brancheneinstufung.py b/brancheneinstufung.py index 3ec9b99f..cb5c7214 100644 --- a/brancheneinstufung.py +++ b/brancheneinstufung.py @@ -427,12 +427,22 @@ def process_verification_only(): data = main_sheet.get_all_values() batch_entries = [] row_indices = [] + # Sammle Einträge, bei denen noch keine ChatGPT-Auswertung erfolgt ist (z. B. leeres Feld in Spalte AO) for i, row in enumerate(data[1:], start=2): - # Überspringe Zeilen, bei denen bereits in Spalte AO (Index 40) ein Timestamp steht if len(row) > 40 and row[40].strip() != "": continue + # Hier wird angenommen, dass der relevante Vergleichswert (z. B. Wikipedia-Daten) in Spalte Y oder AO erwartet wird. + # Passen Sie die Bedingung ggf. an. if len(row) <= 25 or row[24].strip() == "": - entry_text = f"Eintrag {i}:\nFirmenname: {row[1] if len(row)>1 else ''}\nCRM-Beschreibung: {row[7] if len(row)>7 else ''}\nWikipedia-URL: {row[11] if len(row)>11 and row[11].strip() not in ['', 'k.A.'] else 'k.A.'}\nWiki-Absatz: {row[12] if len(row)>12 else 'k.A.'}\nWiki-Kategorien: {row[16] if len(row)>16 else 'k.A.'}\n-----\n" + entry_text = ( + f"Eintrag {i}:\n" + f"Firmenname: {row[1] if len(row) > 1 else ''}\n" + f"CRM-Beschreibung: {row[7] if len(row) > 7 else ''}\n" + f"Wikipedia-URL: {row[11] if len(row) > 11 and row[11].strip() not in ['', 'k.A.'] else 'k.A.'}\n" + f"Wiki-Absatz: {row[12] if len(row) > 12 else 'k.A.'}\n" + f"Wiki-Kategorien: {row[16] if len(row) > 16 else 'k.A.'}\n" + "-----\n" + ) batch_entries.append(entry_text) row_indices.append(i) if len(batch_entries) == rows_limit: @@ -440,10 +450,16 @@ def process_verification_only(): if not batch_entries: debug_print("Keine Einträge für die Verifizierung gefunden.") return - aggregated_prompt = ("Du bist ein Experte in der Verifizierung von Wikipedia-Artikeln für Unternehmen. " - "Für jeden der folgenden Einträge prüfe, ob der vorhandene Wikipedia-Artikel (URL, Absatz, Kategorien) plausibel passt. " - "Gib das Ergebnis für jeden Eintrag im Format aus:\nEintrag : \n" - "Regeln:\n- Bei Übereinstimmung: 'OK'\n- Bei Nichtübereinstimmung: 'Alternativer Wikipedia-Artikel vorgeschlagen: | X | '\n- Falls kein Artikel gefunden wurde: 'Kein Wikipedia-Eintrag vorhanden.'\n\n") + aggregated_prompt = ( + "Du bist ein Experte in der Verifizierung von Wikipedia-Artikeln für Unternehmen. " + "Für jeden der folgenden Einträge prüfe, ob der vorhandene Wikipedia-Artikel (URL, Absatz, Kategorien) plausibel passt. " + "Gib das Ergebnis für jeden Eintrag im Format aus:\n" + "Eintrag : \n" + "Regeln:\n" + "- Bei Übereinstimmung: 'OK'\n" + "- Bei Nichtübereinstimmung: 'Alternativer Wikipedia-Artikel vorgeschlagen: | X | '\n" + "- Falls kein Artikel gefunden wurde: 'Kein Wikipedia-Eintrag vorhanden.'\n\n" + ) aggregated_prompt += "\n".join(batch_entries) debug_print("Aggregierter Prompt für Verifizierungs-Batch erstellt.") agg_token_count = "n.v." @@ -479,6 +495,7 @@ def process_verification_only(): if line.strip().startswith(f"Eintrag {row_num}:"): answer = line.split(":", 1)[1].strip() break + if answer.upper() == "OK": wiki_confirm = "OK" alt_article = "" @@ -496,29 +513,53 @@ def process_verification_only(): wiki_confirm = "" alt_article = answer wiki_explanation = answer + + # Update Wiki-Validierungsergebnisse main_sheet.update(values=[[wiki_confirm]], range_name=f"S{row_num}") main_sheet.update(values=[[alt_article]], range_name=f"U{row_num}") main_sheet.update(values=[[wiki_explanation]], range_name=f"V{row_num}") - # Branchenbewertung (Spalte W) + + # *** Neuer Abschnitt: Website-Daten auslesen und in Spalte AR/AS schreiben *** + website_url = data[row_num-1][3] if len(data[row_num-1]) > 3 else "k.A." + website_raw = "k.A." + website_summary = "k.A." + if website_url.strip() != "" and website_url.strip().lower() != "k.a.": + website_raw = get_website_raw(website_url) + website_summary = summarize_website_content(website_raw) + try: + main_sheet.update(values=[[website_raw]], range_name=f"AR{row_num}") + debug_print(f"Zeile {row_num}: Spalte AR (Website Rohtext) aktualisiert: {website_raw[:100]}...") + except Exception as e: + debug_print(f"Zeile {row_num}: Fehler beim Update von Spalte AR: {e}") + try: + main_sheet.update(values=[[website_summary]], range_name=f"AS{row_num}") + debug_print(f"Zeile {row_num}: Spalte AS (Website Zusammenfassung) aktualisiert: {website_summary}") + except Exception as e: + debug_print(f"Zeile {row_num}: Fehler beim Update von Spalte AS: {e}") + else: + debug_print(f"Zeile {row_num}: Kein gültiger Website-URL vorhanden, Website-Scraping wird übersprungen.") + + # Branchenbewertung (Spalte W, X, Y) crm_branch = data[row_num-1][6] if len(data[row_num-1]) > 6 else "k.A." ext_branch = data[row_num-1][7] if len(data[row_num-1]) > 7 else "k.A." wiki_branch = data[row_num-1][14] if len(data[row_num-1]) > 14 else "k.A." wiki_cats = data[row_num-1][17] if len(data[row_num-1]) > 17 else "k.A." - website_url = data[row_num-1][3] if len(data[row_num-1]) > 3 else "k.A." - website_raw = get_website_raw(website_url) - website_summary = summarize_website_content(website_raw) branch_result = evaluate_branche_chatgpt(crm_branch, ext_branch, wiki_branch, wiki_cats, website_summary) main_sheet.update(values=[[branch_result["branch"]]], range_name=f"W{row_num}") main_sheet.update(values=[[branch_result["consistency"]]], range_name=f"X{row_num}") main_sheet.update(values=[[branch_result["justification"]]], range_name=f"Y{row_num}") + + # Aktualisiere Timestamps und Versionen current_dt = datetime.now().strftime("%Y-%m-%d %H:%M:%S") main_sheet.update(values=[[current_dt]], range_name=f"AO{row_num}") main_sheet.update(values=[[Config.VERSION]], range_name=f"AP{row_num}") main_sheet.update(values=[[str(agg_token_count)]], range_name=f"AQ{row_num}") + debug_print(f"Zeile {row_num} verifiziert: Antwort: {answer}") time.sleep(Config.RETRY_DELAY) debug_print("Verifizierungs-Batch abgeschlossen.") + # ==================== List Metatitel, Description und Überschriften aus Websiten aus ==================== def scrape_website_details(url): """