bugfix
This commit is contained in:
@@ -1067,7 +1067,7 @@ def evaluate_fsm_suitability(company_name, company_data):
|
|||||||
debug_print(f"Fehler beim Aufruf der ChatGPT API für FSM-Eignungsprüfung: {e}")
|
debug_print(f"Fehler beim Aufruf der ChatGPT API für FSM-Eignungsprüfung: {e}")
|
||||||
return {"suitability": "k.A.", "justification": "k.A."}
|
return {"suitability": "k.A.", "justification": "k.A."}
|
||||||
|
|
||||||
def evaluate_branche_chatgpt(crm_branche, ext_branche, wiki_branche, wiki_kategorien):
|
def evaluate_branche_chatgpt(crm_branche, beschreibung, wiki_branche, wiki_kategorien):
|
||||||
# Laden des Ziel-Branchenschemas
|
# Laden des Ziel-Branchenschemas
|
||||||
def load_target_branches():
|
def load_target_branches():
|
||||||
try:
|
try:
|
||||||
@@ -1080,7 +1080,7 @@ def evaluate_branche_chatgpt(crm_branche, ext_branche, wiki_branche, wiki_katego
|
|||||||
return []
|
return []
|
||||||
target_branches = load_target_branches()
|
target_branches = load_target_branches()
|
||||||
|
|
||||||
# Fokus-Branchen bleiben unverändert
|
# Fokus-Branchen, wie in der Ausgangsversion definiert
|
||||||
focus_branches = [
|
focus_branches = [
|
||||||
"Gutachter / Versicherungen > Baugutachter",
|
"Gutachter / Versicherungen > Baugutachter",
|
||||||
"Gutachter / Versicherungen > Technische Gutachten",
|
"Gutachter / Versicherungen > Technische Gutachten",
|
||||||
@@ -1098,7 +1098,6 @@ def evaluate_branche_chatgpt(crm_branche, ext_branche, wiki_branche, wiki_katego
|
|||||||
"Service provider (Dienstleister) > Facility Management",
|
"Service provider (Dienstleister) > Facility Management",
|
||||||
"Versorger > Telekommunikation"
|
"Versorger > Telekommunikation"
|
||||||
]
|
]
|
||||||
|
|
||||||
try:
|
try:
|
||||||
with open("api_key.txt", "r") as f:
|
with open("api_key.txt", "r") as f:
|
||||||
api_key = f.read().strip()
|
api_key = f.read().strip()
|
||||||
@@ -1107,24 +1106,25 @@ def evaluate_branche_chatgpt(crm_branche, ext_branche, wiki_branche, wiki_katego
|
|||||||
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
|
||||||
|
|
||||||
# Wenn kein Wikipedia-Artikel vorliegt (wiki_branche = "k.A."),
|
# System-Prompt dynamisch wählen
|
||||||
# verwende ausschließlich die CRM-Daten und die externe Branchenbeschreibung (ext_branche)
|
|
||||||
if wiki_branche.strip().lower() == "k.a.":
|
if wiki_branche.strip().lower() == "k.a.":
|
||||||
|
# Kein Wikipedia-Artikel gefunden: Nur CRM-Branche und externe Beschreibung verwenden.
|
||||||
system_prompt = (
|
system_prompt = (
|
||||||
"Du bist ein Experte im Field Service Management. Ordne das Unternehmen basierend auf den folgenden Angaben exakt einer Branche zu.\n\n"
|
"Du bist ein Experte im Field Service Management. Ordne das Unternehmen basierend auf den folgenden Angaben exakt einer Branche zu.\n\n"
|
||||||
f"CRM-Branche (Spalte G): {crm_branche}\n"
|
f"CRM-Branche (Spalte F): {crm_branche}\n"
|
||||||
f"Externe Branchenbeschreibung (Spalte H): {ext_branche}\n\n"
|
f"Externe Branchenbeschreibung (Spalte H): {beschreibung}\n\n"
|
||||||
"Das Ziel-Branchenschema umfasst ALLE gültigen Branchen (inkl. Fokus-Branchen). "
|
"Das Ziel-Branchenschema umfasst ALLE gültigen Branchen (inkl. Fokusbranchen). Bitte wähle eine Branche aus.\n"
|
||||||
"Antworte im Format:\nBranche: <vorgeschlagene Branche>\nÜbereinstimmung: <ok oder X>\nBegründung: <kurze Begründung>."
|
"Antworte im Format:\nBranche: <vorgeschlagene Branche>\nÜbereinstimmung: <ok oder X>\nBegründung: <kurze Begründung>."
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
|
# Wikipedia-Daten vorhanden: Alle Angaben werden herangezogen.
|
||||||
system_prompt = (
|
system_prompt = (
|
||||||
"Du bist ein Experte im Field Service Management. Ordne das Unternehmen basierend auf den folgenden Angaben exakt einer Branche zu.\n\n"
|
"Du bist ein Experte im Field Service Management. Ordne das Unternehmen basierend auf den folgenden Angaben exakt einer Branche zu.\n\n"
|
||||||
f"CRM-Branche (Spalte G): {crm_branche}\n"
|
f"CRM-Branche (Spalte F): {crm_branche}\n"
|
||||||
f"Externe Branchenbeschreibung (Spalte H): {ext_branche}\n"
|
f"Externe Branchenbeschreibung (Spalte H): {beschreibung}\n"
|
||||||
f"Wikipedia-Branche (Spalte N): {wiki_branche}\n"
|
f"Wikipedia-Branche (Spalte N): {wiki_branche}\n"
|
||||||
f"Wikipedia-Kategorien (Spalte Q): {wiki_kategorien}\n\n"
|
f"Wikipedia-Kategorien (Spalte Q): {wiki_kategorien}\n\n"
|
||||||
"Das Ziel-Branchenschema umfasst ALLE gültigen Branchen (inkl. Fokus-Branchen). "
|
"Das Ziel-Branchenschema umfasst ALLE gültigen Branchen (inkl. Fokusbranchen). Bitte wähle eine Branche aus.\n"
|
||||||
"Antworte im Format:\nBranche: <vorgeschlagene Branche>\nÜbereinstimmung: <ok oder X>\nBegründung: <kurze Begründung>."
|
"Antworte im Format:\nBranche: <vorgeschlagene Branche>\nÜbereinstimmung: <ok oder X>\nBegründung: <kurze Begründung>."
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -1147,12 +1147,13 @@ def evaluate_branche_chatgpt(crm_branche, ext_branche, wiki_branche, wiki_katego
|
|||||||
elif line.lower().startswith("begründung:"):
|
elif line.lower().startswith("begründung:"):
|
||||||
justification = line.split(":", 1)[1].strip()
|
justification = line.split(":", 1)[1].strip()
|
||||||
|
|
||||||
# Prüfe, ob der vorgeschlagene Branchentext exakt im Ziel-Branchenschema enthalten ist
|
# Überprüfung: Wenn der vorgeschlagene Branchentext nicht exakt im Ziel-Branchenschema enthalten ist,
|
||||||
|
# dann geben wir "k.A." mit Konsistenz "X" zurück.
|
||||||
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 der Vorschlag exakt mit der in CRM (Spalte G) vorliegenden Branche übereinstimmt, ist keine Begründung nötig.
|
# Falls der Vorschlag exakt mit der in CRM festgelegten Branche übereinstimmt, brauchen wir keine 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"
|
||||||
|
|||||||
Reference in New Issue
Block a user