bugfix
This commit is contained in:
@@ -994,22 +994,6 @@ class WikipediaScraper:
|
|||||||
|
|
||||||
# ==================== NEUE FUNKTION: Angepasste evaluate_branche_chatgpt ====================
|
# ==================== NEUE FUNKTION: Angepasste evaluate_branche_chatgpt ====================
|
||||||
def evaluate_branche_chatgpt(crm_branche, beschreibung, wiki_branche, wiki_kategorien, website_summary):
|
def evaluate_branche_chatgpt(crm_branche, beschreibung, wiki_branche, wiki_kategorien, website_summary):
|
||||||
"""
|
|
||||||
Ordnet basierend auf den angegebenen Daten das Unternehmen exakt einer Branche aus dem Ziel-Branchenschema zu.
|
|
||||||
Falls kein passender Wikipedia-Artikel vorliegt bzw. die Kategorien nicht aussagekräftig sind
|
|
||||||
(d.h. das Stichwort 'unternehmen' fehlt), wird die Website-Zusammenfassung als Fallback genutzt.
|
|
||||||
|
|
||||||
Args:
|
|
||||||
crm_branche (str): Branche aus CRM-Daten (Spalte F).
|
|
||||||
beschreibung (str): Externe oder CRM-Beschreibung (Spalte G).
|
|
||||||
wiki_branche (str): Wikipedia-Branche (Spalte N).
|
|
||||||
wiki_kategorien (str): Wikipedia-Kategorien (Spalte Q).
|
|
||||||
website_summary (str): Zusammenfassung des Website-Contents als Fallback.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
dict: {"branch": <vorgeschlagene Branche>, "consistency": <"ok" oder "X">, "justification": <Begründung>}
|
|
||||||
"""
|
|
||||||
# Hilfsfunktion zum Laden des Ziel-Branchenschemas
|
|
||||||
def load_target_branches():
|
def load_target_branches():
|
||||||
try:
|
try:
|
||||||
with open("ziel_Branchenschema.csv", "r", encoding="utf-8") as csvfile:
|
with open("ziel_Branchenschema.csv", "r", encoding="utf-8") as csvfile:
|
||||||
@@ -1019,7 +1003,6 @@ def evaluate_branche_chatgpt(crm_branche, beschreibung, wiki_branche, wiki_kateg
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
debug_print(f"Fehler beim Laden des Ziel-Branchenschemas: {e}")
|
debug_print(f"Fehler beim Laden des Ziel-Branchenschemas: {e}")
|
||||||
return []
|
return []
|
||||||
|
|
||||||
target_branches = load_target_branches()
|
target_branches = load_target_branches()
|
||||||
target_branches_str = "\n".join(target_branches)
|
target_branches_str = "\n".join(target_branches)
|
||||||
focus_branches = [
|
focus_branches = [
|
||||||
@@ -1040,10 +1023,17 @@ def evaluate_branche_chatgpt(crm_branche, beschreibung, wiki_branche, wiki_kateg
|
|||||||
"Versorger > Telekommunikation"
|
"Versorger > Telekommunikation"
|
||||||
]
|
]
|
||||||
focus_branches_str = "\n".join(focus_branches)
|
focus_branches_str = "\n".join(focus_branches)
|
||||||
|
try:
|
||||||
|
with open("api_key.txt", "r") as f:
|
||||||
|
api_key = f.read().strip()
|
||||||
|
except Exception as e:
|
||||||
|
debug_print(f"Fehler beim Lesen des API-Tokens (Branche): {e}")
|
||||||
|
return {"branch": "k.A.", "consistency": "k.A.", "justification": "k.A."}
|
||||||
|
openai.api_key = api_key
|
||||||
|
|
||||||
# Wenn kein Wikipedia-Artikel vorhanden oder die Kategorien nicht aussagekräftig sind, fallback auf die Website-Zusammenfassung.
|
# Falls kein Wikipedia-Artikel vorliegt, nutze die Website-Zusammenfassung als Fallback für die Branchenbeschreibung
|
||||||
if wiki_branche.strip().lower() == "k.a." or not is_valid_company_article(wiki_kategorien):
|
if wiki_branche.strip().lower() == "k.a.":
|
||||||
debug_print("Keine aussagekräftigen Wikipedia-Kategorien – verwende Website-Zusammenfassung als Fallback.")
|
debug_print("Kein Wikipedia-Artikel vorhanden – verwende Website-Zusammenfassung als Branchenbeschreibung-Fallback.")
|
||||||
used_description = website_summary
|
used_description = website_summary
|
||||||
else:
|
else:
|
||||||
used_description = beschreibung
|
used_description = beschreibung
|
||||||
@@ -1087,13 +1077,23 @@ def evaluate_branche_chatgpt(crm_branche, beschreibung, wiki_branche, wiki_kateg
|
|||||||
consistency = line.split(":", 1)[1].strip()
|
consistency = line.split(":", 1)[1].strip()
|
||||||
elif line.lower().startswith("begründung:"):
|
elif line.lower().startswith("begründung:"):
|
||||||
justification = line.split(":", 1)[1].strip()
|
justification = line.split(":", 1)[1].strip()
|
||||||
|
|
||||||
|
# Zuerst prüfen, ob der ChatGPT-Vorschlag überhaupt zum Ziel-Branchenschema gehört
|
||||||
if branch.lower() not in [tb.lower() for tb in target_branches]:
|
if branch.lower() not in [tb.lower() for tb in target_branches]:
|
||||||
justification = "Vorgeschlagene Branche entspricht nicht dem Ziel-Branchenschema."
|
justification = "Vorgeschlagene Branche entspricht nicht dem Ziel-Branchenschema."
|
||||||
branch = "k.A."
|
branch = "k.A."
|
||||||
consistency = "X"
|
consistency = "X"
|
||||||
if crm_branche.strip() and branch.lower() == crm_branche.strip().lower():
|
else:
|
||||||
|
# Vergleiche die normierten Werte der CRM-Branche und des ChatGPT-Vorschlags
|
||||||
|
norm_crm = normalize_company_name(crm_branche)
|
||||||
|
norm_branch = normalize_company_name(branch)
|
||||||
|
debug_print(f"Vergleich normierter Werte: CRM='{norm_crm}' vs. ChatGPT='{norm_branch}'")
|
||||||
|
if norm_crm and norm_branch == norm_crm:
|
||||||
justification = ""
|
justification = ""
|
||||||
consistency = "ok"
|
consistency = "ok"
|
||||||
|
else:
|
||||||
|
consistency = "X"
|
||||||
|
|
||||||
debug_print(f"Endergebnis Branchenbewertung: Branche='{branch}', Übereinstimmung='{consistency}', Begründung='{justification}'")
|
debug_print(f"Endergebnis Branchenbewertung: Branche='{branch}', Übereinstimmung='{consistency}', Begründung='{justification}'")
|
||||||
return {"branch": branch, "consistency": consistency, "justification": justification}
|
return {"branch": branch, "consistency": consistency, "justification": justification}
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
@@ -1102,6 +1102,7 @@ def evaluate_branche_chatgpt(crm_branche, beschreibung, wiki_branche, wiki_kateg
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def evaluate_servicetechnicians_estimate(company_name, company_data):
|
def evaluate_servicetechnicians_estimate(company_name, company_data):
|
||||||
try:
|
try:
|
||||||
with open("serpApiKey.txt", "r") as f:
|
with open("serpApiKey.txt", "r") as f:
|
||||||
|
|||||||
Reference in New Issue
Block a user