helpers.py aktualisiert

This commit is contained in:
2025-07-28 12:59:50 +00:00
parent 667dfc49e3
commit 4e420913f1

View File

@@ -1047,12 +1047,24 @@ def evaluate_branches_batch(companies_data):
if not response_str: if not response_str:
raise APIError("Keine Antwort von OpenAI erhalten.") raise APIError("Keine Antwort von OpenAI erhalten.")
# Das Ergebnis sollte direkt eine Liste von Dictionaries sein response_json = json.loads(response_str)
results_list = json.loads(response_str)
# Validierung, ob die Antwort eine Liste ist # NEUE, INTELLIGENTE PARSING-LOGIK
if not isinstance(results_list, list): results_list = None
logger.error(f"KI-Antwort ist keine Liste, sondern {type(results_list)}. Breche Batch ab.") if isinstance(response_json, list):
# Der Idealfall: Die KI hat eine Liste zurückgegeben
results_list = response_json
elif isinstance(response_json, dict):
# Der häufige Fall: Die KI hat ein Objekt zurückgegeben, das eine Liste enthält
# Wir durchsuchen das Dictionary nach dem ersten Wert, der eine Liste ist.
for key, value in response_json.items():
if isinstance(value, list):
logger.debug(f"Antwort war ein Dictionary, aber eine Ergebnisliste unter dem Schlüssel '{key}' gefunden.")
results_list = value
break
if results_list is None:
logger.error(f"Konnte keine Ergebnisliste in der KI-Antwort finden. Antworttyp: {type(response_json)}. Inhalt: {str(response_json)[:300]}...")
return None return None
return results_list return results_list