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):
"""
Ü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: <OK oder X>
Begründung: <Sehr kurze Begründung für deine Entscheidung. Gib an, welche Namen oder Fakten übereinstimmen oder abweichen.>
Vorschlag URL: <Gib hier die korrekte URL an, falls der Artikel falsch ist und du eine bessere findest. Sonst leer lassen.>
**Deine Antwort (antworte ausschließlich in diesem Format):**
Konsistenz: <OK, wenn der Artikel nach den oben genannten Regeln relevant ist, sonst X>
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 eine bessere URL an, falls du eine findest. Sonst leer lassen.>
"""
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}")