helpers.py aktualisiert
This commit is contained in:
21
helpers.py
21
helpers.py
@@ -949,7 +949,19 @@ def evaluate_branche_chatgpt(company_name, website_summary, wiki_absatz):
|
||||
if not response_str:
|
||||
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
|
||||
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.")
|
||||
}
|
||||
|
||||
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:
|
||||
logger.error(f"Endgültiger FEHLER beim OpenAI-Aufruf für Brancheneinstufung von {company_name}: {e}")
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user