This commit is contained in:
2025-04-10 10:28:27 +00:00
parent 70c7fe1da0
commit e64ad336fe

View File

@@ -535,7 +535,7 @@ def process_verification_only():
"""
Überarbeiteter BatchProzess (Modus 51):
- Fragt in der Konsole ab, wie viele Zeilen insgesamt verarbeitet werden sollen.
- Alle Zeilen, bei denen Spalte AO (Index 40) leer ist (oder die Spaltenanzahl < 41 beträgt), werden verarbeitet.
- Alle Zeilen, bei denen Spalte AO (Index 40) nicht vorhanden oder leer ist, werden verarbeitet.
- Die zu verarbeitenden Zeilen werden in Paketen der Größe Config.BATCH_SIZE (z.B. 10 Zeilen) gebündelt.
- Für jedes Batch wird ein aggregierter Prompt erstellt, an ChatGPT gesendet und die aggregierte Antwort
zeilenweise geparst.
@@ -555,27 +555,28 @@ def process_verification_only():
total_rows = None
gc = gspread.authorize(ServiceAccountCredentials.from_json_keyfile_name(
Config.CREDENTIALS_FILE, ["https://www.googleapis.com/auth/spreadsheets"]))
Config.CREDENTIALS_FILE, ["https://www.googleapis.com/auth/spreadsheets"]))
sh = gc.open_by_url(Config.SHEET_URL)
main_sheet = sh.sheet1
data = main_sheet.get_all_values()
# Definiere die Anzahl der zu verarbeitenden Zeilen.
available_rows = len(data) - 1 # ohne Header
# Bestimme die Anzahl der zu verarbeitenden Zeilen (ohne Header)
available_rows = len(data) - 1
if total_rows is not None and total_rows < available_rows:
available_rows = total_rows
batch_size = Config.BATCH_SIZE # z.B. 10, einstellbar in der Config
batches = []
row_numbers = []
# VERARBEITE JEDEN Datensatz, bei dem entweder nicht mindestens 41 Spalten existieren oder Spalte AO leer ist.
# Verarbeite jede Zeile (Index ab 2, da Header in Zeile 1)
for i, row in enumerate(data[1:], start=2):
if i > available_rows + 1:
if i > available_rows + 1: # +1 wegen Header
break
# Überspringe Zeilen, bei denen Spalte AO (Index 40) bereits gefüllt ist.
# Überspringe Zeilen, bei denen Spalte AO (Index 40) existiert und nicht leer ist.
if len(row) >= 41 and row[40].strip() != "":
continue
# Nehme die Zeile in den Batch auf.
# Nimm diese Zeile in den Batch auf keine weiteren Bedingungen!
entry_text = (
f"Eintrag {i}:\n"
f"Firmenname: {row[1] if len(row) > 1 else ''}\n"
@@ -587,6 +588,7 @@ def process_verification_only():
)
batches.append(entry_text)
row_numbers.append(i)
if len(batches) == batch_size:
aggregated_prompt = (
"Du bist ein Experte in der Verifizierung von Wikipedia-Artikeln für Unternehmen. "
@@ -654,7 +656,6 @@ def process_verification_only():
main_sheet.update(values=[[wiki_confirm]], range_name=f"S{current_row}")
main_sheet.update(values=[[alt_article]], range_name=f"T{current_row}")
main_sheet.update(values=[[wiki_explanation]], range_name=f"U{current_row}")
# Setze die Spalten V bis Y (Platzhalter) auf leere Strings
main_sheet.update(values=[["", "", "", ""]], range_name=f"V{current_row}:Y{current_row}")
debug_print(f"Zeile {current_row} verifiziert: Antwort: {answer}")
except Exception as e:
@@ -732,6 +733,7 @@ def process_verification_only():
time.sleep(Config.RETRY_DELAY)
debug_print("Verifizierungs-Batch abgeschlossen.")
# ==================== List Metatitel, Description und Überschriften aus Websiten aus ====================
def scrape_website_details(url):
"""