This commit is contained in:
2025-04-09 07:21:20 +00:00
parent 9007ddffe2
commit 3acb6cf3dc

View File

@@ -940,14 +940,14 @@ def evaluate_branche_chatgpt(crm_branche, beschreibung, wiki_branche, wiki_kateg
return {"branch": "k.A.", "consistency": "k.A.", "justification": "k.A."} return {"branch": "k.A.", "consistency": "k.A.", "justification": "k.A."}
openai.api_key = api_key openai.api_key = api_key
# Fallback: Falls Wikipedia-Branche und externe Beschreibung beide 'k.A.' sind, nutze Website-Zusammenfassung # Angepasst: Sobald kein Wikipedia-Artikel (Wiki-Branche) vorhanden ist, wird die Website-Zusammenfassung als Fallback genutzt.
if wiki_branche.strip().lower() == "k.a." and beschreibung.strip().lower() == "k.a.": if wiki_branche.strip().lower() == "k.a.":
debug_print("Keine Wiki- und externe Branchenbeschreibung vorhanden, 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
debug_print(f"Verwendete Angaben: CRM-Branche='{crm_branche}', externe Beschreibung='{beschreibung}', Wiki-Branche='{wiki_branche}', Wiki-Kategorien='{wiki_kategorien}'") debug_print(f"Verwendete Angaben: CRM-Branche='{crm_branche}', externe Beschreibung='{beschreibung}', Wiki-Branche='{wiki_branche}', Wiki-Kategorien='{wiki_kategorien}'")
system_prompt = ( system_prompt = (
"Du bist ein Experte im Field Service Management. Deine Aufgabe ist es, ein Unternehmen basierend auf folgenden Angaben einer Branche zuzuordnen.\n\n" "Du bist ein Experte im Field Service Management. Deine Aufgabe ist es, ein Unternehmen basierend auf folgenden Angaben einer Branche zuzuordnen.\n\n"
f"CRM-Branche (Spalte F): {crm_branche if crm_branche.strip() != '' else 'k.A.'}\n" f"CRM-Branche (Spalte F): {crm_branche if crm_branche.strip() != '' else 'k.A.'}\n"
@@ -961,7 +961,7 @@ def evaluate_branche_chatgpt(crm_branche, beschreibung, wiki_branche, wiki_kateg
f"{focus_branches_str}\n\n" f"{focus_branches_str}\n\n"
"Gewichtung der Angaben:\n" "Gewichtung der Angaben:\n"
"1. Wikipedia-Branche (Spalte N) zusammen mit Wikipedia-Kategorien (Spalte Q) (höchste Priorität, wenn verifiziert, ansonsten erhöhte Gewichtung der Kategorien)\n" "1. Wikipedia-Branche (Spalte N) zusammen mit Wikipedia-Kategorien (Spalte Q) (höchste Priorität, wenn verifiziert, ansonsten erhöhte Gewichtung der Kategorien)\n"
"2. Branchenbeschreibung (Spalte G) (hier wird Website-Zusammenfassung genutzt, wenn beide Wikipedia- und externe Beschreibung fehlen)\n" "2. Branchenbeschreibung (Spalte G) (hier wird die Website-Zusammenfassung genutzt, wenn kein Wikipedia-Artikel vorhanden ist)\n"
"3. CRM-Branche (Spalte F)\n\n" "3. CRM-Branche (Spalte F)\n\n"
"Ordne das Unternehmen exakt einer der oben genannten Branchen zu (keine zusätzlichen Branchen erfinden). " "Ordne das Unternehmen exakt einer der oben genannten Branchen zu (keine zusätzlichen Branchen erfinden). "
"Bitte antworte im Format:\n" "Bitte antworte im Format:\n"
@@ -986,16 +986,13 @@ 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()
# Falls das Ergebnis nicht im Ziel-Branchenschema enthalten ist, vermerke dies
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"
# Falls die CRM-Branche exakt übereinstimmt, löschen wir die Begründung
if crm_branche.strip() and branch.lower() == crm_branche.strip().lower(): if crm_branche.strip() and branch.lower() == crm_branche.strip().lower():
justification = "" justification = ""
consistency = "ok" consistency = "ok"
# Zusätzliche Debug-Ausgabe zur Endbewertung
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: