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):
|
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}")
|
||||||
|
|||||||
Reference in New Issue
Block a user