bugfix
This commit is contained in:
@@ -1559,17 +1559,17 @@ def evaluate_branche_chatgpt(crm_branche, beschreibung, wiki_branche, wiki_kateg
|
||||
# Lade Mapping und Liste der erlaubten Ziel-Branchen
|
||||
mapping, allowed_branches = load_target_branches()
|
||||
|
||||
# Baue den Text für das Ziel-Branchenschema, der im System-Prompt an ChatGPT übergeben wird
|
||||
schema_lines = ["Ziel-Branchenschema: Folgende Branchenbereiche sind gültig:"]
|
||||
for branch in allowed_branches:
|
||||
# Baue den Text für das Ziel-Branchenschema, der im System-Prompt an ChatGPT übergeben wird
|
||||
schema_lines = ["Ziel-Branchenschema: Folgende Branchenbereiche sind gültig:"]
|
||||
for branch in allowed_branches:
|
||||
schema_lines.append(f"- {branch}")
|
||||
target_schema_info = "\n".join(schema_lines)
|
||||
target_schema_info = "\n".join(schema_lines)
|
||||
|
||||
# Erstelle den System-Prompt inklusive der Zielvorgaben. Hier wird das Zielbranchenschema aus der CSV-Datei
|
||||
# (via load_target_schema) eingebunden.
|
||||
target_mapping, target_schema_string, allowed_targets = load_target_schema()
|
||||
# Erstelle den System-Prompt inklusive der Zielvorgaben.
|
||||
# Hier wird das Zielbranchenschema aus der CSV-Datei (via load_target_schema) eingebunden.
|
||||
target_mapping, target_schema_string, allowed_targets = load_target_schema()
|
||||
|
||||
prompt = (
|
||||
prompt = (
|
||||
f"{target_schema_string}\n\n"
|
||||
f"Ordne das Unternehmen anhand folgender Angaben exakt einer Branche des Ziel-Branchenschemas zu:\n"
|
||||
f"CRM-Branche: {crm_branche}\n"
|
||||
@@ -1581,15 +1581,16 @@ prompt = (
|
||||
"Branche: <vorgeschlagene Branche>\n"
|
||||
"Übereinstimmung: <ok oder X>\n"
|
||||
"Begründung: <kurze Begründung>"
|
||||
)
|
||||
)
|
||||
|
||||
try:
|
||||
try:
|
||||
with open("api_key.txt", "r") as f:
|
||||
api_key = f.read().strip()
|
||||
except Exception as e:
|
||||
except Exception as e:
|
||||
debug_print(f"Fehler beim Lesen des API-Tokens für Brancheneinschätzung: {e}")
|
||||
return {"branch": crm_branche, "consistency": "X", "justification": "API-Key Fehler"}
|
||||
openai.api_key = api_key
|
||||
openai.api_key = api_key
|
||||
|
||||
try:
|
||||
response = openai.ChatCompletion.create(
|
||||
model=Config.TOKEN_MODEL,
|
||||
@@ -1610,14 +1611,15 @@ openai.api_key = api_key
|
||||
consistency = ""
|
||||
explanation = ""
|
||||
for line in lines:
|
||||
if line.lower().startswith("branche:"):
|
||||
lower_line = line.lower()
|
||||
if lower_line.startswith("branche:"):
|
||||
suggestion = line.split(":", 1)[1].strip()
|
||||
elif line.lower().startswith("übereinstimmung:"):
|
||||
elif lower_line.startswith("übereinstimmung:"):
|
||||
consistency = line.split(":", 1)[1].strip()
|
||||
elif line.lower().startswith("begründung:"):
|
||||
elif lower_line.startswith("begründung:"):
|
||||
explanation = line.split(":", 1)[1].strip()
|
||||
|
||||
# Bereinige den Vorschlag: entferne unnötige Satzzeichen und konvertiere in Kleinbuchstaben
|
||||
# Bereinige den Vorschlag: Entferne unnötige Satzzeichen und konvertiere in Kleinbuchstaben
|
||||
clean_suggestion = re.sub(r'[^\w\s/&-]', '', suggestion).strip().lower()
|
||||
|
||||
# Falls der bereinigte Vorschlag kein Hierarchie-Trennzeichen ">" enthält, übernehme den Präfix aus der CRM-Branche
|
||||
@@ -1629,7 +1631,7 @@ openai.api_key = api_key
|
||||
valid = False
|
||||
for allowed in allowed_branches:
|
||||
sim = fuzzy_similarity(clean_suggestion, allowed)
|
||||
if sim > 0.95: # sehr hoher Ähnlichkeit (kann angepasst werden)
|
||||
if sim > 0.95: # sehr hoher Ähnlichkeitswert (anpassbar)
|
||||
valid = True
|
||||
# Setze den Vorschlag exakt auf den Zielwert
|
||||
clean_suggestion = allowed
|
||||
|
||||
Reference in New Issue
Block a user