helpers.py aktualisiert
This commit is contained in:
27
helpers.py
27
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: <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}")
|
||||
|
||||
Reference in New Issue
Block a user