data_processor.py aktualisiert
This commit is contained in:
@@ -1027,9 +1027,9 @@ class DataProcessor:
|
|||||||
"""
|
"""
|
||||||
Iteriert durch die Zeilen und führt eine ChatGPT-basierte Verifizierung des
|
Iteriert durch die Zeilen und führt eine ChatGPT-basierte Verifizierung des
|
||||||
in Spalte R ("Wiki URL") gefundenen Artikels durch.
|
in Spalte R ("Wiki URL") gefundenen Artikels durch.
|
||||||
Arbeitet im Batch-Modus, schreibt alle BATCH_SIZE Zeilen ins Sheet.
|
Validiert von der KI vorgeschlagene URLs auf Existenz.
|
||||||
"""
|
"""
|
||||||
BATCH_SIZE = 20 # Wie viele Zeilen verarbeiten, bevor geschrieben wird
|
BATCH_SIZE = 20
|
||||||
self.logger.info(f"Starte Modus: Wiki-Verifizierung via ChatGPT (Batch-Größe: {BATCH_SIZE})...")
|
self.logger.info(f"Starte Modus: Wiki-Verifizierung via ChatGPT (Batch-Größe: {BATCH_SIZE})...")
|
||||||
|
|
||||||
if not self.sheet_handler.load_data():
|
if not self.sheet_handler.load_data():
|
||||||
@@ -1068,12 +1068,24 @@ class DataProcessor:
|
|||||||
company_name=company_name, website=website, wiki_url=wiki_url
|
company_name=company_name, website=website, wiki_url=wiki_url
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# +++ START: NEUER VALIDIERUNGS-BLOCK +++
|
||||||
|
final_suggested_url = verification_result.get("suggested_url", "")
|
||||||
|
# Prüfe nur, wenn der Vorschlag wie eine Wikipedia-URL aussieht
|
||||||
|
if final_suggested_url and "wikipedia.org" in final_suggested_url.lower():
|
||||||
|
if not is_valid_wikipedia_article_url(final_suggested_url):
|
||||||
|
self.logger.warning(f" -> KI-Vorschlag '{final_suggested_url}' ist eine halluzinierte/ungültige URL. Markiere als ungültig.")
|
||||||
|
final_suggested_url = f"Vorschlag (ungültig): {final_suggested_url}"
|
||||||
|
else:
|
||||||
|
self.logger.info(f" -> KI-Vorschlag '{final_suggested_url}' ist eine gültige, erreichbare URL.")
|
||||||
|
# +++ ENDE: NEUER VALIDIERUNGS-BLOCK +++
|
||||||
|
|
||||||
now_timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
now_timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
||||||
|
|
||||||
updates_for_row = [
|
updates_for_row = [
|
||||||
{'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Chat Wiki Konsistenzpruefung"]["index"] + 1)}{current_row_num}', 'values': [[verification_result.get("consistency")]]},
|
{'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Chat Wiki Konsistenzpruefung"]["index"] + 1)}{current_row_num}', 'values': [[verification_result.get("consistency")]]},
|
||||||
{'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Chat Begründung Wiki Inkonsistenz"]["index"] + 1)}{current_row_num}', 'values': [[verification_result.get("justification")]]},
|
{'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Chat Begründung Wiki Inkonsistenz"]["index"] + 1)}{current_row_num}', 'values': [[verification_result.get("justification")]]},
|
||||||
{'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Chat Vorschlag Wiki Artikel"]["index"] + 1)}{current_row_num}', 'values': [[verification_result.get("suggested_url")]]},
|
# Verwende die validierte URL
|
||||||
|
{'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Chat Vorschlag Wiki Artikel"]["index"] + 1)}{current_row_num}', 'values': [[final_suggested_url]]},
|
||||||
{'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Wiki Verif. Timestamp"]["index"] + 1)}{current_row_num}', 'values': [[now_timestamp]]}
|
{'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Wiki Verif. Timestamp"]["index"] + 1)}{current_row_num}', 'values': [[now_timestamp]]}
|
||||||
]
|
]
|
||||||
all_updates.extend(updates_for_row)
|
all_updates.extend(updates_for_row)
|
||||||
@@ -1092,7 +1104,7 @@ class DataProcessor:
|
|||||||
|
|
||||||
except KeyError as ke:
|
except KeyError as ke:
|
||||||
self.logger.critical(f"FATALER KEY_ERROR in Zeile {current_row_num}: Die Spalte '{ke}' existiert nicht im COLUMN_MAP in config.py! Breche Verarbeitung dieser Zeile ab.", exc_info=False)
|
self.logger.critical(f"FATALER KEY_ERROR in Zeile {current_row_num}: Die Spalte '{ke}' existiert nicht im COLUMN_MAP in config.py! Breche Verarbeitung dieser Zeile ab.", exc_info=False)
|
||||||
continue # Mache mit der nächsten Zeile weiter
|
continue
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.logger.error(f"Unerwarteter Fehler bei Verarbeitung von Zeile {current_row_num}: {e}", exc_info=True)
|
self.logger.error(f"Unerwarteter Fehler bei Verarbeitung von Zeile {current_row_num}: {e}", exc_info=True)
|
||||||
else:
|
else:
|
||||||
|
|||||||
Reference in New Issue
Block a user