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:
|
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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user