helpers.py aktualisiert

This commit is contained in:
2025-08-25 17:32:59 +00:00
parent d44fd0591c
commit cd59dd291c

View File

@@ -949,7 +949,19 @@ def evaluate_branche_chatgpt(company_name, website_summary, wiki_absatz):
if not response_str: if not response_str:
raise APIError("Keine Antwort von OpenAI erhalten.") raise APIError("Keine Antwort von OpenAI erhalten.")
response_json = json.loads(response_str) # --- NEUE, ROBUSTE JSON-EXTRAKTION ---
# Sucht nach dem ersten '{' und dem letzten '}', um das JSON-Objekt
# auch dann zu finden, wenn es von Text oder Markdown umschlossen ist.
json_start = response_str.find('{')
json_end = response_str.rfind('}')
if json_start == -1 or json_end == -1:
logger.error(f"Konnte kein JSON-Objekt in der API-Antwort für '{company_name}' finden. Antwort: {response_str[:200]}...")
raise json.JSONDecodeError("Kein JSON-Objekt in der Antwort gefunden.", response_str, 0)
json_str = response_str[json_start : json_end + 1]
response_json = json.loads(json_str)
# --- ENDE DER NEUEN LOGIK ---
# Validierung des Ergebnisses # Validierung des Ergebnisses
final_branch = response_json.get("Branche") final_branch = response_json.get("Branche")
@@ -964,6 +976,13 @@ def evaluate_branche_chatgpt(company_name, website_summary, wiki_absatz):
"justification": response_json.get("Begruendung", "Keine Begründung erhalten.") "justification": response_json.get("Begruendung", "Keine Begründung erhalten.")
} }
except json.JSONDecodeError as e:
logger.error(f"Endgültiger FEHLER beim Parsen der JSON-Antwort für Brancheneinstufung von {company_name}: {e}")
return {
"branch": "FEHLER (JSON Parsing)",
"confidence": "N/A",
"justification": f"Fehler beim Parsen der API-Antwort: {str(e)[:100]}"
}
except Exception as e: except Exception as e:
logger.error(f"Endgültiger FEHLER beim OpenAI-Aufruf für Brancheneinstufung von {company_name}: {e}") logger.error(f"Endgültiger FEHLER beim OpenAI-Aufruf für Brancheneinstufung von {company_name}: {e}")
return { return {