helpers.py aktualisiert

This commit is contained in:
2025-07-18 12:19:18 +00:00
parent 1b1bd3eeb8
commit 3dd498b084

View File

@@ -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): def verify_wiki_article_chatgpt(company_name, website, wiki_url):
""" """
Überprüft mittels ChatGPT, ob ein gegebener Wikipedia-Artikel zum Unternehmen passt. Ü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 = logging.getLogger(__name__)
logger.info(f"Starte ChatGPT-Verifizierung für '{company_name}' und URL '{wiki_url[:50]}...'") logger.info(f"Starte ChatGPT-Verifizierung für '{company_name}' und URL '{wiki_url[:50]}...'")
# NEUER, VERBESSERTER PROMPT
prompt = f""" 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} - Name: {company_name}
- Website: {website} - Website: {website}
Vorgegebener Wikipedia-Artikel: **Vorgegebener Wikipedia-Artikel:**
- URL: {wiki_url} - URL: {wiki_url}
Antworte ausschließlich im folgenden Format (keine Einleitung, kein Schlusssatz): **Deine Antwort (antworte ausschließlich in diesem Format):**
Konsistenz: <OK oder X> Konsistenz: <OK, wenn der Artikel nach den oben genannten Regeln relevant ist, sonst X>
Begründung: <Sehr kurze Begründung für deine Entscheidung. Gib an, welche Namen oder Fakten übereinstimmen oder abweichen.> Begründung: <Sehr kurze Begründung für deine Entscheidung. Erwähne, welche Regel zutraf (z.B. "Muttergesellschaft passt" oder "Name ohne Rechtsform passt").>
Vorschlag URL: <Gib hier die korrekte URL an, falls der Artikel falsch ist und du eine bessere findest. Sonst leer lassen.> Vorschlag URL: <Gib hier eine bessere URL an, falls du eine findest. Sonst leer lassen.>
""" """
try: 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": ""} result = {"consistency": "FEHLER PARSING", "justification": f"Unerwartete Antwort: {chat_response[:100]}", "suggested_url": ""}
lines = chat_response.strip().split("\n") lines = chat_response.strip().split("\n")
# Dictionary zum Sammeln der gefundenen Werte
parsed_data = {} parsed_data = {}
for line in lines: for line in lines:
if ":" in line: if ":" in line:
key, value = line.split(":", 1) key, value = line.split(":", 1)
key = key.strip().lower().replace(" ", "_") # Normalisiere den Key key = key.strip().lower().replace(" ", "_")
value = value.strip() value = value.strip()
parsed_data[key] = value parsed_data[key] = value
# Fülle das result-Dictionary sicher
result["consistency"] = parsed_data.get("konsistenz", "FEHLER PARSING").upper() 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", "") result["suggested_url"] = parsed_data.get("vorschlag_url", "")
logger.debug(f"Geparstes Wiki-Verify Ergebnis: {result}") logger.debug(f"Geparstes Wiki-Verify Ergebnis: {result}")