diff --git a/helpers.py b/helpers.py index eb62a5bd..782dea36 100644 --- a/helpers.py +++ b/helpers.py @@ -1003,24 +1003,31 @@ def evaluate_branche_chatgpt(crm_branche, beschreibung, wiki_branche, wiki_kateg def verify_wiki_article_chatgpt(company_name, website, wiki_url): """ Überprüft mittels ChatGPT, ob ein gegebener Wikipedia-Artikel zum Unternehmen passt. + Der Prompt ist nun intelligenter, um pedantische Ablehnungen zu vermeiden. """ logger = logging.getLogger(__name__) logger.info(f"Starte ChatGPT-Verifizierung für '{company_name}' und URL '{wiki_url[:50]}...'") + # NEUER, VERBESSERTER PROMPT prompt = f""" - Aufgabe: Prüfe, ob der folgende Wikipedia-Artikel tatsächlich das angegebene Unternehmen beschreibt. + Aufgabe: Bewerte als erfahrener Datenanalyst, ob der Wikipedia-Artikel die relevanteste verfügbare Seite für das angegebene Unternehmen ist. - Unternehmen: + **Deine Bewertungsregeln:** + 1. **Muttergesellschaft ist OK:** Der Artikel darf auch die Muttergesellschaft beschreiben (z.B. für "ABB Automation GmbH" ist der Artikel "ABB (Unternehmen)" korrekt). + 2. **Rechtsform ist sekundär:** Ignoriere kleine Abweichungen im Namen, insbesondere fehlende Rechtsformen wie "GmbH", "AG" etc. (z.B. für "1&1 Versatel GmbH" ist der Artikel "1&1 Versatel" korrekt). + 3. **Inhalt zählt:** Prüfe, ob die Website des Unternehmens im Artikel erwähnt wird oder ob der beschriebene Geschäftszweck übereinstimmt. Das ist wichtiger als der exakte Name. + + **Unternehmen:** - Name: {company_name} - Website: {website} - Vorgegebener Wikipedia-Artikel: + **Vorgegebener Wikipedia-Artikel:** - URL: {wiki_url} - Antworte ausschließlich im folgenden Format (keine Einleitung, kein Schlusssatz): - Konsistenz: - Begründung: - Vorschlag URL: + **Deine Antwort (antworte ausschließlich in diesem Format):** + Konsistenz: + Begründung: + Vorschlag URL: """ try: @@ -1032,18 +1039,16 @@ def verify_wiki_article_chatgpt(company_name, website, wiki_url): result = {"consistency": "FEHLER PARSING", "justification": f"Unerwartete Antwort: {chat_response[:100]}", "suggested_url": ""} lines = chat_response.strip().split("\n") - # Dictionary zum Sammeln der gefundenen Werte parsed_data = {} for line in lines: if ":" in line: key, value = line.split(":", 1) - key = key.strip().lower().replace(" ", "_") # Normalisiere den Key + key = key.strip().lower().replace(" ", "_") value = value.strip() parsed_data[key] = value - # Fülle das result-Dictionary sicher result["consistency"] = parsed_data.get("konsistenz", "FEHLER PARSING").upper() - result["justification"] = parsed_data.get("begründung", f"Begründung nicht gefunden in Antwort: {chat_response[:100]}") + result["justification"] = parsed_data.get("begründung", f"Begründung nicht gefunden in: {chat_response[:100]}") result["suggested_url"] = parsed_data.get("vorschlag_url", "") logger.debug(f"Geparstes Wiki-Verify Ergebnis: {result}")